解决springboot项目请求出现非法字符问题
在springboot2.x.x以上项目或者在tomcat8.5中会出现请求中含有非法字符的错误,前端返回400,后端错误日志如下
这段报错的意思是:请求中含有无效字符,有效的字符在RFC 7230和RFC 3986中定义
查看springboot项目的tomcat版本:
方法一:使用idea作为开发工具的可以直接点击项目下面External Libraries,搜索字符串“tomcat”可以看到tomcat版本为9.0.19
方法二:打开本地maven仓库springboot父依赖配置,路径如:C:\Users\Administrator.m2\repository\org\springframework\boot\spring-boot-dependencies
我是2.1.5版本的springboot,打开2.1.5.RELEASE文件夹查看 spring-boot-dependencies-2.1.5.RELEASE.pom 里面的配置 搜索tomcat.version,显示tomcat.version9.0.19/tomcat.version
这就是springboot所依赖的tomcat的版本
springboot项目打war包,并部署到tomcat
idea:2019.1 ultimate
springboot: 2.2.5
tomcat:9.0.31
这里有两种方式可供选择:
全称:org.springframework.boot.web.servlet.support.SpringBootServletInitializer,官方文档也有详细介绍为什么要继承。
直接使用idea的maven插件进行打包发布:
先进行clean清除target下面的文件,然后package将war包打包到target文件夹下。或者用install将war包打包到本地仓库中就好了。
建议springboot中的tomcat是什么版本,就在生成环境使用说明版本的tomcat,这样可以避免出现不必要的错误。
springboot2.4.4内置tomcat是多少
题主是否想询问“springboot2.4.4内置tomcat最大线程是多少”?200。SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用。springboot2.4.4内置tomcat最大线程是200,最大连接数是10000。
Springboot中tomcat问题
javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/servlet/http/HttpServletMapping;
解决方法: 将tomcat版本改为8.5.37即可
如何查看你当前使用Springboot框架的tomcat版本呢:
按照以下路径可以查看
打开.pom文件,可以在 properties标签中看到内置的许多默认版本。例如:我的版本为9.0.26。
Tomcat 9.0 is designed to run on Java SE 8 and later.
1、新增HTTP/2支持和TLS虚拟主机。
2、实现当前Servlet4.0规范草案
3、BIO connectors 不再支持Windows Itanium 和 Comet
4、Tomcat 9.0设计用于运行在Java se 8及以后的版本。
tomcat9使用的是servletAPI v4。但是SpringBoot 2.x还包含着 servletAPI v3.1
Tomcat 9.0 is designed to run on Java SE 8 and later.
1、新增HTTP/2支持和TLS虚拟主机。
2、实现当前Servlet4.0规范草案
3、BIO connectors 不再支持Windows Itanium 和 Comet
4、Tomcat 9.0设计用于运行在Java se 8及以后的版本。
==Springboot默认版本tomcat9使用的是servletAPI v4。但是SpringBoot 2.x还包含着 servletAPI v3.1,出现servletAPI冲撞问题,所以改变tomcat版本为tomcat8==