程序员社区

Spring Boot 整合 JSP 使用外部 Tomcat

       Spring Boot 默认使用的是嵌入式 Tomcat 容器,默认是将项目打成 jar 包的方式运行。我们只需要通过
java -jar xxx.jar 命令的方式直接运行即可。这种方式运行的优缺点如下:

       在使用 Spring Boot 开发项目时,如果选择使用外置的 Servlet 容器,那么首先需要先安装一个Tomcat,然后我们就可以将应用打成 war包的方式运行。接下来就以 Intellij IDEA 的方式,来创建一个 Spring Boot 项目,并设置打包方式为 war 包。

1.选择以 Spring Initializr 的方式创建项目

在这里插入图片描述

2.选择打 war 包的方式

在这里插入图片描述

3.选择一个 Spring Web模块,省去我们自己配置。

在这里插入图片描述

4.创建 web.xml 配置文件

       Spring Boot 工程默认是没有 web.xml 配置文件的,我们可以自己创建。使用快捷键Ctrl + Alt + Shift + S 或者File Structure…,选择Module来创建web.xml
在这里插入图片描述

5.此处以 JSP 为例,需要配置视图解析路径

       我们在 application.yml/application.properties 全局配置文件中,配置视图所在位置。本例将xxxx.jsp文件放在/WEB-INF/目录下。配置文件如下:

spring.mvc.view.prefix=/WEB-INF/
spring.mvc.view.suffix=.jsp

在这里插入图片描述

6.IDEA 中配置外置 Tomcat

在这里插入图片描述
选中 Edit Configurations 进行配置
在这里插入图片描述
设置 Tomcat 相关内容
在这里插入图片描述
设置 使用的 war 包
在这里插入图片描述
选择暴露在外的 exploded 这个。
在这里插入图片描述
设置完成后,请注意项目路径地址。如果此处为/abc,那么你需要通过 locahost:端口号/abc 的方式访问。
在这里插入图片描述

7.编写一个 Controller,跳转到我们编写的 /WEB-INF 下的 success.jsp 页

       本例端口号为:8080,调用 locahost:8080/hello 进行访问,此时会根据 prefixsuffix 的方式进行拼接,然后去路径下查找相对应的页面。此时便会找到 success.jsp 页面。该Controller 同时会使用 Model 进行值传递,将值传递给 success.jsp页。
在这里插入图片描述

8.启动 Tomcat

       启动 Tomcat ,它会加载 ServletInititlizer 这个类来启动 Spring Boot 项目(如果没有的话,你可以自己编写)。如果没有这个类,Spring Boot 项目时启动不了的。利用 Spring Initializr 方式会自动为你创建这个类,这个类的名称可以自定义。

1.如果没有,必须手动编写一个SpringBootServletInitializer 的子类,并调用configure方法

public class ServletInitializer extends SpringBootServletInitializer {
   
   @Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
   
       //传入SpringBoot应用的主程序
      return application.sources(SpringBoot04WebJspApplication.class);
   }
}

2.如果有的话,正常启动 Tomcat 如下图所示
在这里插入图片描述

9.调用 hello 接口测试

在这里插入图片描述


博主写作不易,来个关注呗

求关注、求点赞,加个关注不迷路 ヾ(◍°∇°◍)ノ゙

博主不能保证写的所有知识点都正确,但是能保证纯手敲,错误也请指出,望轻喷 Thanks♪(・ω・)ノ

赞(0) 打赏
未经允许不得转载:IDEA激活码 » Spring Boot 整合 JSP 使用外部 Tomcat

一个分享Java & Python知识的社区