第二章:SpringBoot与JSP间不可描述的秘密
springboot内部对jsp的支持并不是特别理想,而springboot推荐的视图是Thymeleaf,对于java开发人员来说还是大多数人员喜欢使用jsp,接下来我们来讲解下springboot是如何支持jsp的。
本章目标
整合springboot web项目支持jsp作为视图输出。
开始构建项目
我们使用IntelliJ IDEA 工具来构建项目,首先我们需要创建一个springboot项目,如下图1所示.
点击Next后输入一些项目的基本参数(包名,工程名,打包形式,maven形式构建等),如下图2所示:
点击Next后选择我们预先加入到工程的springboot内置的jar包组件,我们这里选择一个web组件。如下图3所示:
点击Next输入项目名称后店家Finish既可以完成了项目的构建。新构建的项目目录结构如下图4所示:
可以看到上图中比我们lessonOne项目中多出来了一个类文件,ServletInitlalizer,打开该类我们不难发现它继承了SpringBootServletInitializer这个父类,而SpringBootServletInitializer这个类是springboot提供的web程序初始化的入口,当我们使用外部容器(后期文章讲解使用外部tomcat如何运行项目)运行项目时会自动加载并且装配。
实现了SpringBootServletInitializer的子类需要重写一个configure方法,方法内自动根据LessontwoApplication.class的类型创建一个SpringApplicationBuilder交付给springboot框架来完成初始化运行配置。
配置springboot支持jsp
我们打开pom.xml(maven配置文件)可以看到我们之前构建项目时已经添加了web模块,而springboot给我们自动添加了spring-boot-starter-tomcat配置引入。springboot内部集成了tomcat组件,这里我们就不需要重复引入tomcat组件。
JSP maven
我们先来添加jsp的maven支持,如下图4所示:
Servlet maven
我们还需要引入jsp对servlet容器的支持,如下图5所示:
JSTL maven
除了上面的jsp,servlet支持以外,如果你还需要在jsp页面使用jstl标签来处理界面逻辑,那么需要引入jstl maven,如下图6所示:
初尝试运行项目
上面配置就是我们本章需要的全部配置,那么我们先来尝试运行下项目是否已经可以正常运行。这里项目运行也可以使用IntelliJ IDEA工具提供的组件来完成,如下图7所示,:
(注意:如果你已经开启了另外一个spring boot项目请先关闭,因为springboot内置的端口号都是8080这样会引起冲突)
点击绿色三角号即可开始运行项目,我们先来尝试下点击后看看控制台输入的日志信息。可以看到项目已经正常运行了,右上角的绿色三角号也变成了重启的按钮,如下图8所示:
项目运行如图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所示:
创建index.jsp
我们在webapps/jsp目录下创建一个index.jsp用于测试我们的配置是否已经支持了jsp,新建jsp文件如下图12所示:
创建IndexController
上面工作我们已经完成了jsp的所有配置,那么接下来我们需要配置springmvc的控制器,我们新建indexController如下图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的整合:
总结
上述便是我们本章的全部内容,本章主要是讲解了springboot集成jsp作为渲染视图,结合springmvc来转发请求。
本章内容已经上传到码云:
SpringBoot配套源码地址:gitee.com/hengboy/spr…
SpringCloud配套源码地址:gitee.com/hengboy/spr…
SpringBoot相关系列文章请访问:目录:SpringBoot学习目录
QueryDSL相关系列文章请访问:QueryDSL通用查询框架学习目录
SpringDataJPA相关系列文章请访问:目录:SpringDataJPA学习目录
SpringBoot相关文章请访问:目录:SpringBoot学习目录,感谢阅读!
欢迎加入QQ技术交流群,共同进步。
第二章:SpringBoot与JSP间不可描述的秘密相关推荐
- Python计算机视觉:第二章 图像局部描述符
第二章 图像局部描述符 2.1 Harris角点检测 2.1.2 在图像间寻找对应点 2.2 sift描述子 2.2.1 兴趣点 2.2.2 描述子 2.2.3 检测感兴趣点 2.2.4 描述子匹配 ...
- 【操作系统】 第二章 进程的描述与控制
第二章 进程的描述与控制 2.1 什么是进程 程序代码+相关数据+程序控制块PCB 当处理器开始执行一个程序的代码时,称这个执行的实体为进程 2.1.1 进程和进程控制块PCB PCB(Process ...
- 进程的描述与控制 操作系统第二章知识点归纳总结
系列文章 第一章 操作系统概述 第二章 进程调度 第二章 进程的描述与控制 2.1 什么是进程 程序代码+相关数据+程序控制块PCB 当处理器开始执行一个程序的代码时,称这个执行的实体为进程 2.1. ...
- 【操作系统】第二章--进程的描述与控制--笔记与理解(2)
笔记理解之后可以进行深入解释→[操作系统]第二章–进程的描述与控制–深入与解释(2) 文章目录 第二章--进程的描述与控制--笔记与理解(2) 经典进程的同步问题 生产者-消费者问题 读者-写者问题 ...
- 操作系统 第二章 进程的描述与控制(4)进程同步(重点)
计算机操作系统 读书笔记 第二章 进程的描述与控制 进程同步(重点) 计算机操作系统 前言 进程同步 一.进程同步的基本概念 1.1 两种形式的制约关系 1.2 临界资源(Critical Resou ...
- 操作系统第二章进程的描述与控制
第二章进程的描述与控制 前驱图和程序执行 程序并发执行 程序的并发执行 程序并发执行时的特征 间断性 失去封闭性 不可再现性 进程的描述 进程的定义 进程是程序的一次执行 进程是一个程序及其数据在处理 ...
- 考研OR工作----计算机操作系统简答题及疑难知识点总结(第二章 进程的描述与控制)
计算机操作系统从第二章开始内容会变得异常多,还是希望能够帮助到大家,在这一章阿婆主还会把书上的典型的PV操作题给打上来,给大家用作参考,如果有问题的地方,还请大家在文章下方留言,我好更正,或者你们有更 ...
- 【操作系统】第二章-进程的描述与控制
第二章.进程的描述与控制 前言 在传统的操作系统中,为了提高资源利用率和系统吞吐量,通常采用多道程序技术,将多个程序同时装入内存,并使之并发运行,传统意义上的程序不再能独立运行.此时,作为资源分配和独 ...
- 描述java源程序构成_Java第二章Java程序设计
<Java第二章Java程序设计>由会员分享,可在线阅读,更多相关<Java第二章Java程序设计(140页珍藏版)>请在人人文库网上搜索. 1.第2章 Java基本语法,2. ...
最新文章
- 增大模型依然有用,DeepMind用2800亿参数的Gopher,测试语言系统极限
- 选择NLP供应商之前需要提出的一些关键问题
- 不会真有人国庆都不打王者吧?
- css实现左侧宽度自适应,右侧固定宽度
- Linux设备驱动开发-linux驱动中的非阻塞访问方式
- 十二月份找工作好找吗_淘宝美工前景怎么样?好找工作吗?
- vue笔记(四)注册组件,路由,vuex
- js rem 单位适配(手机、平板、PC)?
- svg 地图_找地图素材?有这个网站就够了!
- Mysql 如何通过binlog日志恢复数据
- CUDA算法:MS-queue算法相关
- php 修改文件的权限_php修改文件权限
- Nginx面试题及基础
- 软件工程课程实践- 项目开发计划
- matlab的三维绘图函数,MATLAB中的三维绘图函数总结
- 在 Linux 下执行 bin 文件
- 【C语言学习】————操作符、关键字
- 2011年09月04日
- cf 667div3
- android 区分平板,加量不加价!台电首款基于Android 11的平板终上市