目录
问题二(创建好的Servlet文件并不能使用@WebServlet实现注解配置)
使用Maven创建web工程(使用webapp骨架)
问题一(无法创建Servlet文件)
一路next之后,这时我们需要创建第一个servlet,却发现自己无法创建Servlet文件(问题一),WTF!
问题一解决:
使用快捷键 Ctrl + Shift + Alt + S 打开项目结构或按如下操作:
这时我们发现可以创建Servlet文件了
问题二(创建好的Servlet文件并不能使用@WebServlet实现注解配置)
当然,这好解决,最让人无语的是:当你创建完之后体会默认在web.xml文件中对你的Servlet进行配置,而并非创建的是一个@WebServlet注解。(问题二)
原因:
在使用Maven骨架创建web项目时,默认选择创建webapp:1.4版本,由于在早期的web工程中并不支持@WebServlet注解配置,也不支持El表达式(在web 3.0版本之后才支持),所以在默认创建的webapp骨架使用Servlet 时想使用@WebServlet进行url-pattern配置是不能够完成的。
问题二解决:
- 找到本地仓库目录路径:D: epo
- 依次打开:D: epoorgapachemavenarchetypesmaven-archetype-webapp1.4
- 找到 maven-archetype-webapp-1.4.jar 这个jar包
-
使用压缩软件打开:archetype-resourcessrcmainwebappWEB-INF(不要解压缩)
- 打开web.xml文件,里面是这样的
- 找到本地Tomcat目录路径,依次打开:D:Tomcat 9.0.24apache-tomcat-9.0.24webappsROOTWEB-INF
- 我们需要将Tomcat中web.xml里的部分配置复制粘贴到Maven骨架webapp的那个web.xml文件中
- 即上述内容复制粘贴到Maven骨架webapp的那个web.xml文件中
并添加一行:metadata-complete="false" (very important)
保存退出,压缩软件提示是否把更改内容压缩到文件中,选择是!
实现@WebServlet注解
在Maven工程中的pom.xml文件中导入依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
导入依赖后重新加载Maven变更即可!
@WebServlet注解正常使用