整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

2020最新版适合JAVA小白的学习线路(纯干货),你值得拥有

门永不过时的编程语言——Java 软件开发,你赞同吗?

我赞同。

小编用数据说话



Java编程语言占比:

据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以1000万的程序员数量位居首位。 而且很多软件的开发都离不开Java编程,因此其程序员的数量最多。而在以Java编程为核心的开发领域中,javaEE程序员的需求量10年来一直居于首位!

Java工程师就业:

1.通过各大招聘网站统计,全国海量公司都在招聘Java开发工程师

2.北京Java开发工程师平均薪资,即16788元

3.全国Java开发薪资前三:北京 上海 广州


以上2个数据,你心动了,心动就赶快行动起来吧。5G时代,万物互联,更多的终端会使用安卓系统,随之而来的Java开发必然是会越来越火爆,所以学习Java是必要且必须的,下边就是总结了下Java的学习路线。

包括Java基础课程、JavaWeb和java框架课程。

你可能会好奇,你不是讲java学习路线吗?为啥还有前端web的部分,我只能告诉你,

我们可不能闭门造车,很多公司学后端还要学前端的

前端现在很多也了解后端的技术栈的,你想我们去一个网站,最先接触的,最先看到的是啥?

没错就是前端,在大学你要是找不到专门的前端同学,去做系统肯定也要自己顶一下前端的


当然,有些公司是不写的,例如:


俗话技多不压身,为了方便要写的小伙伴,咱还是一起介绍了~


Java基础课程

Java基础课程内容涉及:Java开发介绍、Java数组、Java面向对象、常用基础类、集合、IO流、多线程、异常、反射。

第一部分:Java开发介绍

  1. DOS常用命令
  2. JVM、JRE、JDK之间的关系
  3. Java开发环境的搭建:安装JDK,配置环境变量
  4. Java入门程序(Java的开发流程)
  5. Java的注释,标识符、标识符的命名规范
  6. Java基本数据类型
  7. 变量和常量的定义及初始化
  8. Java的运算符
  9. 运算符的优先级
  10. Java分支语句之if…else
  11. 循环的嵌套
  12. 方法的定义
  13. 方法的形参和实参
  14. 方法的递归调用

第二部分:Java数组

  1. Java 数组的定义
  2. Java 数组的声明
  3. 数组的优势与局限
  4. 数组的遍历访问(普通循环,增强for循环)
  5. 数组元素的顺序查找
  6. 数组元素的冒泡法排序
  7. Arrays工具类的使用
  8. 二维数组

第三部分:Java面向对象

  1. 面向对象设计思想
  2. 面向对象的分析与设计
  3. Java与面向对象
  4. 类中成员变量的定义与意义
  5. 构造方法的定义和调用
  6. 面向对象的封装特性
  7. 局部变量和成员变量的作用域问题
  8. 静态属性、静态方法、静态代码块
  9. 面向对象的继承特性
  10. 继承中构造方法的细节
  11. 面向对象的多态特性
  12. 抽象方法与抽象类
  13. 接口

第四部分:异常

  1. 异常的概念
  2. 异常的分类
  3. 异常的理解
  4. 常见异常介绍
  5. 运行时异常
  6. 编译时异常
  7. 运行和编译异常区别
  8. 异常的处理方式之捕获异常
  9. 异常的处理方式之抛出异常
  10. 异常的处理方式之断点调试
  11. 断点调试之引导运行步骤
  12. 自定义异常
  13. 异常关键字处理
  14. 关键字执行流程
  15. 异常总结

第五部分:集合

  1. 集合的概念和作用
  2. 集合和数组的区别
  3. 集合框架体系介绍
  4. 集合框架之Collection接口
  5. ArrayList和LinkedList的方法使用
  6. ArrayList和LinkedList各自的工作原理分析原理分析
  7. 使用多种方式遍历集合
  8. HashSet和LinkedHashSet各自的工作原理分析
  9. 集合框架之Map接口
  10. 泛型的使用
  11. Collections工具类的使用

第六部分:IO流

  1. File类的作用
  2. File类中常用方法的使用介绍
  3. 使用File类操作文件和文件夹
  4. 相对路径和绝对路径的介绍
  5. IO流的概念和工作原理
  6. IO流的分类
  7. 文件流的使用
  8. 转换流的使用
  9. 缓冲流的使用
  10. 对象流的使用
  11. 内存流的使用
  12. 使用不同的流实现文件内容的拷贝

