部落格對應視訊講解位址: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" rel="external nofollow" target="_blank">我的 CSDN 賬戶</a> </P>
<P> <a href="https://github.com" target="_blank" rel="external nofollow" 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