前言

JavaServer Pages(JSP)技术使Web开发人员和设计人员能够快速开发和轻松维护利用现有业务系统的信息丰富的动态Web页面。

作为Java技术系列的一部分,JSP技术可以快速开发独立于平台的基于Web的应用程序。JSP技术将用户界面与内容生成分开,使设计人员能够在不改变底层动态内容的情况下更改整体页面布局。

对开发人员的好处

如果您是熟悉HTML的网页开发人员或设计人员,则可以:

  • 使用JSP技术而不必学习Java语言:您可以使用JSP技术而无需学习如何编写Java scriplet。尽管不再需要scriptlet来生成动态内容,但仍然支持它们以提供向后兼容性。

  • 扩展JSP语言:Java标记库开发人员和设计人员可以使用“简单标记处理程序”扩展JSP语言,该标记处理程序使用新的,更简单,更清晰的标记扩展API。这刺激了可用的可插拔,可重用标记库的数量不断增加,从而减少了编写功能强大的Web应用程序所需的代码量。

  • 轻松编写和维护页面: JavaServer Pages标准标记库(JSTL)表达式语言现已集成到JSP技术中,并已升级为支持功能。现在可以使用表达式语言而不是scriptlet表达式。

——以上内容摘自自 Oracle 关于JSP的介绍 链接地址:https://www.oracle.com/technetwork/java/overview-138580.html

虽然现在 JSP基本已经淘汰,但是很多公司的老的项目还是在用 JSP 作为页面,通过阅读该篇博客,你将了解到如何在SpringBoot 中快速使用 JSP 简单操作。

SpringBoot 使用 JSP 操作步骤

第一步在 pom.xml 添加支持 JSP 视图的依赖,具体代码如下:

<!-- 非必选 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- Provided 编译和测试的时候使用-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- 对jsp的支持的依赖 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>

第二步在 application.properties 配置文件中添加 JSP 相关配置信息,具体配置信息如下:

server.port=8080
server.servlet.context-path=/sbe spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

第三步创建 src/main/webapp 目录并在该目录创建 JSP。

添加JSP文件的路径位置如下图所示:

JSP 文件内容如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
${welcome}
</body>
</html>

第四步创建访问 JSP 页面的 Controller。

package cn.lijunkui.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
@RequestMapping()
public class JspController { @RequestMapping("/helloworld")
public String toJps(Model model) {
model.addAttribute("welcome", "不建议使用jsp");
return "welcome";
} }

测试

在游览器输入访问 JSP 页面的 Controller 的 URL:http://localhost:8080/sbe/helloworld 进行测试,测试结果如下:

小结

SpringBoot 使用 JSP 步骤如下:

  1. 引入 spring-boot-starter-tomcat 依赖 并且 scopeprovided
  2. 在 application.properties 配置文件中将视图设置成jsp
  3. 创建src/main/webapp 目录下创建 WEB-INF 目录并在该目录下创建 JSP 文件
  4. 创建访问 JSP 的 Controller

代码示例

具体代码示例请查看我的 GitHub 仓库 springbootexamples 中模块工程名: spring-boot-2.x-jsp 进行查看

Github:https://github.com/zhuoqianmingyue/springbootexamples

如果您对这些感兴趣,欢迎 star、或点赞给予支持!转发请标明出处!

参考文献

https://github.com/spring-projects/spring-boot/tree/v2.0.6.RELEASE/spring-boot-samples/spring-boot-sample-web-jsp

