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种启动方式小结: