文章目录
SpringBoot整合JSP及打包
1.代码地址
https://gitee.com/zhouchaomeng/spring-boot-jsp-demo.git
2.开发环境
Java版本:1.8
开发工具:idea 2021.2.2
打包工具:maven
3.初始化SpringBoot项目
使用Spring Initializr
工具新建项目,项目名为:spring-boot-jsp-demo
,过程如下:
初始化后,根据需要去除不需要的目录和文件后,项目结构如下图(根据自己的需求调整):
目前的SpringBoot项目可以正式启动了,可根据自己的需求调整项目内容。
4.整合JSP
4.1 引入JSP需要的依赖
在项目的pom.xml
文件的dependencies
标签下,加入以下依赖:
<!-- 添加Servlet依赖模块 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- 添加JSTL标签库依赖模块 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!--添加Tomcat依赖模块.-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- 使用JSP引擎,SpringBoot内置Tomcat没有此依赖 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
4.2 构建webapp目录
在项目中的src/main/
目录下创建名为webapp
的目录,该目录与java
和resource
同级;并在webapp
目录下创建WEB-INF
目录,在WEB-INF
创建page
目录,完整的目录结构见:目录结构
4.3 创建web.xml文件
在WEB-INF
目录下创建web.xml
文件,文件内容如下:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
</web-app>
4.4 向application.properties文件添加配置
向application.properties
文件添加配置,配置内容如下:
#Spring boot视图配置
spring.mvc.view.prefix=/WEB-INF/page/
spring.mvc.view.suffix=.jsp
4.5 创建jsp页面
在webapp/WEB-INF/page
目录中创建index.jsp
文件,文件内容如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>首页</title>
<meta name="author" content="zhouchaomeng">
</head>
<body>
<h3>使用JSP表达式:</h3>
用户姓名:<%= request.getAttribute("name") %><br/>
博客地址:<%= request.getAttribute("blog") %><br/>
备注信息:<%= request.getAttribute("remark") %><br/>
<h3>使用EL表达式语言:</h3>
用户姓名:${requestScope.name}<br/>
博客地址:${requestScope.blog}<br/>
备注信息:${requestScope.remark}<br/>
<h3>使用JSTL标签库:</h3>
用户姓名:<c:out value="${requestScope.name}" /><br/>
博客地址:<c:out value="${requestScope.blog}" /><br/>
备注信息:<c:out value="${requestScope.remark}" /><br/>
</body>
</html>
4.6 创建Controller控制器
在com.personal.zhouchaomeng
包下创建controller
包,并在controller
包下创建IndexController
类,该类内容如下:
package com.personal.zhouchaomeng.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
/**
* 首页控制器
* @author zhouchaomeng
**/
@Controller
public class IndexController{
/**
* 首页
*/
@RequestMapping("/index")
public String index(HttpServletRequest request){
//将用户信息保存到Request对象中
request.setAttribute("name","SpringBootJspDemo");
request.setAttribute("blog","https://blog.csdn.net/m0_37939639/article/details/128652485");
request.setAttribute("remark","您好,欢迎访问SpringBootJspDemo");
//返回首页
return "index";
}
}
4.7 运行测试
在idea中运行SpringBoot项目,运行成功后,在浏览器中输入地址:http://127.0.0.1:8080/index
5.打包
在打包的时候,我们需要把jsp
文件打到jar包中,我们应该怎么做呢?请接着往下看。
5.1 修改pom.xml文件
修改pom.xml
文件中的build
标签,修改后如下:
<build>
<plugins>
<!-- 一定要注意mvn的插件一定是1.4.2.RELEASE,否则jsp访问不到 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.2.RELEASE</version>
</plugin>
</plugins>
<resources>
<!-- 打包时将jsp文件拷贝到META-INF目录下-->
<resource>
<!-- 指定resources插件处理哪个目录下的资源文件 -->
<directory>src/main/webapp</directory>
<!-- 注意必须要放在此目录下才能被访问到 -->
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/**</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/**</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
5.2 把项目打成jar
包
使用命令mvn clean package
或者使用idea自带package
工具打包,该工具一般在idea右侧工具栏,详细位置如下:
打包好之后,jar
包位于项目的target
目录下,进入该目录后,打开控制台,使用命令 java -jar spring-boot-jsp-demo-0.0.1-SNAPSHOT.jar
启动该jar
包,启动成功后,调用:http://127.0.0.1:8080/index测试,能够正常访问表示打包成功,否则,失败。
附录:完整项目结构
引用
整合jsp:https://blog.csdn.net/pan_junbiao/article/details/105600172
打包:https://blog.csdn.net/bbxylqf126com/article/details/121069449