[关闭]
@javazjm 2017-10-30T02:28:29.000000Z 字数 1912 阅读 3889

SpringBoot系列学习四:Web支持之JSP

Springboot Web JSP


参考

1. 引入依赖

  1. <!--WEB支持-->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-web</artifactId>
  5. </dependency>
  6. <!--jsp页面使用jstl标签-->
  7. <dependency>
  8. <groupId>javax.servlet</groupId>
  9. <artifactId>jstl</artifactId>
  10. </dependency>
  11. <!--用于编译jsp-->
  12. <dependency>
  13. <groupId>org.apache.tomcat.embed</groupId>
  14. <artifactId>tomcat-embed-jasper</artifactId>
  15. <scope>provided</scope>
  16. </dependency>

2. application.properties配置

配置返回文件的路径以及类型,需手动新建文件夹webapp

  1. spring.mvc.view.prefix: /WEB-INF/jsp/
  2. spring.mvc.view.suffix: .jsp

3. 控制类

LearnResourceController

4. 页面jsp

index.jsp

5. 启动

外部的Tomcat服务器部署war包

打包成war,部署到外部tomcat中。

作用与在web.xml中配置负责初始化Spring应用上下文的监听器作用类似

方法一:

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. <!--移除对嵌入式Tomcat的依赖,这样打出的war包中,在lib目录下才不会包含Tomcat相关的jar包,否则将会出现启动错误。-->
  5. <exclusions>
  6. <exclusion>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter-tomcat</artifactId>
  9. </exclusion>
  10. </exclusions>
  11. </dependency>
  12. <!--tomcat-embed-jasper中scope必须是provided-->
  13. <dependency>
  14. <groupId>org.apache.tomcat.embed</groupId>
  15. <artifactId>tomcat-embed-jasper</artifactId>
  16. <scope>provided</scope>
  17. </dependency>

因为SpringBootServletInitializer需要依赖 javax.servlet,而tomcat-embed-jasper下面的tomcat-embed-core中就有这个javax.servlet,如果没用provided,最终打好的war里面会有servlet-api这个jar,这样就会跟tomcat本身的冲突了。


方法二:

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-tomcat</artifactId>
  4. <scope>provided</scope>
  5. </dependency>

这种方式的好处是,打包的war包同时适合java -jar命令启动以及部署到外部容器中。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注