第七部分:多线程

  1. 进程和线程的介绍
  2. 进程和线程之间的区别与联系
  3. 线程实现方式之继承自Thread类
  4. 线程实现方式之实现Runnable接口
  5. 线程实现方式之线程池
  6. 线程的生命周期
  7. 线程中常用方法的使用

JavaWeb课程

JavaWeb课程内容涉及:HTML5课程、CSS3、JavaScript、MySQL使用、JDBC连接池、Servlet、JSP、AJAX、jQuery、Bootstrap。

第一部分:HTML5

  1. html概述
  2. html基本标签
  3. 图片标签
  4. 超链接标签
  5. 表格标签
  6. 无序列表标签
  7. 有序列表标签
  8. 定义列表标签
  9. div标签
  10. 语义化标签
  11. 表单标签

第二部分:CSS3

  1. CSS3简介和用途
  2. CSS3书写规范
  3. CSS3基本语法
  4. CSS3三种使用方式
  5. 标签选择器
  6. Id选择器
  7. Class选择器
  8. 属性选择器
  9. 层次选择器
  10. 文字、文本属性
  11. 背景、列表属性
  12. 尺寸、显示、轮廓属性
  13. 浮动、定位属性
  14. 盒子模型
  15. CSS3高级属性

第三部分:JavaScript

  1. JavaScript概述
  2. JavaScript发展史
  3. JavaScript组成
  4. 数据类型
  5. 运算符
  6. 分支语句
  7. 循环语句
  8. 系统函数、自定义函数、匿名函数
  9. 常见事件
  10. 数组、字符串、日期对象
  11. 正则表达式
  12. BOM对象:window、history、location
  13. DOM概念
  14. DOM操作:创建、修改内容、删除
  15. Css样式操作

第四部分:MySQL使用 或oracle数据库

  1. 数据库简介
  2. MySQL的安装与使用
  3. MySQL客户端和服务器配置
  4. 用户权限管理
  5. DDL创建数据库和表
  6. 约束与外键
  7. DML实现添加、修改、删除数据
  8. 聚合函数、日期函数等
  9. DQL简单查询
  10. 排序、分组、筛选
  11. 多表查询
  12. 子查询
  13. in和exists关键字
  14. 分页查询
  15. Mysql SQL语句优化介绍

第五部分:JDBC连接池

  1. JDBC概述
  2. JDBC使用步骤
  3. Connection、Statement、ResultSet接口
  4. 使用JDBC 完成数据库DML操作
  5. PreparedStatement对象
  6. 大数据的操作
  7. 批量处理与元数据
  8. 事务处理
  9. 隔离级别
  10. 自定义连接池
  11. DBCP、C3p0连接池
  12. DBUtis工具类
  13. QueryRunner
  14. 自定义结果集处理
  15. 连接池知识总结

第六部分:Servlet

  1. Tomcat与Eclipse的集成开发
  2. 什么是Servlet
  3. Servlet的进化史
  4. Servlet的优化过程
  5. Servlet中应用的多线程概念
  6. Servlet接收客户端请求信息
  7. Servlet响应客户端信息
  8. Servlet的生命周期
  9. 重定向写法
  10. 转发写法
  11. 转发和重定向区别
  12. HttpServletRequest获取中文乱码问题
  13. HttpServletResponse响应中文乱码问题
  14. Servlet路径映射问题
  15. Servlet多路径映射

第七部分:JSP

  1. 什么是JSP
  2. JSP的内置对象
  3. 透析JSP的本质
  4. JSTL+EL
  5. MVC介绍
  6. 分层的重要性
  7. Web工程中事务实现
  8. Session的使用
  9. Cookie的使用
  10. web工程中连接池的使用
  11. 实现用户的自动登录
  12. 文件的上传、下载
  13. 过滤器、 监听器
  14. 反射、注解、泛型
  15. 综合案例练习

