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

params 过滤请求,只有请求中包含某个参数,才会执行,比如@RequestMapping(value = "",params = "flag"),只有参数中包含flag才会执行,不然不能访问,:8080/cat?true=flag这个地址是访问不到的,正确的地址是:8080/cat?flag=true才可以正常访问

headers 和params类似,只有请求headers里面包含某个key才可以访问方法

b).JSP端代码 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1> ${hi} </h1> </body> </html>

这个jsp只做了一件事,把java类里面的${hi}标签的值显示出来。

5.运行程序

到此为止,如果您使用的是IDEA开发工具,那么现在就可以运行调试程序了,直接运行Index.jsp或者启动文件,或者启动文件(Application.java)即可,然后在浏览器输入::8080/cat 即可查看。

三、生产环境部署 部署步骤

下载安装Tomcat

入口类继承SpringBootServletInitializer重写configure方法

配置pom.xml

IDEA生成war文件

配置Tomcat运行项目

1.下载安装Tomcat

下载地址:https://tomcat.apache.org/download-90.cgi

如下图所示:

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

Windows下载:64-bit Windows zip | Linux下载:tar.gz

注意:如果是Windows版下载的免安装版如果放到C盘的话,注意给文件夹分配足够的权限,不然启动之后访问页面显示400或者505类似的问题。

2.入口类继承SpringBootServletInitializer重写configure方法

如果要进行生产环境部署,需要单独配置一下Spring Boot 的入口类,需要继承SpringBootServletInitializer类,重写configure方法,因为默认情况外部Tomcat不能读取到Spring Boot 入口类的main方法启动程序加载,使用需要继承,代码如下:

package com.hellospringboot.hellospringboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; /** * 启动类,程序入口 */ @SpringBootApplication public class HelloSpringBootApplication extends SpringBootServletInitializer{ /** * 重写configure方法,加载启动类 * @param application * @return */ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(HelloSpringBootApplication.class); } /** * Spring Boot 默认main方法 * @param args */ public static void main(String[] args) { SpringApplication.run(HelloSpringBootApplication.class, args); } } 3.配置pom.xml

需要配置一下pom.xml,排除一下内置tomcat的jar包,防止打包之后与外面Tomcat jar 包冲突,导致项目启动失败,配置如下:

<!--排除内置tomcat jar包--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>

主要的代码是provided,设置打包不会包含进去,由其他设施提供。

4.IDEA生成war文件 步骤一:修改生成jar为war格式

找到:

jar

修改为:

war

为什么需要修改jar包格式为war,因为如果打包为jar包的时候,不会包含JSP文件,所以访问的时候回404,而打包为war的时候回包含JSP文件,所以需要把打包格式修改为war.

jar和war的区别?

jar(java application archive)java应用程序库,通常为开发引用的通用类

war(web application archive)web应用程序

所以从jar和war的区别来看,网页程序打包成war格式也是很合适的。

如果需要修改生成文件的文件名称,可以设置build下的finalName属性,代码如下:

<build> <finalName>name</finalName> </build> 步骤二:使用IDEA生成war包

选择菜单栏Build => Build Artifacts.. => 点击Rebuild,即可生成war包,如图:

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

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

生成完之后,在项目的target目录下找到生成war文件,如下图:

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

5.配置Tomcat运行项目 步骤一:把war文件复制到tomcat的webapps目录下 步骤二:配置conf/server.xml

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

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