Tomcat10相较于Tomcat9和8,在Servlet方面,对于javax.servlet包名改为了jakarta.servlet。
当你目前的项目是使用Tomcat10进行部署的,然后页面提示没有找到javax.servlet.http.HttpServletRequest包时,只有两种方法:
1、就是在Tomcat10的包下找到lib下的servlet-api.jar包 ,详情请看我上一篇文章:关于IDEA在写文件上传时,找不到javax.servlet.http.HttpServletRequest如何解决
2、或者将各个类中导入的包删掉,
eg: import jakarta.servlet.HttpServletRequest.
并把Tomcat10改成Tomcat9或是8。代码中的HttpServletRest报错以后,按Alt+Enter,导入javax.servlet的包。
eg: import javax.servlet.HttpServletRequest.
3、则是使用Tomcat9或者Tomcat8。具体步骤如下:
首先下载好Tomcat9或者8。最重要的是,新开一个maven或者web项目,不能在原页面下重新创建一个项目,然后将Tomcat部署在新页面上:
重新创建web项目
重新创建maven项目
然后将Tomcat部署到新项目上:
点击Configure
再设置好Deployment,单击+号,选择Atificat,导入即可
如果没有Atificat可选,则去project Structure中设置,单击file,选择 project Structure
选择Artifacts,点击+号,选择Web Application:Exploded,在点击From Modules,选择想要运行的项目即可
如果此时运行后还提醒没有找到javax.servlet包,则只需在Module下导入依赖jar包,具体如下:
选择Module——>Dependecies,点击+号,然后选择JARS
在你选择Tomcat版本下的lib找到servlet-api.jar包,最后Apply即可
现在说下在原本部署Tomcat10页面下再新创一个项目会产生的问题。因为该页面下所有项目都是用Tomcat10部署,此时如果在该页面下部署了Tomcat9或者8版本,在一些使用了jakarta.servlet包的项目中,会检测到 无法找到这个包,就是因为Tomcat10的版本问题,对于这个javax包的更新,所以只能重启一个新项目来解决这个问题,不然需要对每个依赖于Tomcat10版本的项目进行更新,会浪费大量时间。希望此次的文章可以帮助到您!