以前一直用的eclipse,web.xml文件自動生成的,沒自己改過。
這次web.xml是先創建maven項目再添加web配置時,隨便從一個web4.0項目里拷貝來的,然后就出問題了。
Servlet中寫了注解@WebServlet("xxxx")
,但訪問servlet時報404錯誤。
(一)看了web的確是3.0以上的,沒找到問題在哪,看了篇博客解決了:https://www.cnblogs.com/iCheny/p/10976735.html
-
原web.xml(出問題的)
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0" metadata-complete="true"> </web-app>
-
用Servlet注解的話把metadata-complete改成false
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0" metadata-complete="false"> </web-app>
(二)補充:
-
如果項目名后來修改過了,要查看tomcat部署里的artifact是否和項目同名,不同名部署路徑會出錯。
-
不同名:
-
修改成同名的:
-