Spring Boot整合模板引擎jsp
为什么80%的码农都做不了架构师?>>>
jsp也算是一种模板引擎吧。整合jsp前,先说一下运行SpringBoot项目的几种方式
1. 运行SpringBoot项目的几种方式
1.1 使用内嵌Tomcat运行项目
- 在IDE中右键运行启动类,也就是直接直接运行Appliction启动类中的main方法
- 使用
mvn spring-boot:run
- 打成jar包,使用
java -jar xxx.jar
- 打成war包,使用
java -jar xxx.war
1.2 内嵌Tomcat的属性配置
Tomcat的所有属性都在org.springframework.boot.autoconfigure.web.ServerProperties 配置类中做了定义 ,我们只需要在application.properties中配置覆盖默认配置。
常用配置
#配置程序端口,默认为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
1.3 使用外部Tomcat部署war包
将Spring Boot导出人war包直接放在Tomcat中部署,如果是使用的jsp作为模板引擎,也就是接下来做的。还需要做一些额外配置,具体配置继续看下面的操作。
1.4 总结
总结一下,运行一个Spring Boot项目至少有5种方法,下面就让jsp作为模板引擎的Spring Boot项目在这5种启动方式下正常运行吧。
2. 使用jsp作为模板引擎
项目结构如下:
2.1 引入依赖
pom.xml
<!--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就好,官方也推荐使用provided
2.2 设置打包方式
pom.xml
<!-- 打成jar包 -->
<packaging>jar</packaging>
<!-- 打成war包 -->
<packaging>war</packaging>
不同启动方式下的打包方式
- IDE中执行main方法 都可以
- 执行
mvn spring-boot:run
都可以 - 执行
java -jar xxx.jar
jar包 - 执行
java -jar xxx.war
war包 - 外部容器 war包
2.3 application.properties配置
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
2.4 编写控制器
编写一个测试用的控制器,其他引用类参考项目代码
@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";}
}
2.5 编写jsp页面
略,参考代码 webapps/WEW-INF/jsp/welcome.jsp
2.6 编写启动类
@SpringBootApplication
public class JspApplication extends SpringBootServletInitializer {// war启动 署到外部容器tomcat需要:// 1)要实现SpringBootServletInitializer// 2)覆盖该方法@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(JspApplication.class);}// jar启动public static void main(String[] args) {SpringApplication.run(JspApplication.class, args);}
}
2.7 验证是否起作用
404
正常访问
3. 小结
项目源码 https://gitee.com/yysue/tutorials-java
5种启动方式小结:
- 内嵌容器,intellij idea中执行启动类main方法
- 单模块项目时,可正常访问
- 多模块项目时,404,将jsp文件移到如下目录结构,也可正常访问 这个帖子子就描述了这个问题,给出的方案是部署到外部容器中
- 内嵌容器,java -jar xxx.jar
- 按如下目录配置执行,可正常访问
- 其他情况下执行,404
- 内嵌容器,java -jar xxx.war,可正常访问
- 内嵌容器,mvn spring-boot:run,可正常访问
- 外部容器,war包放到tomcat的webapps目录下,可正常访问
4. 参考
- Spring Boot干货系列:(五)开发Web应用之JSP篇
- spring-boot-sample-web-jsp - 官方demo
- 项目源码 https://gitee.com/yysue/tutorials-java
转载于:https://my.oschina.net/yysue/blog/1831101
Spring Boot整合模板引擎jsp相关推荐
- 软件架构-Spring boot集成模板引擎swagger2实现
上次说过springboot其实就是一个CI工具,如何体验出来CI的作用就是持续集成,它可以集成各种的工具,这里说说关于模板的集成引擎和Swagger. (一)Spring boot 集成模板引擎实现 ...
- Spring Boot 使用模板引擎
Spring Boot 推荐使用Thymeleaf.FreeMarker.Velocity.Groovy.Mustache等模板引擎.不建议使用JSP. Spring Boot 对以上几种引擎提供了良 ...
- Spring Boot 9-FreeMarker模板引擎
springboot使用freemarker模板引擎 首先引入freemarker <!-- freemarker依赖包 --> <dependency><groupId ...
- Spring Boot + Drools+模板引擎,优惠券的动态添加以及购物车结算
目录 二.项目文件结构以及数据库表结构 三.主要项目文件说明 1.pom文件 2.配置文件 3.实体类 4.添加优惠券业务实现 5.购物车结算业务实现 四.实现效果 1.添加优惠券 2.购物车结算 五 ...
- Spring Boot 整合流程引擎 Flowable,so easy
为啥想写 flowable 呢?原因很简单,因为最近在录的 tienchin 项目视频会用到,先写一篇文章和大家打打预防针,后面视频再细讲. 流程引擎,也算是一个比较常见的工具了,我们在日常的很多开发 ...
- Spring Boot 整合流程引擎 Flowable(附源码地址)
一.导入依赖 flowable依赖: <dependency><groupId>org.flowable</groupId><artifactId>fl ...
- java 模板引擎_极简 Spring Boot 整合 Thymeleaf 页面模板
点击"牧码小子"关注,和众多大牛一起成长! 关注后,后台回复 java ,领取松哥为你精心准备的技术干货! 虽然现在慢慢在流行前后端分离开发,但是据松哥所了解到的,还是有一些公司在 ...
- Spring Boot整合Thymeleaf模板引擎
转载自 Spring Boot整合Thymeleaf模板引擎 什么是Thymeleaf Thymeleaf是一款用于渲染XML.XHTML.HTML5内容的模板引擎.类似Velocity,FreeMa ...
- freemarker ftl模板_Spring Boot2 系列教程(十)Spring Boot 整合 Freemarker
今天来聊聊 Spring Boot 整合 Freemarker. Freemarker 简介 这是一个相当老牌的开源的免费的模版引擎.通过 Freemarker 模版,我们可以将数据渲染成 HTML ...
最新文章
- Mocha BSM应用管理——Lotus Domino监控与管理
- C++中struct和class关键字的区别
- MATLAB函数随笔之计算篇
- Python闭包与javascript闭包比较
- python * args和** kwargs的用法
- 由于Web服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面(http error 404.2、iis、0x800704ec)...
- 免费mp3音乐上传外链网站大全
- ucinet计算聚类系数大于1怎么办_ucinet软件解释对照
- 游戏框架(框架入门篇)
- 基于MATLAB的任意多边形最小外接圆计算
- 电脑小鸟壁纸怎么彻底删除?
- 2018.09.02【BZOJ2227】【ZJOI2011】看电影 (高精度)(组合数)
- std::set用法
- 第10章结构体01——结构体字节大小的计算
- 【阿里云IoT+YF3300】9.快速开发modbus设备驱动
- 支付宝企业付款PHP版本(转账到支付宝账户)
- JS中click事件
- svg中 path标签的d属性
- because an app is obscuring a permission request,无法开启USB调试
- 操作系统实验一:进程管理