第八部分:AJAX

  1. Ajax技术背景
  2. Ajax技术的理解
  3. XMLHttpRequest使用步骤
  4. XMLHttpRequest GET/POST的区别
  5. 同步请求&异步请求
  6. 同步请求&异步请求的区别
  7. Ajax获取不同的返回值类型
  8. Ajax使用原生JavaScript和Jquery的区别
  9. Ajax响应状态处理
  10. JSON语法
  11. Java JSON 解析
  12. Java JSON 生成
  13. Java JSON 第三方工具快速解析
  14. JavaScript JSON转换
  15. Jquery JSON转换

Java框架课程

Java框架课程内容涉及:Spring、Spring MVC、MyBatis、SVN、Git、Maven

第一部分:Spring

  1. 框架原理介绍
  2. 框架环境搭建
  3. 快速入门
  4. 创建Bean的方式及实现原理
  5. Bean种类
  6. Bean生命周期
  7. Bean的作用域
  8. Bean的注值方式
  9. 整合Junit测试
  10. 注解装配Bean
  11. 注解装配Bean
  12. AOP思想、原理解剖
  13. AOP底层JDK动态代理
  14. AOP编程
  15. AspectJ介绍及实现AOP开发
  16. 事务
  17. Web项目集成Spring

第二部分:Spring MVC

  1. Spring MVC 概述
  2. 使用 @RequestMapping映射请求
  3. 请求处理方法签名概述
  4. 处理方法签名详细说明
  5. 使用 HttpMessageConverter
  6. 处理模型数据
  7. 数据绑定流程剖析
  8. 数据格式化
  9. 数据校验
  10. 视图和视图解析器
  11. 处理方法的数据绑定
  12. 视图和视图解析器
  13. 文件上传下载
  14. JSON处理
  15. 拦截器

第三部分:MyBatis

  1. MyBatis数据框架介绍
  2. MyBatis对比Hibernate框架
  3. MyBatis配置、查询数据
  4. MyBatis全局配置文件
  5. MyBatis全局配置文件元素详细介绍
  6. Mapper映射文件
  7. MyBatis两种开发方式
  8. MyBatis中别名配置
  9. MyBatis # 和 $ 拼接参数区别
  10. 关联查询,动态sql
  11. MyBatis缓存机制、整合ehcache
  12. MyBatis二级缓存处理
  13. MyBatis、Spring、SpringMVC整合
  14. 分页插件
  15. MyBatis逆向工程

第四部分:SVN 和git

  1. SVN简介
  2. SVN和Git对比
  3. SVN服务器搭建
  4. SVN创建仓库
  5. SVN创建用户以及分配权限
  6. SVN签出、提交、更新
  7. Eclipse整合svn插件
  8. Idea整合svn插件
  9. 使用SVN更新提交
  10. SVN仓库分析
  11. SVN协同修改&冲突解决
  12. SVN代码整合注意事项
  13. SVN权限管理
  14. SVN数据回滚
  15. TortoiseSVN

第五部分:Maven

  1. Maven环境搭建
  2. Maven构建项目
  3. Maven本地仓库配置
  4. Maven中央仓库配置
  5. Maven基本概念
  6. Maven基本命令介绍
  7. Maven于Eclipse整合
  8. Maven于Idea整合
  9. Maven创建web工程
  10. pom.xml、依赖管理
  11. 坐标、依赖、生命周期等
  12. Eclipse下的Maven使用
  13. Maven中 继承、聚合
  14. Maven构建SSH/SSM应用
  15. 自动部署、持续集成、持续部署

第六部分

项目开发

项目没做过?没关系,160个项目实战案例、一套学习Java的资料,如果你想在技术上提升自己,可以关注我哟,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让更多的人看到哦

hymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。它与 JSP,Velocity,FreeMaker 等模板引擎类似,也可以轻易地与 Spring MVC 等 Web 框架集成。与其它模板引擎相比,Thymeleaf 最大的特点是,即使不启动 Web 应用,也可以直接在浏览器中打开并正确显示模板页面 。

Thymeleaf 简介

Thymeleaf 是新一代 Java 模板引擎,支持 HTML 原型,以直接被浏览器打开,此时浏览器会忽略未定义的 Thymeleaf 标签属性,展示 thymeleaf 模板的静态页面效果。当在应用程序中会动态地替换掉页面设置的标签属性。

