Servlet学习——Servlet3.0的注解无法生效解决方案

这个问题是由于Servlet3.0之后的web.xml的文件头配置已经和之前的版本不一样了,以下为Eclipse创建的Dynamic Web Project的web.xml文件,Servlet为2.5:


<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  ...
web-app>

Servlet版本为3.0的时候:


<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  ...
web-app>

使用Maven构建的Web项目的web.xml文件(使用的archetype为maven-archetype-webapp,版本为1.0)如下:


<web-app>
    ...
web-app>

从以上的比较可以看出,是因为文件头不同才会导致这个问题,只需要修改文件头与Servlet3.0的一致即可解决这个问题。

使用Jetty时要注意使用的Jetty版本是否支持Servlet3.0,建议使用Jetty8.X或以上的版本。

你可能感兴趣的:(Java)