1. 程式人生 > >通過Servlet理解MVC框架的基本實現原理

通過Servlet理解MVC框架的基本實現原理

一.概述

SSH從持久層---業務邏輯層---UI層結構

這裡寫圖片描述
B/S與C/S最主要的區別在於分發方面。

二.通過Servlet講解MVC框架的基本實現原理
servlet裡需要引數,轉換型別,處理業務邏輯和寫死跳轉頁面,而且取得引數都是字串。
這裡採用框架自動轉換引數型別,配置頁面,使得開發更靈活。
這裡學會struts的開發模式與思想,其他的框架上手就容易了。

1.struts只能應用在wb專案中,普通的java程式struts應用不了。故這裡建立Dynamic web project;
window-preference-web-jsp-更改encoding為”Chinese,National Startard”。

2.在WebContent下建立jsp頁面,在servlet中接收引數並呼叫UserManager的方法、跳轉到成功頁面add_success.jsp。
對於servlet路徑問題,可以考慮改為*.do,則任何以.do為結尾的路徑都會自動跳轉到該servlet頁面。
實現CRUD:
<1>採用command方式,加上?command=XXX。
<2>攔截每次請求的url,根據url擷取,進行判斷邏輯和轉向。
但servlet的if-else語句太多,不靈活擴充套件性不強,冗餘性太強;而且if不穩定。

諸如判斷邏輯這些 基礎性服務 可以單獨抽取出來,抽取成一個介面,完成這個功能。

三.諸如Struts這種成熟的MVC框架要實現的功能
1.前段控制器(中央控制器)TestServlet:根據相應的規則擷取URL、根據URL分發到相應的action。
2.業務控制器XxxxAction:引數的獲取、業務邏輯(模型層)的呼叫、把轉向資訊給中央控制器,由中央控制器完成轉向。
這裡寫圖片描述

MVC框架的時序圖
web客戶端(瀏覽器)傳送request請求到tomcat伺服器,tomcat是servlet容器,可以執行servlet。伺服器找到相應的前端控制器servlet,其中request包裝了客戶端資料,response包裝了返回的資料。

在這種MVC框架中都有action的概念,通常一個請求一個動作都對應一個action。

MVC模型主要起控制作用。
MVC模型的時序圖