我创建了一个 Servlet,利用 @WebServlet
注解指定 url,但是在浏览器中访问不到,显示的是 404 页面
1 | "/hello") ( |
检查了一下我的 web.xml
文件
1 |
|
目前是空白的,什么都没有。但是访问 http://localhost:8080/hello
还是访问不到。于是我就修改 web.xml
,由 web.xml
来指定路由
1 |
|
现在可以访问了。
原因
查找资料,问题出在 web.xml
文件中。xml 文件定义中的 metadata-complete="true"
,造成了注解失效。
该属性指定当前的部署描述文件是否是完全的。如果设置为
true
,则容器在部署时将只依赖部署描述文件,忽略所有的注解(同时也会跳过web-fragment.xml
的扫描),如果不配置该属性,或者将其设置为false
,则表示启用注解支持(和web-fragment.xml
的扫描)