jsp也算是一種模板引擎吧。整合jsp前,先說一下運行SpringBoot項目的幾種方式java
mvn spring-boot:run
java -jar xxx.jar
java -jar xxx.war
Tomcat的全部屬性都在org.springframework.boot.autoconfigure.web.ServerProperties 配置類中作了定義 ,咱們只須要在application.properties中配置覆蓋默認配置。git
經常使用配置github
#配置程序端口,默認爲8080 server.port=8080 #用戶繪畫session過時時間,以秒爲單位 server.session.timeout= # 配置默認訪問路徑,默認爲/ server.context-path= # 配置Tomcat編碼,默認爲UTF-8 server.tomcat.uri-encoding=UTF-8 # 配置最大線程數 server.tomcat.max-threads=1000
將Spring Boot導出人war包直接放在Tomcat中部署,若是是使用的jsp做爲模板引擎,也就是接下來作的。還須要作一些額外配置,具體配置繼續看下面的操做。web
總結一下,運行一個Spring Boot項目至少有5種方法,下面就讓jsp做爲模板引擎的Spring Boot項目在這5種啓動方式下正常運行吧。spring
項目結構以下:shell
pom.xmlapache
<!--WEB支持--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--jsp頁面使用jstl標籤--> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!--用於編譯jsp--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <!-- 部署到外部容器tomcat時用到 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
注意: tomcat-embed-jasper這個依賴若是設置依賴範圍爲provided在第1種第3種方式運行的進修會報錯,用默認依賴範圍就好,默認爲compile,在使用Intellij Idea按照spring boot項目啓動時,有以下發現,因此設置成provided就好,官方也推薦使用providedtomcat
pom.xmlspringboot
<!-- 打成jar包 --> <packaging>jar</packaging> <!-- 打成war包 --> <packaging>war</packaging>
不一樣啓動方式下的打包方式session
mvn spring-boot:run
均可以java -jar xxx.jar
jar包java -jar xxx.war
war包spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp
編寫一個測試用的控制器,其餘引用類參考項目代碼
@Controller public class WelcomeController { @GetMapping("/") public String index(ModelMap model) { System.out.println("demo/jsp/index"); DemoUser user = new DemoUser(); user.setName("張三abc"); user.setPassword("password-zhangsan"); user.setBirthday(new Date()); user.setDesc("個人描述"); user.setId(1001L); model.addAttribute("user", user); model.addAttribute("currentTime", new Date()); return "welcome"; } }
略,參考代碼 webapps/WEW-INF/jsp/welcome.jsp
@SpringBootApplication public class JspApplication extends SpringBootServletInitializer { // war啓動 署到外部容器tomcat須要: // 1)要實現SpringBootServletInitializer // 2)覆蓋該方法 @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(JspApplication.class); } // jar啓動 public static void main(String[] args) { SpringApplication.run(JspApplication.class, args); } }
404
正常訪問
項目源碼 https://gitee.com/yysue/tutorials-java
5種啓動方式小結: