博客对应视频讲解地址:https://www.bilibili.com/video/av81735277/
一、模板引擎时代
1、jsp
本质:jsp是服务器响应页面、jsp是嵌入java代码的html、jsp的本质就是servlet
缺点:前端开发人员必须会后端,后端开发人员必须会前端。导致大批全栈工程师的出现
2. FreeMarker
2. FreeMarker
FreeMarker是一个免费的模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写,它被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序。虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据(如下图)
3、thymeleaf
Springboot默认是不支持JSP的,默认使用thymeleaf模板引擎。
日常开发中,我们经常会将导航栏,页尾,菜单等部分提取成模板供其它页面使用。
在Thymeleaf 中,我们可以使用th:fragment
属性来定义一个模板。
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<div th:fragment="commonFooter" class="fly-footer">
<P> <a href="https://blog.csdn.net" target="_blank">我的 CSDN 账户</a> </P>
<P> <a href="https://github.com" target="_blank">我的 GitHub 账户</a></P>
</div>
</html>
二、前后端分离时代
前后端分离 完整的请求过程
1. 前端通过http请求后端API
2. 后端以json形式返回前段数据
3. 前端生成用户界面[如html,ios,android]
优点:
- 各司其职
- 前端:视觉层面,兼容性,前端性能的优化
- 后端: 并发, 可能性,性能
- 解耦,前端和后端均易于扩展
- 后端灵活搭配各类前端 - 如安卓等
- 提高用户体验
- 前端+后端可完全并行开发,加快开发效率
需要解决的问题:
前端的话只需要传输http数据到后端,后端接收http数据时候,然后然后前端需要的数据。
后端主要是需要考虑两个问题:
1、前后端的跨域问题,因为前端启动一个服务器,域名或端口号不同,这个时候就会遇到跨域问题,后端解决办法:请看我另外一篇文章
https://blog.csdn.net/qq_37909508/article/details/97791302
2、前后端数据交互的问题,前端通过ajax或者axios去请求,后台接收的话使用responsebody来接收json数据,这里需要注意的是,前端传过来的请求有两种方式,一种是在URL后面带着请求数据(如get,delete等)这个时候直接使用普通方式
如果是放入到请求体当中的,首先可以是前端通过qs将请求体的数据转换到URL后面请求,后台直接如下写就行:
如果前端请求的数据放入到请求体,后端需要这样写
或者
@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);
@RequestBody(required=false)表示后面的User对象可以不传入!!!
具体演示代码已上传至
https://github.com/1359533909/Front-EndAndBack-EndOfSimpleSystem.git