刚接触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中所配置的内容,而忽略了注解配置的内容。
时间: 2024-11-09 12:23:38