前后端分离历史追溯及如今流行的前后端分离接口实现

博客对应视频讲解地址: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]

优点:

  1. 各司其职
  • 前端:视觉层面,兼容性,前端性能的优化
  • 后端: 并发, 可能性,性能
  1. 解耦,前端和后端均易于扩展
  2. 后端灵活搭配各类前端 - 如安卓等
  3. 提高用户体验
  4. 前端+后端可完全并行开发,加快开发效率

需要解决的问题:

前端的话只需要传输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

发布了469 篇原创文章 · 获赞 94 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/qq_37909508/article/details/103791538
今日推荐