第二章:SpringBoot与JSP间不可描述的秘密

springboot内部对jsp的支持并非特别理想,而springboot推荐的视图是Thymeleaf,对于java开发人员来讲仍是大多数人员喜欢使用jsp,接下来咱们来说解下springboot是如何支持jsp的。java

本章目标

整合springboot web项目支持jsp做为视图输出。git

开始构建项目

咱们使用IntelliJ IDEA 工具来构建项目,首先咱们须要建立一个springboot项目,以下图1所示.web


图1

点击Next后输入一些项目的基本参数(包名,工程名,打包形式,maven形式构建等),以下图2所示:spring


图2

点击Next后选择咱们预先加入到工程的springboot内置的jar包组件,咱们这里选择一个web组件。以下图3所示:tomcat


图3

点击Next输入项目名称后店家Finish既能够完成了项目的构建。新构建的项目目录结构以下图4所示:springboot


图3

能够看到上图中比咱们lessonOne项目中多出来了一个类文件,ServletInitlalizer,打开该类咱们不难发现它继承了SpringBootServletInitializer这个父类,而SpringBootServletInitializer这个类是springboot提供的web程序初始化的入口,当咱们使用外部容器(后期文章讲解使用外部tomcat如何运行项目)运行项目时会自动加载而且装配。
实现了SpringBootServletInitializer的子类须要重写一个configure方法,方法内自动根据LessontwoApplication.class的类型建立一个SpringApplicationBuilder交付给springboot框架来完成初始化运行配置。mvc

配置springboot支持jsp

咱们打开pom.xml(maven配置文件)能够看到咱们以前构建项目时已经添加了web模块,而springboot给咱们自动添加了spring-boot-starter-tomcat配置引入。springboot内部集成了tomcat组件,这里咱们就不须要重复引入tomcat组件。app

JSP maven

咱们先来添加jsp的maven支持,以下图4所示:框架


图4

Servlet maven

咱们还须要引入jsp对servlet容器的支持,以下图5所示:less


图5

JSTL maven

除了上面的jsp,servlet支持之外,若是你还须要在jsp页面使用jstl标签来处理界面逻辑,那么须要引入jstl maven,以下图6所示:


图6

初尝试运行项目

上面配置就是咱们本章须要的所有配置,那么咱们先来尝试运行下项目是否已经能够正常运行。这里项目运行也可使用IntelliJ IDEA工具提供的组件来完成,以下图7所示,:
(注意:若是你已经开启了另一个spring boot项目请先关闭,由于springboot内置的端口号都是8080这样会引发冲突)


图7

点击绿色三角号便可开始运行项目,咱们先来尝试下点击后看看控制台输入的日志信息。能够看到项目已经正常运行了,右上角的绿色三角号也变成了重启的按钮,以下图8所示:


图8

项目运行如图9所示:


图9

能够看到项目已经正常运行,可是咱们如今尚未配置,建立JSP文件,咱们接下来开始配置,建立JSP。

配置视图

基本配置

若是是使用过eclipse工具的人确定知道jsp文件以前是在/webapp/WEB-INF/jsp目录下,那么咱们也沿用eclipse的风格。
1. 在main目录下建立webapp文件夹
2. 在webapp下建立jsp文件夹以下图10所示:

3. 修改application.properties文件让springmvc支持视图的跳转目录指向为/main/webapp/jsp,配置以下图11所示:


图11

图11

建立index.jsp

咱们在webapps/jsp目录下建立一个index.jsp用于测试咱们的配置是否已经支持了jsp,新建jsp文件以下图12所示:


图12

建立IndexController

上面工做咱们已经完成了jsp的全部配置,那么接下来咱们须要配置springmvc的控制器,咱们新建indexController以下图13所示:


图13

能够看到上图咱们在IndexController配置文件内添加了index()方法配置了@RequestMapping注解来描述index()方法是一个能够被springmvc管理的请求视图。咱们的index()方法返回值这里是"index"。
为何咱们返回"index",还记得上述步骤中配置的application.properties文件的springmvc请求前缀以及后缀,那么当咱们访问/index时springmvc就会去找/webapp/WEB-INF/jsp/index.jsp文件。

重启项目

重启项目咱们尝试访问127.0.0.1:8080/index,能够看到以下图14的效果,证实已经完成了springboot与jsp的整合:


图14

总结

上述即是咱们本章的所有内容,本章主要是讲解了springboot集成jsp做为渲染视图,结合springmvc来转发请求。

本章内容已经上传到码云:

SpringBoot配套源码地址:gitee.com/hengboy/spr…

SpringCloud配套源码地址:gitee.com/hengboy/spr…

SpringBoot相关系列文章请访问:目录:SpringBoot学习目录

QueryDSL相关系列文章请访问:QueryDSL通用查询框架学习目录

SpringDataJPA相关系列文章请访问:目录:SpringDataJPA学习目录

SpringBoot相关文章请访问:目录:SpringBoot学习目录,感谢阅读!

欢迎加入QQ技术交流群,共同进步。


QQ技术交流群
相关文章
相关标签/搜索