【springMVC】RequestMapping_HiddenHttpMethodFilter 过滤器在tomcat7/8实现的问题

初次尝试springMVC的味道,看看理论,看看代码,觉得挺简单容易掌握,这是我对springMVC的第一印象;可是在实现HiddenHttpMethodFilter时,碰到一个非常奇怪的额问题:项目环境没有问题,代码编写也没有问题,折腾了半个小时始终得不到我要的答案。。。。结果才发现是自己的运气碰上这个HiddenHttpMethodFilter的不可忽视的问题,下面是过程和最终的解决方案。

项目代码写好后,我是发布在Tomcat8中尴尬(我的IDE工具有Tomcat7),进入get,post,put,delete测试的jsp中,get,post顺利实现,可是put和delete始终遇到了:

HTTP Status 405 - JSPs only permit GET POST or HEAD

折腾了那么久,我的内心是崩溃的,明明就是没问题嘛,给我弄得是哪出呢????

最后发现是Tomcat容器的问题,Tomcat8版本升级service方法中不在支持put和delete,因此,以后使用你懂得...
问题源码附上:
 public void service (HttpServletRequest request,
                              HttpServletResponse response)
                 throws ServletException, IOException {
+
+        String method = request.getMethod();
+
+        if (!"GET".equals(method) && !"POST".equals(method) &&
+                !"HEAD".equals(method)) {
+            // Specification states behaviour is undefined
+            // Jasper opts to reject any other verbs, partly as they are
+            // unlikely to make sense in a JSP context and partly to protect
+            // against verb tampering
+            response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED,
+                    Localizer.getMessage("jsp.error.servlet.invalid.method"));
+        }

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值