SpringBoot2.x系列教程(二十三)SpringBoot集成Jsp

JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。从开始学习Java Web应用,第一个学习的就是JSP和Servlet,我们就不过多介绍。直接进入Spring Boot对其集成使用的部分。

在使用之前,首先明确一下,SpringBoot使用内嵌的servlet容器,对jsp的支持不是很好,而且官方也不建议使用jsp。就本人而言当使用SpringBoot之后,基本上也放弃了jsp的使用。

但大家可能由于项目或历史原因,还在使用jsp的话,这篇文章给大家讲解一下如何集成于SpringBoot当中。

创建项目

像通常一样创建SpringBoot项目,勾选web和Lombok。由于要存放jsp的文件,因此需要在main目录下新建webapp/WEB-INFjsp。目录结构如下:

├── pom.xml
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── secbro2
│   │   │           ├── SpringbootJspApplication.java
│   │   │           └── controller
│   │   │               └── HelloWorldController.java
│   │   ├── resources
│   │   │   ├── application.properties
│   │   │   ├── static
│   │   │   └── templates
│   │   └── webapp
│   │       └── WEB-INF
│   │           └── jsp
│   │               └── hello.jsp

添加依赖

还需添加支持jstl和内置tomcat容器的jsp依赖模块。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!--引入jstl-->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>
<!--内嵌的tomcat支持模块-->
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>

配置文件配置

application.properties中指定视图文件的前缀和后缀。

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

编写Controller

通过简单示例,将请求参数返回页面。

@Controller
public class HelloWorldController {

	@RequestMapping("/hello")
	public String hello(String name, Model model) {
		model.addAttribute("name", name);
		return "hello";
	}

}

JSP页面

JSP页面简单展示效果。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello ${name}!</title>
</head>
<body>
<h2 class="hello-title">Hello ${name}!</h2>
</body>
</html>

浏览器访问

通过浏览器访问:http://localhost:8080/hello?name=Tom

页面显示:

Hello Tom!

至此完成最简单的集成。

但是在真正的使用过程中会发现很多问题,比如最常见的运行 java -jar xx.jar时访问页面404的问题。关于该问题的几种解决方案,会在下篇文章中进行详细的解析。

发布了511 篇原创文章 · 获赞 4981 · 访问量 323万+

猜你喜欢

转载自blog.csdn.net/wo541075754/article/details/103911123