Spring Boot 项目中使用 JSP:
项目结构:需要添加webapp文件夹用来存放目录 jsp 文件
spring-boot-jsp +-src +- main +- java +- resources +- webapp +- WEB-INF +- jsp +- welcome.jsp +- test +-pom.xml
在配置文件application.properties中指定 jsp 的位置和后缀。
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
引入依赖包
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
简单写一个页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>jsp welcome</title>
</head>
<body>
Time: ${time}
<br>
Message: ${message}
</body>
</html>
后端程序
@Controller public class WelcomeController { @GetMapping("/") public String welcome(Map<String, Object> model) { model.put("time", new Date()); model.put("message", "hello world"); return "welcome"; } }
打war 在tomcat中运行:
(1)在 pom.xml 里设置打包格式为 war。
<packaging>war</packaging>
(2)排除内嵌的 Tomcat 依赖
打包时排除掉内嵌的 Tomcat 依赖,避免 jar 包冲突。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 排除内置容器,排除内置容器导出成 war 包可以让外部容器运行spring-boot项目-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
Servlet 的支持:
Spring Boot 项目必须实现 SpringBootServletInitializer 接口的 configure() 方法才能让外部容器运行 Spring Boot 项目,启动类同目录下创建 ServletInitializer 类:
public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(JspApplication.class); } }
打包发布,在项目根目录执行 maven 命令:
mvn clean package
将 war 包发布到 Tomcat 即可。
原文:https://www.cnblogs.com/qq99514925/p/11570011.html