一、搭建环境介绍
- springboot:2.3.3
- tomcat:9.0.37
- java:1.8
- maven:3.3.9
- IDEA:2017.2.2
二、搭建步骤
- 打开IDEA,点击Create new Project创建一个新的工程
springboot2.3.3引用Tomcat9整合jsp - 点击Spring Initializr快速创建springboot;在Project SDK中配置项目的使用的Java版本;点击Next进入下一步。
springboot2.3.3引用Tomcat9整合jsp - 将Packing设置为War,其他的参考图片中的设置。点击Next进入下一步。
springboot2.3.3引用Tomcat9整合jsp - 点击Web,勾选Spring Web模块,注意版本为2.3.3;点击Next进入下一步。
springboot2.3.3引用Tomcat9整合jsp - 为项目起名字,点击Finish创建完成。
springboot2.3.3引用Tomcat9整合jsp - 创建完成后项目结构如下所示:注意这里的ServletInitializer类。 ServletInitializer类的如下所示:
springboot2.3.3引用Tomcat9整合jsp
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringBootJspApplication.class);
}
}
SpringBootJspApplication类如下所示:
@SpringBootApplication
public class SpringBootJspApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootJspApplication.class, args);
}
}
pom.xml的文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.lhang</groupId>
<artifactId>spring-boot-jsp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>spring-boot-jsp</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
- 到此Spring Initializr已经帮助我们完成了大部分项目的创建,现在需要添加webapp的资源文件夹和web.xml。按住ctrl+alt+shift+s进入Project Structure,①点击Modules,②展开项目然后点击web,③配置web资源文件夹路径。我的路径配置在src\main下,完整web资源文件夹路径为C:\Users\lhang\Desktop\spring-boot-jsp\src\main\webapp④点击ok完成web资源文件夹路径的配置。
8. ①点击’+’,②填写web。xml 的存放路径,我配置在webapp\WEB-INF\下边,完整的路径是
C:\Users\lhang\Desktop\spring-boot-jsp\src\main\webapp\WEB-INF\web.xm。③点击ok完成web.xml
文件的添加
9. 到此webapp的资源文件夹和web.xml已经创建完成,项目的结构如下所示:
10. 接下来添加和配置本地tomcat服务器。点击Edit Configration进行运行配置。
11. 点击左上角的’+'号,在弹出的Add New Configuration矿中点击Tomcat Server,选择Local添加本地Tomcat服务器。
12. ①配置Tomcat Server 的名字②在Server选项卡中,点击configure…添加并配置本地Tomcat服务器。
13. ①在Deployment选项卡下,点击+选择Artifact…,会弹出Select Artifact to Deploy 弹框。
14. 在Select Artifact to Deploy 弹框中选择当前项目暴露的war包(这一步的目的是将应用部署到tomcat服务器上),点击ok完成Tomcat服务器的添加和配置。
15. 在webapp目录下添加index.jsp,在index.jsp中内容如下所示:
16. 在WEB-INF下新建jsp文件夹,在jsp文件夹下新建hello.jsp,内容如下所示:
- 在springboot包下创建controller子包,并在controller包下创建HelloController类,内容如下图所示:
springboot2.3.3引用Tomcat9整合jsp - 在application.properties中配置springmvc 的视图解析逻辑。
springboot2.3.3引用Tomcat9整合jsp - 打开maven Project侧边栏,点击package对当前项目进行打包。
springboot2.3.3引用Tomcat9整合jsp - 如果出现下图中Build Success,则说明项目打包成功。
springboot2.3.3引用Tomcat9整合jsp - 选择配置好的tomcat服务器,点击run启动tomcat服务器。
springboot2.3.3引用Tomcat9整合jsp - 打开浏览器,输入http://localhost:8080,点击页面中的hello,如果配置成功会正常跳转到hello页面 hello页面如下所示:
springboot2.3.3引用Tomcat9整合jsp springboot2.3.3引用Tomcat9整合jsp
三、总结
- springboot集成外部tomcat服务器时,需要选择合适的tocmat服务器的版本,这个可以在springboot的文档中查找。
- 每改动一次代码,都需要使用maven从新打包,然后在重启tomcat服务器,这样项目才能被tomcat正确运行。