玩转 SpringBoot 2 快速整合 | JSP 篇的更多相关文章

  1. 玩转 SpringBoot 2 快速整合 | FreeMarker篇

    FreeMarker 介绍 Apache FreeMarker™是一个模板引擎:一个Java库,用于根据模板和更改数据生成文本输出(HTML网页,电子邮件,配置文件,源代码等).模板是用FreeMar ...

  2. 玩转 SpringBoot 2 快速整合 | Thymeleaf 篇

    前言 Thymeleaf是一个适用于Web和独立环境的现代服务器端Java模板引擎. Thymeleaf的主要目标是为您的开发工作流程带来优雅的自然模板 - 可以在浏览器中正确显示的HTML,也可以用 ...

  3. 玩转 SpringBoot 2 快速整合 | 丝袜哥(Swagger)

    概述 首先让我引用 Swagger 官方的介绍: Design is the foundation of your API development. Swagger makes API design ...

  4. 玩转 SpringBoot 2 快速整合拦截器

    概述 首先声明一下,这里所说的拦截器是 SpringMVC 的拦截器 HandlerInterceptor.使用SpringMVC 拦截器需要做如下操作: 创建拦截器类需要实现 HandlerInte ...

  5. 玩转 SpringBoot 2 快速整合 Filter

    概述 SpringBoot 中没有 web.xml, 我们无法按照原来的方式在 web.xml 中配置 Filter .但是我们可以通过 JavaConfig(@Configuration +@Bea ...

  6. 玩转 SpringBoot 2 快速搭建 | RESTful Api 篇

    概述 RESTful 是一种架构风格,任何符合 RESTful 风格的架构,我们都可以称之为 RESTful 架构.我们常说的 RESTful Api 是符合 RESTful 原则和约束的 HTTP ...

  7. 玩转 SpringBoot 2 之整合 JWT 下篇

    前言 在<玩转 SpringBoot 2 之整合 JWT 上篇> 中介绍了关于 JWT 相关概念和JWT 基本使用的操作方式.本文为 SpringBoot 整合 JWT 的下篇,通过解决 ...

  8. 使用Springboot + Gradle快速整合Mybatis-Plus

    使用Springboot + Gradle快速整合Mybatis-Plus 作者:Stanley 罗昊 [转载请注明出处和署名,谢谢!] MyBatis-Plus(简称 MP)是一个 MyBatis ...

  9. 玩转 SpringBoot 2 之整合 JWT 上篇

    前言 该文主要带你了解什么是 JWT,以及JWT 定义和先关概念的介绍,并通过简单Demo 带你了解如何使用 SpringBoot 2 整合 JWT. 介绍前在这里我们来探讨一下如何学习一门新的技术, ...

随机推荐

  1. 记我的一次 Java 服务性能优化

    背景 前段时间我们的服务遇到了性能瓶颈,由于前期需求太急没有注意这方面的优化,到了要还技术债的时候就非常痛苦了. 在很低的 QPS 压力下服务器 load 就能达到 10-20,CPU 使用率 60% ...

  2. 自定义FutureTask实现

    FutureTask FutureTask是Future的实现,用来异步任务的获取结果,可以启动和取消异步任务,查询异步任务是否计算结束以及获取最终的异步任务的结果.通过get()方法来获取异步任务的 ...

  3. java封装 redis 操作 对象,list集合 ,json串

    /** * 功能说明: * 功能作者: * 创建日期: * 版权归属:每特教育|蚂蚁课堂所有 www.itmayiedu.com */package com.redis.service; import ...

  4. Day 01--选题与设计(一)

    1.第一天我们主要确定了软件课设的项目,做一个学校内食堂订送餐的微信小程序.我们大体的设计思路是:可以实现学生身份的认证,幷使学生们能自行选择校园内的食堂,挑选各个食堂各个窗口菜谱上可以选择的菜,选择 ...

  5. Linux expect 介绍和用法

    expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信. expect自动交互流程: spawn启动指定进程---expect获取指定关键字--- ...

  6. 运行MonkeyRunner时使用Genymotion模拟器

    Android自带的模拟器实在太慢太卡,远没有Genymotion的顺畅,所以找了一个办法,在启动py文件时使用Genymotion的模拟器 1.Genymotion安装完成之后,在Settings- ...

  7. 台式机主机u盘安装centos7报错及注意事项

    利用UltraISO制作U盘启动安装台式机CentOS7系统:流程及报错解决 一.制作U盘 1.首先打开UltraISO软件,尽量下载最新版的 2.点击工具栏中的第二个打开镜像文件工具,如图红色方框标 ...

  8. jar在linux上运行

    打jar后一直在linux远程的运行: nohup java -jar xxx.jar & CRT(打开时运行):(另外上传文件可使用“rz”命令,上传jar包) java -jar xxx. ...

  9. jquery validate常用方法及注意问题

    1. required: true 值是必须的.required: "#aa:checked" 表达式的值为真,则需要验证.required: function(){} 返回为真, ...

  10. Java连载21-switch练习

    一.switch练习 public class d21_{ public static void main(String[] args) { java.util.Scanner s = new jav ...