SpringMVC HiddenHttpMethodFilter 在 Tomcat 9 上不支持如何解决?

如题。

找了许久,貌似没有解决办法,
那SpringMVC 在高版本 Tomcat 上如何实现 REST风格的 PUT DELETE 呢?

阅读 3.4k
2 个回答

可以了,感谢各位!

在 web.xml 中配置如下:

     <filter>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping> 

转载:高版本Tomcat(8及以上)不支持PUT、DELETE方法

HiddenHttpMethodFilter进行请求过滤,实现Rest风格的url(实测真实有效!!)


1.Tomcat7及以下的版本:

在web.xml配置:

<filter>
  <filter-name>hiddenHttpMethodFilter</filter-name>
  <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>hiddenHttpMethodFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

2.Tomcat8及以上版本:

(1)在web.xml文件中配置过滤器(即上述Tomcat7版本的配置)

<!-- rest请求方式过滤器,把浏览器中post请求中的put和delete方式,通过过滤器转换为代码中对应的put和delete请求方式-->
    <filter>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

(2)在要跳转的页面上设置 isErrorPage=“true”,设置完成就能用了。

<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <span> 我成功了! </span>
  </body>
</html>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题