SpringBoot图文教程3—「‘初恋’情结」集成Jsp

有天上飞的概念,就要有落地的实现
- 概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例
- 文章结尾配套自测面试题,学完技术自我测试更扎实
- 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍
大哥大姐新年好,点赞转发不要少
SpringBoot 图文系列教程技术大纲
鹿老师的Java笔记
SpringBoot 图文教程系列文章目录
前言
通过前面两篇,小伙伴们已经成功的实现了增删改查,但是,没有页面效果的项目,就像网恋没有奔现的小姐姐一样,安能辨她是雌雄。今天用SpringBoot整合Jsp页面,看到项目的亚子。
这个时候,有些同学要说了:为什么是Jsp,这么老的技术,效率也不高,用它干啥?不要用它 不要 不要 ….

哼哼,渣男,有了新欢忘了初恋,Jsp作为每个Java程序员触摸到的第一个视图技术,忘得了刚接触Jsp时候的小鹿乱撞吗?想想那天夕阳下的奔跑,是我们无法忘记的青春啊。
选择Jsp作为第一个集成的视图技术,原因有三:
- 根据本人2000+学生的就业经验来看,大部分的企业还在广泛的使用Jsp。(不是每个人都是BAT,大部分的人在一些中小型的软件公司,外包公司,Jsp挺常用)
- Jsp是Java程序员学过的第一个视图技术,集成难度很低
- 想用

前后端分离 以及 Thymeleaf FreeMarker 等视图技术会在后续讲解
SpringBoot 集成 Jsp
环境要求
- 开发工具 IDEA 版本不限
- maven3.x
- jdk1.8
- 本教程采用SpringBoot 2.0.3.RELEASE
注意:SpringBoot 默认是不支持Jsp的,所以集成Jsp需要做一些配置
1.引入jsp的集成jar包
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
2.引入jsp运行插件
插件是必须的,并且要通过插件启动项目,不使用插件,Jsp页面不会被编译,发布。简单说就是:不通过插件启动项目,访问Jsp页面会 404
<build>
<!--引入jsp运行插件-->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
3.配置视图解析器

4.创建webapp目录写入Jsp页面
Jsp相关web资源的位置
- 在main下面创建webapp放置静态资源
- webapp 下面不要有 web.xml

hello.jsp页面内容
<%@page isELIgnored="false" pageEncoding="UTF-8" contentType="text/html; UTF-8" %>
<html>
<head>
<meta charset="utf-8">
<%-- 测试${pageContext.request.contextPath} 获取路径能不能使用
--%>
<script src="${pageContext.request.contextPath}/js/jquery-1.12.4.js"></script>
</head>
<body>
<h1>那天夕阳下的奔跑,是我们无法忘记的青春!</h1>
<script>
</script>
</body>
</html>
5.通过插件启动项目,即可访问页面

如果右侧没有工具栏,IDEA配置:菜单栏View--->Tool Window Bars
6.访问hello.jsp页面
浏览器访问:http://localhost:8802/hello.jsp

7.测试Jsp热部署
修改Jap页面代码

直接刷新浏览器页面 可以看到

总结
以上,就是SpringBoot 集成Jsp的正确姿势了。关于其他视图技术 Thymeleaf FreeMarker 以及 代码热部署 在后续文章中进行说明。
恭喜你完成了本章的学习,为你鼓掌!如果本文对你有帮助,请帮忙点赞,评论,转发,这对作者很重要,谢谢。

让我们再次回顾本文的学习目标
- 掌握SpringBoot中Jsp的使用
要掌握SpringBoot更多的用法,请持续关注本系列教程。
下面体贴的我给朋友萌还准备了一些 自测面试题和项目案例,希望你能够成热打铁,将知识夯扎实。
上期自测面试题答案
见面试题集锦 https://gitee.com/bingqilinpeishenme/Lu-JavaNodes
自测面试题(答案见下期)
无
上期自测实现项目小案例答案
见码云仓库 https://gitee.com/bingqilinpeishenme/Lu-JavaNodes
自测实现项目小案例(答案见下期)
本次需求:
练习文中demo
求关注,求点赞,求转发
SpringBoot图文教程3—「‘初恋’情结」集成Jsp的更多相关文章
- SpringBoot图文教程8 — SpringBoot集成MBG「代码生成器」
有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...
- SpringBoot图文教程9—SpringBoot 导入导出 Excel 「Apache Poi」
有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...
- SpringBoot图文教程10—模板导出|百万数据Excel导出|图片导出「easypoi」
有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...
- SpringBoot图文教程11—从此不写mapper文件「SpringBoot集成MybatisPlus」
有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...
- SpringBoot图文教程14—SpringBoot集成EasyExcel「上」
有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...
- SpringBoot图文教程15—项目异常怎么办?「跳转404错误页面」「全局异常捕获」
有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1-Spr ...
- SpringBoot图文教程17—上手就会 RestTemplate 使用指南「Get Post」「设置请求头」
有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1-Spr ...
- SpringBoot图文教程5—SpringBoot 中使用Aop
有天上飞的概念,就要有落地的实现 概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例 文章结尾配套自测面试题,学完技术自我测试更扎实 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例 ...
- SpringBoot图文教程7—SpringBoot拦截器的使用姿势这都有
有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...
随机推荐
- Python - 定时动态获取IP代理池,存放在文件中
定时功能通过module time + 死循环实现,因为time.sleep()会自动阻塞 get_ip_pool.py """ @__note__: while Tru ...
- BZOJ-1563-郁闷的出纳员(权值线段树)
偏移量要考虑清楚. #include <bits/stdc++.h> using namespace std; const int N=4e5+10; const int BASE=1e5 ...
- js 获取年月日
虽然网上关于这个的方法很多 但是自己还是总结了一个比较可用的方法 var date=new Date(); var year=date.getFullYear(); ); var day=change ...
- dp(武功秘籍)
众所周知,太吾绘卷是非常爱(niu)你(bi)的国产武侠游戏,里面有一个继承系统,当你死后可以在你的子孙中挑选一个继承人,用他的人物继续进行游戏.当你挑选继承人的时候一定会挑选能力最强,天赋最高的那一 ...
- Linux下Nginx1.9.9的安装
1.环境安装 yum install gcc-c++ .yum -y install pcre*.yum -y install openssl* (安装顺序安装) 2.下载压缩包(这里我使用的是老本 ...
- Centos 7源码编译安装 php7.1 之生产篇
Centos 7源码编译安装 php7.1 之生产篇 Published 2017年4月30日 by Node Cloud 介绍: 久闻php7的速度以及性能那可是比php5系列的任何一版本都要快,具 ...
- Python3.5学习之旅——day6
面向对象编程的学习 一.定义 首先跟大家介绍一位资深的程序员前辈说过的编程心得: 1.写重复代码是非常不好且低级的行为 2.完成的代码需要经常变更 所以根据以上两个心得,我们可以知道写的代码一定要遵循 ...
- 细说unittest
一.unittest模块官方文档: https://docs.python.org/3/library/unittest.html 二.一张图看懂unittest: 三.Unittest主要方法属性: ...
- kubernetes的Ingress资源介绍
Ingress 的资源帮助信息介绍 [root@master ~]# kubectl explain ingress KIND: Ingress VERSION: extensions/v1beta1 ...
- Excel实用知识1
纯手打,可能有错别字,使用的版本是office2013 转载请注明出处 http://www.cnblogs.com/hnnydxgjj/p/6329509.html ,谢谢 使用现成的模板 ”开头的 ...
鹿老师的Java笔记