IntelIJ IDEA在2022版本中更新和2021版本界面差距还是比较大的,你们是否有遇到过以下问题呢?

  1. 右键包没有新建Servlet的选项
  2. @WebServlet("/")404
  3. web.xml配置映射时<servlet-class>无法识别Servlet路径
  4. HTTP状态404 - 未找到(请求的资源[]不可用)

废话不多说,直接上图!

idea右键无法创建javaclass idea无法创建servlet_tomcat

根据个人习惯,选择Maven或Gradle

idea右键无法创建javaclass idea无法创建servlet_servlet_02

选择规范中的第2个Web Profile,也可以选择第1个JavaEE Full Platform

idea右键无法创建javaclass idea无法创建servlet_servlet_03

可以看到,新建好的项目是有新建Servlet选项的。但是如果重启IDEA就会发现右键新建Servlet选项又莫名其妙的消失不见了(如果新建Servlet选项还在可以直接跳过此步骤)

idea右键无法创建javaclass idea无法创建servlet_intellij-idea_04

打开项目结构,选择Fecet,将下面的两个源根勾选并保存。再次右键新建就会发现Servlet的选项又回来了!


通过此方式新建的Servlet运行在Tomcat上是不会出现任何问题的,那么为什么有些同学会出现404的错误呢?

首先打开Tomcat官网 

idea右键无法创建javaclass idea无法创建servlet_idea右键无法创建javaclass_05

(一定要对照官网给的的最低版本)

因为servlet-api Maven的最高版本为4.0.1,所以下面以Servlet 4.0为例

idea右键无法创建javaclass idea无法创建servlet_java_06

配置好@WebServlet("/")访问路径

idea右键无法创建javaclass idea无法创建servlet_tomcat_07

直接在URL输入自己配置的访问路径,即可正确访问,但是有的同学又会出现如图所示的问题(下面随便输入的一个URL)

idea右键无法创建javaclass idea无法创建servlet_java_08

404问题是指访问路径不正确,首先检查自己的@WebServlet配置路径有没有错,再检查一下URL地址输入有没有错(很少会有人把访问路径输错,所以大概率是项目结构的问题,如果按照前面的步骤新建Servlet可以避免此类问题)验证是否为项目结构问题可以采用web.xml配置映射路径(具体配置方式不详细介绍)

idea右键无法创建javaclass idea无法创建servlet_java_09

 采用web.xml配置映射路径时又会发现<servlet-class>无法访问到servlet的包结构,这时可以确定为项目结构问题。

解决项目结构问题可以按照上文新建Servlet标准步骤,项目结构问题解决之后可以发现web.xml配置的访问路径可以正常访问包结构了

idea右键无法创建javaclass idea无法创建servlet_servlet_10

URL访问@WebServlet("/")配置的路径名也不会出错,问题完美解决!