系统学习JavaWeb之特别篇使用注解WebServlet配置Servlet报404错误的原因
2016-10-12 15:32
711 查看
有些人可能会遇到这种种情况,在采用注解WebServlet配置Servlet的时候,明明在配置了urlPatterns属性,部署应用程序的时候也没有出错。但是就是在浏览器发请求的时候访问不到资源,报404错误request resource is not available。捣腾了半天也不知道,到底是哪而出错了?
Servlet3.0之后新增了注解,用于简化Servlet、Filter及Listener的声明,这样就在配置Servlet的时候多了一个选择。Servlet3.0的部署描述文件web.xml的顶层标签<web-app>有一个metadata-complete属性,该属性为true,则容器在部署时只依赖部署描述文件,忽略所有标注,如果不配置该属性,或者将其设置为false,则表示启动标注支持。当metadata-complete="false"时,web.xml和注解对于Servlet的影响同时起作用,两种方法定义的url-partten都可以访问到该Servlet,但是当通过web.xml定义的url-partten访问时,注解定义的属性(初始化参数等)将失效。
但是,我们要知道JDK是在5.0之后才支持注解特性的,所以要想使用Servlet3.0的这个新特性必须JDK5.0以后的版本。而Tomcat容器是在7.0以后才开始支持此特性。所以通常使用WebServlet注解报404错误的原因可以总结如下:
使用的是JDK5.0以前的版本;
使用的是Tomcat7.0更早的版本;
使用了web.xml文件但是web-app标签的version属性不为3.0,导致容器没有按照Servlet
3.0版本正确配置;
Servlet3.0之后新增了注解,用于简化Servlet、Filter及Listener的声明,这样就在配置Servlet的时候多了一个选择。Servlet3.0的部署描述文件web.xml的顶层标签<web-app>有一个metadata-complete属性,该属性为true,则容器在部署时只依赖部署描述文件,忽略所有标注,如果不配置该属性,或者将其设置为false,则表示启动标注支持。当metadata-complete="false"时,web.xml和注解对于Servlet的影响同时起作用,两种方法定义的url-partten都可以访问到该Servlet,但是当通过web.xml定义的url-partten访问时,注解定义的属性(初始化参数等)将失效。
但是,我们要知道JDK是在5.0之后才支持注解特性的,所以要想使用Servlet3.0的这个新特性必须JDK5.0以后的版本。而Tomcat容器是在7.0以后才开始支持此特性。所以通常使用WebServlet注解报404错误的原因可以总结如下:
使用的是JDK5.0以前的版本;
使用的是Tomcat7.0更早的版本;
使用了web.xml文件但是web-app标签的version属性不为3.0,导致容器没有按照Servlet
3.0版本正确配置;
相关文章推荐
- JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet
- 系统学习JavaWeb之五Servlet的配置信息ServletConfig
- windows下关于使用eclipse开发web服务器后台项目完整配置(jsp+javabean+servlet)
- 系统学习JavaWeb之三编写一个简单的Servlet应用程序
- java web and vue.js 配合使用---servlet的配置
- 系统学习JavaWeb之七servlet处理HTML表单
- Java---@WebServlet注解的使用
- 深入学习SSH框架《二:java编程式配置servlet和使用web.xml部署描述符配置servlet》
- (转)JavaWeb学习之Servlet(一)----MyEclipse及Tomcat的配置
- Servlet使用注解配置URl提示404错误
- java for Web学习笔记之Servlet的使用及注意事项
- java_web学习第二天(ServletConfig和ServletContext对象的作用和使用)
- JAVA_WEB Struts2学习:使用验证框架进行校验JSP页面元素 反编译工具的配置 Strtuts2 国际化学习
- 配置servlet用注解和web.xml都没作用,报404错误以及500错误的解决
- Servlet3.1使用@WebServlet注解配置问题记录
- 系统学习JavaWeb之二初窥Servlet门径
- 系统学习JavaWeb之四ServletRequest和ServletResponse浅读
- (转)JavaWeb学习之Servlet(四)----ServletConfig获取配置信息、ServletContext的应用
- java Servlet3.0 使用注解标注Servlet @WebServlet
- Servlet使用注解配置URl提示404错误