利用 Tomcat 10 构建 Servlet 报错:类 xxx 不是 Servlet

从Tomcat10开始,Servlet的依赖包从javax.servlet更改为jakarta.servlet,导致兼容性问题。解决方法包括:1) 使用Tomcat10以下版本;2) 更新dependency为最新的jakarta.servlet包。

异常报告

在这里插入图片描述

解决方法

异常原因

Tomcat 10 之后 Servlet 依赖包不再是 javax.servlet ,而是改为 jakarta.servlet。

解决办法

  • 使用 Tomcat 10 以下的版本。
  • dependency 修改为最新的 jakarta.servlet
<think>好的,我现在需要帮助用户在Spring Boot中配置Tomcat的URI编码、端口和Servlet上下文路径。根据用户提供的引用资料,我需要先确认如何正确修改这些配置。 首先,用户提到的配置项括uri-encoding为UTF-8,端口设置为8080,以及context-path设为/springboota53y0。我需要查看用户提供的引用,找到对应的配置方式。引用1、2、3、4都提到了不同的配置方法,主要是在application.properties或application.yml中设置。 引用1和2说明,在application.properties中,端口和上下文路径是通过server.port和server.servlet.context-path配置的。例如,引用2中的例子是server.port=8081和server.servlet.context-path=/sprinboot。所以,用户需要将端口改为8080,context-path改为/springboota53y0。 关于URI编码,引用3和4提到在server.tomcat.uri-encoding属性中设置。例如,引用3中的server.tomcat.uri-encoding=UTF-8,引用4也有似的配置。这说明在application.properties中,应该添加这行配置。 接下来,用户可能需要同时配置这三个参数,所以需要确认这些配置项是否可以同时存在于同一个配置文件中。根据引用的例子,是的,它们可以并列设置。例如,引用3中的示例同时配置了port、context-path、uri-encoding等。 然后,我需要考虑配置文件的格式,用户可以使用properties文件或者yml格式。用户的问题中没有指定,所以应该同时提供两种方式的示例,方便用户选择。 在application.properties中,配置应该是这样的: server.port=8080 server.servlet.context-path=/springboota53y0 server.tomcat.uri-encoding=UTF-8 而在application.yml中,格式需要分层,注意缩进: server: port: 8080 servlet: context-path: /springboota53y0 tomcat: uri-encoding: UTF-8 需要确保语法正确,尤其是yml的缩进必须使用空格,不能使用制表符。同时,要提醒用户这些配置的位置,即放在src/main/resources目录下,并且Application所在的同级或子目录。 另外,可能需要验证这些配置是否在Spring Boot版本中适用。根据引用资料中的例子,这些配置应该是通用的,适用于较新的Spring Boot版本。但如果有版本差异,可能需要用户注意,不过用户提供的引用中没有提到版本问题,所以暂时不需要额外说明。 最后,用户可能需要知道配置后的效果,例如端口变更后应用会监听在8080,访问路径需要加上/springboota53y0,URI编码生效后处理请求时会使用UTF-8解码。这部分可以作为解释添加到回答中,帮助用户理解每个配置的作用。 总结步骤: 1. 创建或修改application.properties/yml文件。 2. 添加对应的配置项。 3. 验证配置是否正确应用。 同时,根据用户的要求生成相关问题,可能需要涉及其他Tomcat配置、性能调优或者如何测试配置是否生效等。</think>### Spring Boot配置Tomcat参数的方法 在Spring Boot中配置Tomcat服务器的URI编码、端口和Servlet上下文路径,可以通过以下步骤实现: #### 1. 配置端口和上下文路径 在`application.properties`或`application.yml`中直接设置: - **端口**:`server.port=8080` - **上下文路径**:`server.servlet.context-path=/springboota53y0`[^1][^2] #### 2. 配置URI编码 Tomcat的URI编码通过`server.tomcat.uri-encoding`参数配置: - **UTF-8编码**:`server.tomcat.uri-encoding=UTF-8`[^3][^4] #### 完整配置示例 **方式一:application.properties** ```properties # 设置端口 server.port=8080 # 设置上下文路径 server.servlet.context-path=/springboota53y0 # 配置URI编码 server.tomcat.uri-encoding=UTF-8 ``` **方式二:application.yml** ```yaml server: port: 8080 servlet: context-path: /springboota53y0 tomcat: uri-encoding: UTF-8 ``` #### 3. 验证配置 - **端口生效**:应用启动后控制台会显示`Tomcat started on port(s): 8080` - **上下文路径**:所有接口访问需添加前缀`http://localhost:8080/springboota53y0/xxx` - **编码验证**:可通过传递中文字符参数测试URL解码是否正常[^4] --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值