HTTP Status 405()

  本篇文章为你整理了HTTP Status 405()的详细内容,包含有 HTTP Status 405,希望能帮助你了解 HTTP Status 405。

  哈罗大家好,最近在如火如荼的学习java开发----Spring系列框架,当学习到SpringMVC,动手实践RESTFUL案例时,发现了以上报错405,get请求方法没有被支持。

  首先第一步,我查看自己写的示例代码有无写错。在反复对比了尚硅谷发出来的示例代码后,发现并无错误;

  然后我就根据错误在百度中畅游了不知多少春夏秋冬,然后并没有用,且部分解决办法并不适用我的问题情况。

  由于浏览器只支持get和post,即使在form表单中设置method为put或delete,最后它们还是被当成get处理。
为了发送put请求和delete请求,Spring提供HiddenHttpMethodFilter。

  如何使用HiddenHttpMethodFilter来发送put和delete请求?需要做到以下两点:

  


 1 public class HiddenHttpMethodFilter extends OncePerRequestFilter {

 

   2 private static final List String ALLOWED_METHODS;

   3 public static final String DEFAULT_METHOD_PARAM = "_method";

   4 private String methodParam = "_method";

   6 public HiddenHttpMethodFilter() {

   9 public void setMethodParam(String methodParam) {

  10 Assert.hasText(methodParam, "methodParam must not be empty");

  11 this.methodParam = methodParam;

  14 protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {

  15 HttpServletRequest requestToUse = request;

  16 if ("POST".equals(request.getMethod()) request.getAttribute("javax.servlet.error.exception") == null) {

  17 String paramValue = request.getParameter(this.methodParam);

  18 if (StringUtils.hasLength(paramValue)) {

  19 String method = paramValue.toUpperCase(Locale.ENGLISH);

  20 if (ALLOWED_METHODS.contains(method)) {

  21 requestToUse = new HiddenHttpMethodFilter.HttpMethodRequestWrapper(request, method);

  26 filterChain.doFilter((ServletRequest)requestToUse, response);

  29 static {

  30 ALLOWED_METHODS = Collections.unmodifiableList(Arrays.asList(HttpMethod.PUT.name(), HttpMethod.DELETE.name(), HttpMethod.PATCH.name()));

  33 private static class HttpMethodRequestWrapper extends HttpServletRequestWrapper {

  34 private final String method;

  36 public HttpMethodRequestWrapper(HttpServletRequest request, String method) {

  37 super(request);

  38 this.method = method;

  41 public String getMethod() {

  42 return this.method;

  45 }

 

   文章如有不足之处,请留言评论或私信,希望我踩过的坑,满头泥泞,能帮助你们少踩坑,帮助到你java的学习!

  

  以上就是HTTP Status 405()的详细内容,想要了解更多 HTTP Status 405的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: