您的位置:首页 > 理论基础 > 计算机网络

Tomcat 8.x版本不支持使用HTTP PUT方式访问JSP页面的问题

2017-04-18 00:00 666 查看
Tomcat按照JCP规范(JSP 2.3版本)的规定,从Tomcat 8.x版本开始,不再支持以HTTP PUT方式访问JSP页面,仅支持GET、POST、HEAD方式访问JSP页面。

在Tomcat自动产生的所访问JSP页面的java文件(X:\apache-tomcat-8.0.20\work\Catalina\localhost\<PROJECT_CONTEXT_PATH>\org\apache\jsp\[SUB_DIRECTORY\])中的 public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException 方法中可以看到如下代码:

final java.lang.String _jspx_method = request.getMethod();
if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method) && !javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) {
response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSPs only permit GET POST or HEAD");
return;
}

上面的问题是在升级Struts版本并且使用Tomcat 8.x版本时发现的,开始以为是升级Struts版本的问题,由于产生问题的地方是在Ajax调用中(没有界面),只报了405错误码出来(后来在JS代码中输出响应内容到页面上就可以很清晰地看到问题所在了),结果搜索了一圈之后,才发现是Tomcat版本问题。已验证“使用Tomcat 6.x、7.x版本没有此问题”。

Since JSP 2.3 (Tomcat 8) only supported method for JSP is GET POST or HEAD

引用来自于: http://stackoverflow.com/questions/23886941/http-status-405-jsps-only-permit-get-post-or-head
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Tomcat 8 不支持 PUT JSP
相关文章推荐