JSPs only permit GET POST or HEAD

问题由来:
                JSP 2.3规范要求JSP响应GET。头和柱只。所有其他HTTP方法的行为都是未定义的。Tomcat选择拒绝它们,以保护aqainst HTTP谓词篡改攻击。因为这是JSP 2.3。此更改适用于Tomcat 8之后。如何指定JSP错误页以重定向工作?我在11:03使用Tomcat 8.0.9


第一个方法:
您需要重定向到一个错误页面(而不是使用错误处理机制),您需要设置isErrorPaqe="true"并等待8.0.12被释放。设置返回的 jsp 页面为 错误页面,这样一来任何的http方法都可以执行。


第二个方法:
创建一个过滤器(如果您想直接调用JSP页面)或创建一个servlet(最终将调用)JSP页面)。这里我在Filter中做这个request是ServletRequest对象。我用HttpRequestWrapper将原始请求包装成一个假的请求并告诉它返回POST来删除和放置请求所以Jsp认为这是一个POST请求并且页面被执行唯一的缺点是你无法分辨原始请求是什么;如果设置属性thod名称,也可以覆盖这个问题,如下图片所示:

我第一个方法的测试图如下:(Tomcat 8.0)

index.jsp

SpringMVCTest.java

success.jsp

结果页面:

希望能够帮助到你们。

猜你喜欢

转载自blog.csdn.net/qq_39799899/article/details/86669539
今日推荐