OFBizChina 理解MVC模式

2021-09-05 13:36:28 字數 2122 閱讀 8724

[email protected]

最後更新日期: 2023年6月21日

當涉及大量商業邏輯專案的時候,我們需要考慮什麼?如何分離使用者介面和後台操作?如何避免將商業邏輯混淆於一般的流程控制中?作為企業資訊系統, 就需要考慮很多類似的問題。

源源不斷的客戶新需求, 要進行功能修改和擴充, 但是因為程式的高耦合,改動將變得非常困難,導致專案成本何風險增加。 而且,往往維護人員與開發人員不是同乙個人, 即使有詳盡的文件,也很難理清程式裡縱橫交錯的聯絡。 所以貫徹model-view-controller(mvc)模式的設計, 在設計階段首先杜絕此類問題, 是乙個非常好的方法。

所謂mvc模式,指的是一種劃分系統功能的方法,它將乙個系統劃分為三個部分:

系統屬於瀏覽器/伺服器模型(browser/server)。一般的,客戶通過瀏覽器傳送http請求給伺服器端web 伺服器,web 伺服器接收該請求並且進行相應處理,然後將處理後的結果返回到客戶的瀏覽器中。在客戶端,瀏覽器中呈現的正是該系統的檢視部分。檢視的作用就是提供給客戶乙個視覺化的介面,並且允許客戶輸入一些資料來與伺服器端程式互動。

對客戶來說,他只能看到檢視,而模型和控制器對他則是透明的。在這裡web 伺服器僅僅起到提供http服務的作用。web 伺服器將客戶提交的http 請求交給後方的jsp、servlet引擎,並且進一步交給其中的控制器來處理。控制器按照從xml配置檔案中提取的請求對映表將該請求對映到相應的處理器(handler);處理器對模型進行更新、修改等操作,處理完後返回結果給控制器;控制器根據結果通知檢視做相應變化,並且選擇相應檢視返回給客戶。下圖(圖1。2)說明了這一協作過程。

ofbiz的web應用框架嚴格遵循mvc模式。 ofbizmvc中model有它的封裝業務邏輯的事件和服務承擔. control有controller承擔, view有傳統的jsp, 和freemarker,jpublish, beanshell承擔。 這裡我主要說明 control (model, view將在相應技術的模組闡述). 在ofbiz框架中, controller是一組管理web表示層物件, 其目的是將業務邏輯和表示層完全地分離開來。

過濾器(context security filter)

servlet api 2.3中最重大的改變是增加了filters,filters能夠傳遞request或者修改response。 filters並不是servlets;它們不能產生response。你可以把過濾器看作是還沒有到達servlet的request的預處理器,或從servlet發出的response的後處理器。一句話,filter代表了原先的"servlet chaining"概念,且比"servlet chaining"更成熟。

filter能夠:

context security filter (csf) 在 /web-inf/web.xml 定義,用來限制訪問 web應用程式的檔案. 具體參看下面的例子.

filter配置如下:

contextsecurityfilter

contextsecurityfilter

allowedpaths

/control:/index.html:/index.jsp:/default.html:/default.jsp:/images

errorcode

403

/*

control servlet 控制程式流程

control servlet 是所有請求過程的核心. 當收到乙個請求時,servlet 首先設定系統環境資訊, 初始化request, session , 實體代表(採用了"業務代表"的 設計模式, 我們將在關於實體引擎文章中介紹), service dispatcher, and security handler 存放在servletcontext. 隨後control server 將request交給了 request handler 處理. request handler處理完成後,返回給control servlet ,整個請求過程就結束了。

handler對請求的處理過程

請求對映定義例項:

verify a user is logged in.
如上所示, 事件返回" success" 呼叫view: main 。如果這裡的 type="request", 返回成功以後,自動呼叫另外的請求。 這就是所謂的"請求巢狀"。

OFBizChina 理解MVC模式

alleysh ofbizchina.com 最後更新日期 2003年6月21日 當涉及大量商業邏輯專案的時候,我們需要考慮什麼?如何分離使用者介面和後台操作?如何避免將商業邏輯混淆於一般的流程控制中?作為企業資訊系統,就需要考慮很多類似的問題。源源不斷的客戶新需求,要進行功能修改和擴充,但是因為程...

MVC架構理解

m 模型model,理解成 資料 即可,可以是sql出來的資料。v 檢視view,一般就html 和json 兩種 c 控制器controller 活動actions 很多個action action 就是一次http 網路請求 就是乙個url 網域名稱 user adduser 網域名稱 user...

理解 MVC架構

mvc架構 發表日期 2020.5.12 趙路倉摘要 mvc架構將業務邏輯聚集到乙個部件裡面,在改進和個性化定製介面及使用者互動的同時,不需要重新編寫業務邏輯。mvc被獨特的發展起來用於對映傳統的輸入 處理和輸出功能在乙個邏輯的圖形化使用者介面的結構中。引 言mvc架構是模型 model 檢視 vi...