前言

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. Linux--shell重定向与文件处理命令--02

    一.IO重定向 1.数据输入:键盘---标准输入,但并不是唯一输入方式 ” | passwd –stdin username #同时添加用户和密码 while line;do 循环体...$line ...

  2. XAMPP/LAMPP到底在哪里启用APACHE2的rewrite

    XAMPP/LAMPP是一套我们在个人建站过程中非常便捷常用的集成环境.特别是对于学习PHP开发和建站非常便捷. 最近在使用CentOS7环境下的XAMPP过程中,遇到了一个问题,也就是apache2 ...

  3. Nginx总结(一)Linux如何安装Nginx

    以前写过一些Nginx的文章,但都是用到什么说什么,没有一个完整系统的总结.趁最近有时间,打算将Nginx相关的内容重新整理一下.nginx系列文章地址如下:https://www.cnblogs.c ...

  4. Xshell登陆服务器及Linux的简单命令

    在之前的推文中,我已经给出了怎样利用Git登陆服务器”你在用xshell,putty登陆?推荐一个小工具(Git)登陆“其中包括xshell登陆服务器.今天讲讲常见的Linux命令,这个和之前将的利用 ...

  5. python之爬虫-必应壁纸

    python之爬虫-必应壁纸 import re import requests """ @author RansySun @create 2019-07-19-20:2 ...

  6. C#_HttpWebRequest保存cookies模拟登录的方法

    CookieContainer cookies = new CookieContainer(); string url = "http://www.google.com.hk/"; ...

  7. 0807 创建vue实例以及vue的基础指令

    lession1 1.Vue的了解   渐进式框架   作者:尤雨溪     mvvm 2.创建vue实例 引入<script src="vue.js"><scr ...

  8. 持续集成高级篇之Jekins脚本参数化构建

    系列目录 本系列已经很久没有更新了,接前面基础篇,本系统主要介绍jenkins构建里的一些高级特性.包括脚本参数化,Jenkins Pipeline与及在PipeLine模式下如何执行常见的传统构建任 ...

  9. 本地项目上传到github上最直接步骤

    1.首先得有一个git账号(本地安装git) 2.git上创建一个project 3.回到本地你要提交文件夹位置 4.按住shift + 鼠标右键 选择在此处打开命令窗口 5.输入命令  git in ...

  10. 【乘风破浪】Android系统启动流程整理

    前言 对于一个Android应用层开发者来说,了解Android系统的启动流程对理解Android系统有很大的帮助.这其中包含了大量的细节,而且前面很多步骤包含了C/C++实现的native层逻辑,作 ...