javaweb
tomact10
原因:Tomacat 10 之后servlet依赖包名不是 javax.servlet,而是jakarta.servlet
解决办法:
1 . 重新安装Tomcat 9 (建议初学者,记住。。。最新的不一定是最好的)
2. tomcat10把 javax.servlet 都改为了jakarta.servle(这个方法我用了,只会报错,可能是只是改 了包名,但其实仓库里没有这个包)*不可行*
3.最后想到的是改为最新的dependency,这样javax就会自己变为jakarta。所以还是去maven Repository中搜我们需要的最新的dependency,先是servlet-api:
<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-servlet-api -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>10.0.4</version>
</dependency>
然后是jsp-api:
<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-jsp-api -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jsp-api</artifactId>
<version>10.0.4</version>
</dependency>
把这两个代码放到项目的pom中,覆盖掉原来的那两个dependency,等待maven更新就好。
然后最会还有一步就是你写的那个Java类中导入到javax包要手动改为jakarta
xml头部文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="4.0"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
metadata-complete="true">
</web-app>
乱码问题解决
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=utf-8");
jstl表达式
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
standard标签库
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!-- servlet依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<!--jsp依赖-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>

浙公网安备 33010602011771号