JSP與MVC的異同
JSP
定義:
JSP(Java Server Page)是一種動態(tài)網(wǎng)頁開發(fā)技術栅组,部署于網(wǎng)絡服務器上首繁,這種技術的核心思想是通過應用程序服務器根據(jù)用戶請求來生成網(wǎng)頁史简,供用戶瀏覽邓线,它使用JSP標簽在HTML網(wǎng)頁中插入Java代碼辜贵,標簽為 <% ... %>
工作流程:
- 客戶端(Client)通過網(wǎng)絡發(fā)送一個頁面的請求(Request JSP Page)給服務器端(Sever With JSP Container)威酒。
- 部署了應用程序的服務器端將會從硬盤上讀取對應的文件(JSP Page)窑睁。
- 應用程序容器(Container)將讀取的文件(JSP Page)挺峡,調(diào)用相應的數(shù)據(jù),進行編譯担钮,形成Servlet能夠識別的java文件橱赠。
- Servlet容器將Java文件進行解析,形成HTML文件箫津。
- 應用服務器返回HTML文件給客戶端瀏覽器病线。
MVC
定義:
MVC(model-view-controller)模式是軟件工程中的一種架構模式,把軟件系統(tǒng)分為三個基本部分:模型(Model)鲤嫡、視圖(View)和控制器(Controller)
- 模型 - 代表數(shù)據(jù)模型送挑,或者可以理解為業(yè)務邏輯,是系統(tǒng)的核心部分暖眼,主要職責是負責系統(tǒng)業(yè)務和數(shù)據(jù)的處理惕耕。
- 視圖 - 視圖,對用戶來說诫肠,通常就是展示頁面司澎,視圖部分僅僅負責用戶的展示。對于前后端分離的設計中栋豫,View可以認為是返回前端的數(shù)據(jù)(json/xml)挤安。
- 控制器 - 控制器,主要負責裝配業(yè)務模型產(chǎn)生的數(shù)據(jù)到視圖里面丧鸯。通常有三種職責:
- 接受用戶的請求蛤铜。
- 調(diào)用相應的業(yè)務邏輯處理。
- 將業(yè)務邏輯處理的結果返回或者裝配到視圖中丛肢。
工作流程:
- Controller接受前端發(fā)送過來的請求(Request)围肥,解析請求的路徑、參數(shù)以及表達的意圖蜂怎。
- 根據(jù)請求的意圖和參數(shù)向Model層調(diào)用相關的業(yè)務邏輯穆刻。
- Model層接受Controller層的調(diào)用,組裝數(shù)據(jù)或調(diào)用數(shù)據(jù)庫杠步,返回數(shù)據(jù)給Controller層氢伟。
- Controller層接收到Model層返回的相關數(shù)據(jù),組裝形成View.
- Controller層將View返回給前端幽歼。
JSP和MVP的異同
相同點:
都用于Java Web的開發(fā)
不同點:
- JSP是一種動態(tài)網(wǎng)頁開發(fā)技術朵锣,而MVC則是軟件設計的框架
- JSP的業(yè)務數(shù)據(jù)(業(yè)務邏輯)和展示邏輯(頁面)耦合在一起,而MVC通過Controller這一層试躏,將視圖和業(yè)務邏輯進行了解耦猪勇,將數(shù)據(jù)展示和數(shù)據(jù)生成放到了不同的模塊中,易于維護
- MVC的生命周期成本低颠蕴,系統(tǒng)結構復雜泣刹。