Tomcat 版本适应问题

开门见山:Tomcat各版本适应于不同版本的其他工具(如Servlet、JSP),因而对于许多运行错误(如500转404),应该检查Tomcat版本是否过高(往往是版本过低)

一、遇到的问题

运行出错(HTTP:500转为404错误)

在 Servlet + JSP 的一个简单登录项目中,突然发现 jsp 页面无法互相跳转,并且浏览器报错内容为 500,后面刷新后为 404 错误,反复检查 Servlet 类和 jsp 文件均无逻辑问题,不由得计上心来。

错误截图

点击登录进行原定的跳转:
在这里插入图片描述

刷新页面后:
在这里插入图片描述

二、解决方法(降低Tomcat版本 or 提升Servlet版本)

方案1:降低Tomcat版本

从官网重新下载与项目中 Servlet 相对应版本的 Tomcat 即可。

Tomcat 版本适应规则
在这里插入图片描述

Q:哪里找当前 Servlet 版本号?
A:
如果是 IDEA,则在当前项目的 pom.xml 中找相应依赖的版本号;
如果是 Eclipse,则在新建本项目时应已指定,可在项目属性信息中查看。

方案2:提升 Servlet 版本

(注:此方法仅适用于 Tomcat 10(或更低)以下的情况,因为 Tomcat 10 将 JavaEE 更换成了 Jakarta EE,所以原 Servlet 包 "javax.servlet.“ 会更改为 “jakarta.servlet.”。所以看你源代码中是哪一个,若为 javax 则只能选择方案1,否则就修改源代码。)

版本提升方法
在 pom.xml 依赖中将 Servlet 改为以下内容:

<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-servlet-api</artifactId>
    <version>10.0.12</version>
</dependency>
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-jsp-api</artifactId>
    <version>10.0.12</version>
</dependency>
### 若依项目使用的Tomcat版本 对于若依项目的Tomcat版本信息,通常情况下Spring Boot应用会使用内嵌的Tomcat服务器,默认版本由Spring Boot所管理。为了具体了解若依项目中的Tomcat版本,在`pom.xml`文件中可以找到关于Tomcat的相关配置。 如果想要自定义指定Tomcat版本,则可以在Maven项目的`pom.xml`文件里通过加入特定依赖来实现这一点[^1]: ```xml <properties> <tomcat.version>9.0.56</tomcat.version> <!-- 这里的版本号可以根据实际需求调整 --> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-core</artifactId> <version>${tomcat.version}</version> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-el</artifactId> <version>${tomcat.version}</version> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-websocket</artifactId> <version>${tomcat.version}</version> </dependency> </dependencies> ``` 当涉及到将若依这样的前后端分离的应用部署至外部Tomcat时,需要注意的是前端资源的位置以及如何正确设置访问路径等问题[^2]。不过这并不直接影响到Tomcat本身的版本选择上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值