Spring Boot 最佳实践(二)集成Jsp与生产环境部署

提起Java不得不说的一个开发场景就是Web开发,也是Java最热门的开发场景之一,说到Web开发绕不开的一个技术就是JSP,因为目前市面上仍有很多的公司在使用JSP,所以本文就来介绍一下Spring Boot 怎么集成JSP开发,以及生产环境的详细部署方法。

二、集成JSP 开发环境

Spring Boot 2.0.4 RELEASE

Tomcat 9.0.10

IDEA(Intellij IDEA简称,下文统一使用)2018.2

Windows 10

JSP集成步骤

创建JSP目录

application.properties配置Jsp信息

pom.xml添加依赖组件

编写Spring MVC代码

运行程序

具体集成方法如下:

1.创建JSP目录

在src/main目录下创建目录webapp/WEB-INF/jsp用于存放jsp页面,如下图:

Spring Boot 最佳实践(二)集成Jsp与生产环境部署

2.application.properties配置Jsp信息

application.properties为全局配置文件,里面可以设置很多信息,比如设置日志、设置缓存、设置Spring、Spring SESSION等信息,我们本文只需要设置JSP的目录文件,以及文件后缀,代码如下:

spring.mvc.view.prefix=http://www.likecs.com/WEB-INF/jsp spring.mvc.view.suffix=.jsp

更多application.properties设置信息,查看官方文档:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#common-application-properties

3.pom.xml添加JSP配置

在pom.xml需要添加3个组件:

spring-boot-starter-web (用于运行web项目)

jstl (JavaServer Pages Standard Tag Library,JSP标准标签库,用于程序中解析JSP)

tomcat-embed-jasper (内置tocat对Jsp支持的依赖,用于编译Jsp)

具体代码如下:

<!--web支持--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--JavaServer Pages Standard Tag Library,JSP标准标签库--> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!--内置tocat对Jsp支持的依赖,用于编译Jsp--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency>

注意:tomcat-embed-jasper的scope(作用域)值为provided,表示打包的时候不用打包进去,其他设备会提供,如果打包进去会和外部Tomcat提供的jar冲突,导致项目启动失败。

scope(作用域)值列表代表含义解释如下:

compile:默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去

test:依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit

runtime:表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过了编译而已。例如JDBC驱动,适用运行和测试阶段

provided:打包不会包含进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是打包阶段做了exclude操作

system:从参与度来说,和provided相同,不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径

4.编写Spring MVC代码

经过前3步的配置,项目配置部分已经完成的差不多了,接下来就是代码的编写了,代码的编写和Spring MVC一样,分为两部分Java类编写与标识注解,JSP模板创建与编写。为了更好的演示Spring Boot 的功能,我们会尽可能的简化业务逻辑,在这个示例中我们创建一个Cat类,设置标签hi="Hello Cat",在页面输出标签即可。

a).Cat.java代码 package com.hellospringboot.hellospringboot; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping("/cat") //创建路由规则 public class Cat { /** * 默认路由方法 * * @return */ @RequestMapping("") public ModelAndView index() { ModelAndView modelAndView = new ModelAndView("/index"); //设置对应JSP的模板文件 modelAndView.addObject("hi", "Hello,Cat"); //设置${hi}标签的值为Hello,Cat return modelAndView; } }

Spring MVC注解解读

@Controller 标识在一个类上,标识的类就是Spring MVC的控制器类,分发处理器会扫描使用了该注解的类是否使用了@RequestMapping 注解,@Controller只是定义了一个控制器类,只用使用了@RequestMapping 注解,才是真正处理请求的处理器;

@RequestMapping 标识在类或者方法上,用来处理请求地址的注解,一共有6个属性:

value 对应请求的实际地址

method 请求的类型:get、post、put、delete 等,ex:@RequestMapping(value = "/test", method = RequestMethod.PUT)

consumes 指定请求上的内容类型,比如application/json、text/html等

produces 指定返回的数据类型,类型必须是Request Headers中accept包含的类型

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpswpx.html