Thymeleaf 的特点

  • 动静结合:Thymeleaf 既可以直接使用浏览器打开,查看页面的静态效果,也可以通过 Web 应用程序进行访问,查看动态页面效果。
  • 开箱即用:Thymeleaf 提供了 Spring 标准方言以及一个与 SpringMVC 完美集成的可选模块,可以快速地实现表单绑定、属性编辑器、国际化等功能。
  • 多方言支持:它提供了 Thymeleaf 标准和 Spring 标准两种方言,可以直接套用模板实现 JSTL、 OGNL 表达式;必要时,开发人员也可以扩展和创建自定义的方言。
  • 与 SpringBoot 完美整合:SpringBoot 为 Thymeleaf 提供了的默认配置,并且还为 Thymeleaf 设置了视图解析器,因此 Thymeleaf 可以与 Spring Boot 完美整合。

Thymeleaf 通过在 html 标签中,增加额外属性来达到“模板+数据”的展示方式

IDEA新创建HTML文件是这样的:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
</html>

要想使用 Thymeleaf 之前,首先要在页面的 html 标签中声明名称空间,可避免编辑器出现 html 验证错误。

xmlns:th="http://www.thymeleaf.org"

Thymeleaf 作为一种模板引擎,它拥有自己的语法规则。Thymeleaf 语法分为以下 2 类:

  • 标准表达式语法
  • th 属性

标准表达式语法

hymeleaf 模板引擎支持多种表达式:

  • 变量表达式:${...}
  • 选择变量表达式:*{...}
  • 链接表达式:@{...}
  • 国际化表达式:#{...}
  • 片段引用表达式:~{...}

变量表达式

这里变量表达式和其他模板类似,可以使用表达式具有以下功能:

  • 获取对象的属性和方法
  • 使用内置的基本对象,获取内置对象的属性,调用内置对象的方法。如上下文对象ctx,上下文语言环境locale,请求对象HttpServletRequest,响应对象HttpServletResponse等。
  • 使用内置的工具对象,如字符串工具对象,数字工具对象,日期工具对象等。

选择变量表达式

变量表达式与 th:object 的配合使用。当使用 th:object 存储一个对象后,我们可以在其后代中使用选择变量表达式(*{...})获取该对象中的属性,其中,“*”即代表该对象。

<div th:object="${session.user}" >
    <p th:text="*{userName}">userName</p>
</div>

链接表达式

链接都可以用链接表达式 (@{...}),链接表达式的形式结构如下: 无参请求:@{/xxx} 有参请求:@{/xxx(k1=v1,k2=v2)}。

<link rel="stylesheet" th:href="@{/style.css}"></link>

国际化表达式

消息表达式一般用于国际化的场景。

th:text="#{message}"

片段引用表达式

