首页 > 代码库 > Servlet使用注解配置URl提示404错误

Servlet使用注解配置URl提示404错误

刚接触servlet 3.0,使用注释描述servlet

@WebServlet(name="FirstServlet", urlPatterns="/FirstServlet" )

但是无论部署好了无论如何访问都报404,纠结了很久,是因为web.xml 里面的一个属性设置有问题

metadata-complete="true"

改为

metadata-complete="false"

 

为什么将metadate-complete设置为false,就可以运行了呢?

因为:

Servlet 3.0 的部署描述文件 web.xml 的顶层标签 <web-app> 有一个 metadata-complete 属性,该属性指定当前的部署描述文件是否是完全的。如果设置为 true,则容器在部署时将只依赖部署描述文件,忽略所有的注解(同时也会跳过 web-fragment.xml 的扫描,亦即禁用可插性支持);如果不配置该属性,或者将其设置为 false,则表示启用注解支持(和可插性支持)。

当web.xml和注解同时存在的时候,会使用的是web.xml中所配置的内容,而忽略了注解配置的内容。

 

Servlet使用注解配置URl提示404错误