Spring MVC Restful 의 DELETE 전송 방식
1976 단어 자바
그러나 Spring 의 기본 방법 필터 (org. springframework. web. filter. HiddenhttpMethodFilter) 는 POST 전송 프로 토 콜 만 판단 합 니 다.
사용자 정의 GET 지원
public class MyHiddenHttpMethodFilter extends HiddenHttpMethodFilter{
private String methodParam = DEFAULT_METHOD_PARAM;
public void setMethodParam(String methodParam){
Assert.hasText(methodParam, "'methodParam' must not be empty");
this.methodParam = methodParam;
}
@Override
protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
String paramValue = request.getParameter(methodParam);
String _method = request.getMethod();
if (StringUtils.hasLength(paramValue)) {
String method = paramValue.toUpperCase(Locale.ENGLISH);
boolean b = ("POST".equals(_method) && "PUT".equalsIgnoreCase(method)) || ( "GET".equals(_method) && "DELETE".equalsIgnoreCase(method));
if( b ){
HttpServletRequest wrapper = new HttpMethodRequestWrapper(request, method);
filterChain.doFilter(wrapper, response);
}else{
}
}
else {
filterChain.doFilter(request, response);
}
}
private static class HttpMethodRequestWrapper extends HttpServletRequestWrapper {
private final String method;
public HttpMethodRequestWrapper(HttpServletRequest request, String method) {
super(request);
this.method = method;
}
@Override
public String getMethod() {
return this.method;
}
}
}
이러한 구현 은 DELETE 프로 토 콜 을 사용 할 때 GET 를 사용 하고 인 자 를 추가 하 는 것 입 니 다method=DELETE;PUT 프로 토 콜 을 사용 할 때 POST 를 사용 하고method=PUT
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.