片段引用表达式用于在模板页面中引用其他的模板片段,该表达式支持以下 2 中语法结构:

  • 推荐:~{templatename::fragmentname}
  • 支持:~{templatename::#id}

templatename:模版名,fragmentname:片段名,Thymeleaf 通过 th:fragment 声明定义代码块,即:th:fragment="fragmentname"。id:HTML 的 id 选择器,使用时要在前面加上 # 号,不支持 class 选择器。

我们可以将公共页面片段抽取出来,存放到一个独立的页面中,然后在其他页面使用片段表达式进行引用。

hymeleaf 在抽取和引入公共页面片段时,还可以进行参数传递。

我们可以通过以下 2 种方式,将参数传入到被引用的页面片段中:

  • 模板名::选择器名或片段名(参数1=参数值1,参数2=参数值2)
  • 模板名::选择器名或片段名(参数值1,参数值2)

在使用参数时可以使用变量表达式使用这些参数。

<!--使用 var1 和 var2 声明传入的参数,并在该片段中直接使用这些参数 -->
<div th:fragment="fragment-name(var1,var2)" id="fragment-id">
    <p th:text="'参数1:'+${var1} + '-------------------参数2:' + ${var2}">...</p>
</div>

th 属性

Thymeleaf 还提供了大量的 th 属性,这些属性可以直接在 HTML 标签中使用。

th属性标签还有很多,这里只是用了一小部分,有兴趣的可以在网上搜索一下。

我们知道,在web开发时,一般都会涉及到很多的静态资源,如js、image、css文件等。

SpringBoot的默认的静态文件目录是:

  • /static
  • /public
  • /resources
  • /META-INF/resources



所以,一般我们只需要把静态文件放入前面的四个任一一个即可,默认都放在static下,对应路径即为:src/main/resources/static。

而从官网文档里也可以获悉,为了实现动态的html,SpringBoot是通过模版引擎进行页面结果渲染的,目前(1.5.15)版本的提供默认配置的模版引擎主要为:

  • FreeMarker
  • Groovy
  • Thymeleaf
  • Mustache



对于模版引擎而言,SpringBoot默认存放模版文件的路径为src/main/resources/templates,当然也可以通过配置文件进行修改。因为不同的模版引擎对应的配置属性不一样,所以在具体讲解模版引擎时,会提到。

当然了,也可以使用jsp,但官方已经不建议使用JSP,本文也会讲解下SpringBoot下JSP的支持,毕竟有很多老的项目还在使用JSP。

知道以上的一些默认配置和知识点后,就可以进行模版引擎的集成使用了。本章主要讲解常用的FreeMarker、Thymeleaf及JSP三个的集成和使用,其他的基本用法都一样,就是各模版引擎的语法的差异了。


FreeMarker支持


FreeMarker是一款模板引擎,即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。



1、POM依赖

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


2、application.properties配置加入相关配置:

# 缓存配置 开发阶段应该配置为false 因为经常会改spring.freemarker.cache=false # 模版后缀名 默认为ftlspring.freemarker.suffix=.html # 文件编码spring.freemarker.charset=UTF-8 # 模版加载的目录spring.freemarker.template-loader-path=classpath:/templates/ # 配置# locale 该选项指定该模板所用的国家/语言选项# number_format 指定格式化输出数字的格式:currency、# boolean_format 指定两个布尔值的语法格式,默认值是true,false# date_format,time_format,datetime_format 定格式化输出日期的格式# time_zone 设置格式化输出日期时所使用的时区# 数字 千分位标识spring.freemarker.settings.number_format=,##0.00


详细的配置可参见

org.springframework.boot.autoconfigure.freemarker.FreeMarkerProperties类,或者直接IDE直接配置文件点击查看。


3、编写控制层

FreemarkerController.kava:

//因为是返回页面 所以不能是@RestController@Controller@RequestMapping("/freemarker")public class FreemarkerController { //正常和springmvc设置返回参数是意义的用法了 @GetMapping("/map") public String index(String name,ModelMap map) { map.addAttribute("name", name); map.addAttribute("from", "lqdev.cn"); //模版名称,实际的目录为:src/main/resources/templates/freemarker.html return "freemarker"; } @GetMapping("/mv") public String index(String name,ModelAndView mv) { mv.addObject("name", name); mv.addObject("from", "lqdev.cn"); //模版名称,实际的目录为:src/main/resources/templates/freemarker.html return "freemarker"; }}


4、编写模版文件

freemarker.html:

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" /> <title>freemarker简单示例</title></head><body><h1>Hello Freemarker</h1><!-- 这里注意:默认变量都不能为null的, 当参数为null时,会发生异常的 --><!-- 这里后面几个"!"避免下,这样就是空白了 --><h2>名称:${name!},来自:${from}</h2></body></html>

5、启动应用

访问:http://127.0.0.1:8080/freemarker/mv?name=oKong 或者 http://127.0.0.1:8080/freemarker/map?name=oKong 就能查看页面了。



关于一些Freemarker的语法这里就不说明了,大家可到官网查看下:https://freemarker.apache.org/docs/index.html


Thymeleaf支持


Thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此,也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板,相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑。

1、pom依赖

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


2、application.properties配置加入相关配置:

# 启用缓存:建议生产开启spring.thymeleaf.cache=false# 建议模版是否存在spring.thymeleaf.check-template-location=true# Content-Type 值spring.thymeleaf.content-type=text/html # 是否启用spring.thymeleaf.enabled=true# 模版编码spring.thymeleaf.encoding=UTF-8# 应该从解析中排除的视图名称列表(用逗号分隔)spring.thymeleaf.excluded-view-names= # 模版模式spring.thymeleaf.mode=HTML5 # 模版存放路径spring.thymeleaf.prefix=classpath:/templates/ # 模版后缀spring.thymeleaf.suffix=.html


3、编写控制层

ThymeleafController.java:

@Controller@RequestMapping("/thymeleaf")public class ThymeleafController { // 正常和springmvc设置返回参数是意义的用法了 @GetMapping("/map") public String index(String name, ModelMap map) { map.addAttribute("name", name); map.addAttribute("from", "lqdev.cn"); // 模版名称,实际的目录为:src/main/resources/templates/thymeleaf.html return "thymeleaf"; } @GetMapping("/mv") public ModelAndView index(String name) { ModelAndView mv = new ModelAndView(); mv.addObject("name", name); mv.addObject("from", "lqdev.cn"); // 模版名称,实际的目录为:src/main/resources/templates/thymeleaf.html mv.setViewName("thymeleaf"); return mv; }}

4、编写模版文件

thymeleaf.html

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" /> <title>thymeleaf简单示例</title></head><body><h1>Hello thymeleaf</h1><!-- 这里注意:拼接时 变量要单独使用${param},其他的常量使用''包裹 --><h2 th:text="'名称:'+${name}+',来自:'+${from}">默认值</h2></body></html>

5、启动应用

访问:http://127.0.0.1:8080/thymeleaf/mv?name=oKong 或者 http://127.0.0.1:8080/thymeleaf/map?name=oKong 就能查看页面了。



JSP支持


虽然SpringBoot官方已经不建议使用jsp了,但在一些老的项目迁移时,jsp的支持是毋庸置疑的,所以还是需要兼容的。。

1、pom依赖加入

<!-- spring boot 内置tomcat jsp支持 --><dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId></dependency><dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId></dependency>


2、application.properties配置加入相关配置:

#jsp 支持spring.mvc.view.suffix=.jspspring.mvc.view.prefix=/WEB-INF/jsp/


3、编写控制层

JspController.java

@Controller@RequestMapping("/jsp")public class JspController { //正常和springmvc设置返回参数是意义的用法了 @GetMapping("/map") public String index(String name,ModelMap map) { map.addAttribute("name", name); map.addAttribute("from", "lqdev.cn"); //模版名称,实际的目录为:src/main/webapp/jsp/index.html return "index"; } @GetMapping("/mv") public ModelAndView index(String name) { ModelAndView mv = new ModelAndView(); mv.addObject("name", name); mv.addObject("from", "lqdev.cn"); //模版名称,实际的目录为:src/main/webapp/jsp/index.html mv.setViewName("index"); return mv; }}

4、webapp/WEB-INF/jsp目录下编写jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charsetUTF-8"><title>jsp示例</title></head><body><h1>Hello Jsp</h1><h2 >名称:${name},来自:${from}</h2></body></html>


5、启动应用

访问:http://127.0.0.1:8080/jsp/mv?name=oKong 或者 http://127.0.0.1:8080/jsp/map?name=oKong 就能查看页面了。



注意:在使用spring-boot-maven-plugin打包插件时,默认情况下打包的应用时访问不了jsp目录文件的,需要把版本修改为1.4.2.RELEASE版本,同时pom中加入resource配置:

<resources> <!-- 打包时将jsp文件拷贝到META-INF目录下 --> <resource> <!-- 指定resources插件处理哪个目录下的资源文件 --> <directory>src/main/webapp</directory> <!--注意此次必须要放在此目录下才能被访问到 --> <targetPath>META-INF/resources</targetPath> <includes> <include>**/**</include> </includes> </resource><!-- <resource> 指定resources插件处理哪个目录下的资源文件 <directory>src/main/resources/static</directory> 注意此次必须要放在此目录下才能被访问到 <targetPath>META-INF/resources/static</targetPath> <includes> <include>**/**</include> </includes> </resource> --> <resource> <directory>src/main/resources</directory> <includes> <include>**/**</include> </includes><!-- <excludes> <exclude>src/main/resources/static/**</exclude> </excludes> --> <filtering>false</filtering> </resource></resources>


总结

本章主要是讲解利用模版引擎进行动态页面实现功能,对于有此需要的同学可以去看下使用的模版引擎的相关使用教程,这里就不多加阐述。目前互联网上很多大佬都有springboot系列教程,如有雷同,请多多包涵,若文中有所错误之处,还望提出!需要看SpringBoot系列前十四章需移步本人主页浏览。

SpringBoot系列:

SpringBoot深入解析——基于 Docker 的简单部署(十四)

https://www.toutiao.com/i6597750315166990862/

SpringBoot深入解析——基于 Postman的RESTful 接口测试(十五)

https://www.toutiao.com/i6597747954155520515/