Spring Boot 項目中使用 JSP: 項目結構:需要添加webapp文件夾用來存放目錄 jsp 文件 在配置文件application.properties中指定 jsp 的位置和尾碼。spring.mvc.view.prefix=/WEB-INF/jsp/spring.mvc.view.s ...
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 即可。