威尼斯www.9778.com-威尼斯正版官方网站

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

日期:2020-01-06编辑作者:Web前端技术
@Controllerpublic class JspController { @RequestMapping("jspindex") public String index() { return "index"; }}

JSTL maven

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

图6

本章目标

基于SpringBoot项目设计Maven管理的多模块项目,并且便宜模块对应生成Jar文件用于系统。

!-- SpringBoot外部tomcat支持 -- dependency groupIdorg.apache.tomcat.embed/groupId artifactIdtomcat-embed-jasper/artifactId /dependency

总结

上述便是我们本章的全部内容,本章主要是讲解了springboot集成jsp作为渲染视图,结合springmvc来转发请求。

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

SpringBoot配套源码地址:https://gitee.com/hengboy/spring-boot-chapter

SpringCloud配套源码地址:https://gitee.com/hengboy/spring-cloud-chapter

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

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

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

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

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

QQ技术交流群

运行测试

工具右上角选择tomcat8服务器,点击运行按钮后查看控制台输出的日志,如果没有异常恭喜你已经成功的启动了多模块项目,我们打开浏览器输入网址:

图片 1

图15

可以看到我们成功的输出了内容,看着比较简单的一句话的输出,我们使用了三个项目模块来完成,正因为如此我们的模块化项目才能最大化的被引用并且使用。

2.在application.properties创建以下配置

Servlet maven

我们还需要引入jsp对servlet容器的支持,如下图5所示:

图5

在企业级的项目开发中,系统过于庞大时对应的开发人员的数量也会陆续的增加,正因为如此也会给开发人员业务逻辑之间对接增加一些不必要的困难,如果是开发人员过多时,项目提交代码以及逻辑交互起来依然会出现很多问题,并且如果多个项目公用同一个功能那么分离起来也比较麻烦。针对这个情况我们可以采用多种的形式来处理,如:功能模块单独项目开发,功能模块分组,Maven项目Module形式。我们接下来就详细的讲解下有关Maven的Module的模式。

1)引入Springbootweb核心组件

初尝试运行项目

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

图7

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

图8

项目运行如图9所示:

图9

可以看到项目已经正常运行,但是我们现在还没有配置,创建JSP文件,我们接下来开始配置,创建JSP。

创建JSP文件

在创建user_index.jsp之前我们需要在application.properties配置文件内添加对应的路径配置,如下图11所示:

图片 2

图11

根据上面的配置所示我们创建的user_index.jsp的所处位置为:/webapp/WEB-INF/jsp/user_index.jsp,创建user_index.jsp文件内容如下图12所示:

图片 3

图12

到目前为止我们的项目代码已经编写完成,下面我们来使用外部Tomcat的形式运行SpringBoot项目,我们需要添加项目对本地Tomcat服务器的支持。

不要把jsp页面存放在Resources目录下,resources目录是给springboot打jar包读取配置文件用的,产生的jsp会被别人访问到,这是存放资源目录的文件

本章目标

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

创建实体Module(bean)

创建Module的方式与创建项目有点出入,我们点击项目名称后右键->New->Module->Maven,界面如下图2所示:

图片 4

图2

我在ArtifactId栏目填写了bean,证明这个项目是Chapter22组内的一个子项目,点击Next后创建Module即可,Module创建完成后的展现形式如下图3所示:

图片 5

图3

我们可以看到之前创建的介质Maven项目还存在src目录,这个我们删掉就可以了,对于我们本章项目来说没有存在的意义。可以看到我们创建的模块的pom.xml配置文件内对应添加了parent节点项目是我们的介质项目,这也是Maven模块项目的好处,我们可以把共同引入的内容在介质项目的pom.xml配置文件内都引入,那么子项目也就会有相对应的依赖。下面我们在bean模块项目内添加一个用户的实体,如下图4所示:

图片 6

图4

我们的实体创建完成后,bean项目就可以先放一放。

Pom文件引入以下依赖

创建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文件。

创建页面模块(pager)

我们在user模块内配置了跳转user_index.jsp页面,所以我们需要对应添加一个专门存放页面的模块,创建web模块项目需要注意我们不选择Maven项目创建,而是选择SpringBoot项目类型创建,如下图8所示:

图片 7

图8

创建完成后项目结构如下图9所示:

图片 8

图9

可以看到我们创建pager模块的maven配置文件pom.xml内对应parent节点的内容并不是我们chapter22项目,并且我们chapter22配置文件对应的内容都已经配置,这里不用重复引用,所以我们这里需要手动修改下,改动后内容如下图10所示:

图片 9

图10

