IDEA使用Maven创建webapp骨架无法创建Servlet文件与无法使用@WebServlet实现注解问题解决

目录

问题一(无法创建Servlet文件)

问题一解决:

问题二(创建好的Servlet文件并不能使用@WebServlet实现注解配置)

问题二解决:

实现@WebServlet注解


使用Maven创建web工程(使用webapp骨架)

IDEA使用Maven创建webapp骨架无法创建Servlet文件与无法使用@WebServlet实现注解问题解决_第1张图片

问题一(无法创建Servlet文件)

一路next之后,这时我们需要创建第一个servlet,却发现自己无法创建Servlet文件(问题一),WTF!

IDEA使用Maven创建webapp骨架无法创建Servlet文件与无法使用@WebServlet实现注解问题解决_第2张图片

问题一解决:


使用快捷键 Ctrl + Shift + Alt + S  打开项目结构或按如下操作:

IDEA使用Maven创建webapp骨架无法创建Servlet文件与无法使用@WebServlet实现注解问题解决_第3张图片

IDEA使用Maven创建webapp骨架无法创建Servlet文件与无法使用@WebServlet实现注解问题解决_第4张图片

这时我们发现可以创建Servlet文件了

IDEA使用Maven创建webapp骨架无法创建Servlet文件与无法使用@WebServlet实现注解问题解决_第5张图片


问题二(创建好的Servlet文件并不能使用@WebServlet实现注解配置)

当然,这好解决,最让人无语的是:当你创建完之后体会默认在web.xml文件中对你的Servlet进行配置,而并非创建的是一个@WebServlet注解。问题二

原因:

在使用Maven骨架创建web项目时,默认选择创建webapp:1.4版本,由于在早期的web工程中并不支持@WebServlet注解配置,也不支持El表达式(在web 3.0版本之后才支持),所以在默认创建的webapp骨架使用Servlet 时想使用@WebServlet进行url-pattern配置是不能够完成的。


问题二解决:

  • 找到本地仓库目录路径:D:\repo
  • 依次打开:D:\repo\org\apache\maven\archetypes\maven-archetype-webapp\1.4

IDEA使用Maven创建webapp骨架无法创建Servlet文件与无法使用@WebServlet实现注解问题解决_第6张图片

  • 找到 maven-archetype-webapp-1.4.jar 这个jar包
  • 使用压缩软件打开:archetype-resources\src\main\webapp\WEB-INF不要解压缩IDEA使用Maven创建webapp骨架无法创建Servlet文件与无法使用@WebServlet实现注解问题解决_第7张图片

  • 打开web.xml文件,里面是这样的

IDEA使用Maven创建webapp骨架无法创建Servlet文件与无法使用@WebServlet实现注解问题解决_第8张图片

  • 找到本地Tomcat目录路径,依次打开:D:\Tomcat 9.0.24\apache-tomcat-9.0.24\webapps\ROOT\WEB-INF

IDEA使用Maven创建webapp骨架无法创建Servlet文件与无法使用@WebServlet实现注解问题解决_第9张图片

  • 我们需要将Tomcat中web.xml里的部分配置复制粘贴到Maven骨架webapp的那个web.xml文件中

  • 即上述内容复制粘贴到Maven骨架webapp的那个web.xml文件中

并添加一行:metadata-complete="false"           (very important)

IDEA使用Maven创建webapp骨架无法创建Servlet文件与无法使用@WebServlet实现注解问题解决_第10张图片

保存退出,压缩软件提示是否把更改内容压缩到文件中,选择是!

实现@WebServlet注解

在Maven工程中的pom.xml文件中导入依赖

IDEA使用Maven创建webapp骨架无法创建Servlet文件与无法使用@WebServlet实现注解问题解决_第11张图片


      javax.servlet
      javax.servlet-api
      3.1.0
      provided
    

导入依赖后重新加载Maven变更即可!

@WebServlet注解正常使用

IDEA使用Maven创建webapp骨架无法创建Servlet文件与无法使用@WebServlet实现注解问题解决_第12张图片

你可能感兴趣的:(Maven,maven)