项目场景:
版本:tomcat10 maven3.8
问题描述:
用javax.servet类写的文件在映射后启动tomcat报500
原因分析:
可能是javax不兼容tomcat10问题
解决方案:
A.改用jakarta依赖来解决(不推荐)
在不改变tomcat版本的情况下在maven的pom.xml下添加如下依赖(servlet),顺便把jsp也附上:
<dependencies>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.servlet.jsp</groupId>
<artifactId>jakarta.servlet.jsp-api</artifactId>
<version>3.0.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
并用jakarta写Servlet就好了
不过建议降级Tomcat为9
作者用tomcat10时发现idea对jakarta的servlet-jsp访问内置对象时出错,出现pageContext和session引用的是javax的,但作者没有导javax的依赖,也没办法改向为jakarta,但是过了一段时间idea自己又识别好了(雾
B.降级Tomcat为9来解决(推荐)
一劳永逸,防止以后出现不兼容tomcat10的情况。。
直接上javax就行,不会出现500
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>