# spring boot 整合 tomcat ## 目录
一、说明
        1.1 项目结构说明
        1.2 项目主要依赖
二、整合 tomcat
        2.1 修改启动类,继承自SpringBootServletInitializer,并覆盖重写其中configure方法
        2.2 在application.yml 中指定访问视图文件的前缀和后缀
        2.3 新建controller和show.jsp 测试整合是否成功
## 正文
## 一、说明 #### 1.1 项目结构说明 spring boot 整合 tomcat 后支持jsp 的使用(内置容器默认是不支持jsp),所以项目整合后采用jspController 跳转到show.jsp测试整合是否成功。
#### 1.2 项目主要依赖 ```xml org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat javax.servlet servlet-api 2.5 provided ``` ## 二、整合 tomcat #### 2.1 修改启动类,继承自SpringBootServletInitializer,并覆盖重写其中configure方法 ```java /** * 如果用外置tomcat,启动报错java.lang.NoClassDefFoundError: javax/el/ELManager * 是因为tomcat 7.0 el-api包中没有ELManager类 , 切换tomcat 为8.0 以上版本即可 */ @SpringBootApplication public class SpringBootTomcatApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { //传入SpringBoot应用的主程序 return application.sources(SpringBootTomcatApplication.class); } public static void main(String[] args) { SpringApplication.run(SpringBootTomcatApplication.class, args); } } ``` #### 2.2 在application.yml 中指定访问视图文件的前缀和后缀 ```yml spring: mvc: view: prefix: /WEB-INF/jsp/ suffix: .jsp ``` #### 2.3 新建controller和show.jsp 测试整合是否成功 ```java @Controller @RequestMapping("index") public class JspController { @RequestMapping public String jsp(Model model){ Programmer programmer = new Programmer("heibai", 21, 1298.31f, LocalDate.now()); model.addAttribute("programmer",programmer); return "show"; } } ``` ```jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> programmer ```