我们pager模块项目只需要引入user模块项目即可,如果你需要bean模块项目引入也一并添加dependency节点配置即可。

3.后台代码

配置视图

构建项目

我们采用IntelliJ IDEA工具来创建一个Maven项目,项目的pom.xml要添加对应SpringBoot的配置,因为Maven多模块项目内的模块并不能独立的存在,必须有一个介质来包含,项目结构如下图1所示:

图片 10

图1

可以看到我们创建的Maven项目结构如上图1所示,pom.xml内我们对应的添加了对SpringBoot的支持,因为我们需要使用SpringBoot来作为项目基本框架,并在pom.xml配置文件引入了Web模块的支持,所以介质项目内的Module都会用于Web依赖。

我们在介质Maven项目内创建三个Module,分别为:bean(所有实体类Module)、user(用户逻辑Module)、pager(页面Module)。

dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-tomcat/artifactId scopeprovided/scope/dependency

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

配置本地Tomcat服务器

点击Run->Edit Configurations->"+"->Tomcat Server->Local,界面如下图13所示:

图片 11

图13

下面我们需要配置本地Tomcat的目录为止,如下图14所示:

图片 12

图14

目录配置完成后,需要将pager项目添加到Tomcat内,如下图15所示:

图片 13

图14

配置完成后点击Apply即可完成本地tomcat的配置,直接运行Tomcat就可以了。

spring.mvc.view.prefix=/WEB-INF/jsp/spring.mvc.view.suffix=.jsp

配置springboot支持jsp

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

总结

以上内容就是本章的全部讲解内容,本章主要讲解了SpringBoot项目架构下我们如何配置Maven多模块项目并且部署运行测试,下一章我会讲解我们如果打包运行War项目文件。

本章代码已经上传到码云,

SpringBoot配套源码地址:https://gitee.com/hengboy/spring-boot-chapter

SpringCloud配套源码地址:https://gitee.com/hengboy/spring-cloud-chapter

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

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

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

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

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

图片 14

QQ技术交流群

3)SpringBoot外部tomcat支持(必须)

基本配置

如果是使用过eclipse工具的人肯定知道jsp文件之前是在/webapp/WEB-INF/jsp目录下,那么我们也沿用eclipse的风格。

  1. 在main目录下创建webapp文件夹
  2. 在webapp下创建jsp文件夹如下图10所示:

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

图11

图11

创建用户Module(user)

接下来我们再来编写user项目模块,流程还是一样,我们来创建一个user的Module,项目结构如下图5所示:

图片 15

图5

我们user模块项目内需要使用bean模块项目内创建的用户实体,我们就可以在user模块项目内的pom.xml配置文件内添加对应的引入,如下图6所示:

图片 16

图6

下面我们来测试user模块项目添加了依赖后是否可以使用UserBean实体,我们在user模块项目内添加一个UserController并添加一些逻辑处理,如下图7所示:

图片 17

图7

上图7内我们添加了一个index方法,当我们在浏览器访问/user/index地址时并且将传入的UserBean内的name属性值传入到user_index.jsp页面内,既然UserBean可以在user模块项目中使用,也就证明了我们的引入是没有问题的。

注意,创建SpringBoot整合JSP,一定要为war类型,否则会找不到页面

重启项目

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

图14

2)引入springBoot对tomcat的支持

JSP maven

我们先来添加jsp的maven支持,如下图4所示:

图4

1.创建War类型的springboot项目

开始构建项目

我们使用IntelliJ IDEA 工具来构建项目,首先我们需要创建一个springboot项目,如下图1所示.

图1

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

图2

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

图3

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

图3

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

dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId/dependency

创建index.jsp

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

图12

本文由威尼斯www.9778.com发布于Web前端技术,转载请注明出处:第二章:SpringBoot与JSP间不可描述的秘密

关键词:

Unity5.5打包报错问题修复

当使用文本编辑的时候,首先会选用textarea,不过,这一个里面无法投入另外标签,也正是不能够富文本化。于是能够...

详细>>

通过Iterator控制Promise.all的并发数威尼斯www.9778.com

背景 1、万恶的回调 对前端工程师来说,异步回调是再熟悉不过了,浏览器中的各种交互逻辑都是通过事件回调实现...

详细>>

JavaScript 函数表达式(一)递归

定义: 递归函数是在一个函数通过名字调用自身的情况下构成的。 1、什么是递归函数? 递归函数就是在函数体内调...

详细>>

如果他们在未来的几年内技术水平没有突破性的提升,或者缺乏

友情提示:本人经历有限,没进过大厂,没参与过开源社区维护,就是个写了几年业务代码的底层码农。一切观点来...

详细>>