springboot项目如何在tomcat6中部署成功

tomcat7及以上servelt为3.0,tomcat6  servlet版本为2.5,springboot项目内嵌tomcat支持的servlet为3.0

以上,如何在tomcat6中部署springboot?

做法:

pom文件:

1、2.0.4版本测试不可行,改成了1.5.8

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<!--<version>2.0.4.RELEASE</version>-->
<version>1.5.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
如果还想本地调试则加上这句话
2、<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--<scope>provided</scope>-->
</dependency>
3、<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>

4、注释部分代码为移除内嵌的tomcat
<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>
5、<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-legacy</artifactId>
<version>1.1.0.RELEASE</version>
</dependency>

还有一个问题,springboot项目部署到tomcat之后,request.getParameter("DR");这种方式获取参数去不到了,经过调试发现通过x-www-form-urlencoded这种方式在postman中可以获取到,但是获取中文乱码,加上这句:request.setCharacterEncoding("utf-8");

问题解决,跟form enctype属性设置有关,但是tomcat7,8部署之后通过form-data和x-www-form-urlencoded都能通过键值对的方式获取到,(还不知道为啥)。以上,问题解决,一个springboot项目可以在tomcat6中部署成功,requestresponse通过注解获取的,获取方式有很多,这种最简单,还有一个问题,
response.reset();
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.print(resultsString);
out.flush();
out.close();
response返回值得时候加上reset否则会提示response已被占用。




原文地址:https://www.cnblogs.com/wmm1117/p/9547906.html