當我進行第一個完整的java web項目的開發時,對以前所學的Java web知識體系有了一個清晰的進階認識。我覺得非常有必要對此進行必要的總結。
MVC,意指model(數據持久層)+viewer(視圖層)+control(控制層)的基本開發組合模式。
MVC的開發優勢是非常明顯的,model層由javaBean以及service等主要組成,Bean主要完成數據的持久獲取,例如從數據庫中獲取數據賦給bean對象,借助訪問權限的特性,使其屬性只能通過方法訪問獲取,而不能直接訪問其屬性,service部分主要是用bean部分的數據做業務邏輯處理返回所需的數據。
view層是視圖層,用來表達內容,JSP頁面是在html頁面中加入了可以解釋java代碼的“編譯器”,使jsp頁面可以在表達內容的基礎上也擁有了處理業務邏輯的能力。當JSP頁面有可以處理數據的能力後,它可以接收來自其他頁面或程序傳來的數據,並將這些數據顯示出來,為了更好更方便表達數據內容,又為其提供了el與jstl標簽,這些標簽可以存取服務器上各種域內的屬性等內容,常見的域有“request,session,application,response”,每個域的生命周期是不一樣的,要想准確存取值,就要對域的生命周期了解清楚,這裡需要提醒的是。jsp頁面也可以處理業務邏輯,所以意味著它可以替代處理控制層的事情,但這樣就有悖於簡潔高效清晰的理念(就像html與css和js一樣),並且會顯得視圖層混亂與臃腫,不利於再次開發與維護。
control層是控制層,它一般在web中由servlet文件實現,它從JavaBean或者service和各域中提取數據,對數據做邏輯處理,完成相關功能,對得到的數據通過域的屬性和域的生命周期的特性向視圖層傳去所需數據。控制層是MVC的靈魂所在,是最關鍵的地方,因為業務在這裡處理實現。說到底,就是在這裡進行Java程序設計。但在實際開發中,為了進一步簡化servlet,開發人員們弄出了很多開發模式,這裡以工廠方法為例,開發人員面向接口開發,具體過程是:
首先,確定有哪些模塊,為每個模塊定義一個接口(DAO),接口內設計該模塊實現所需的抽象的方法;
然後,定義一個借口實現類(DAOImpl),在裡面設計與實現DAO層裡的所有抽象方法。
這樣,在servlet文件中只需調用這個實現類裡的方法,就可以實現相關功能,不用再去做具體設計。
另外,為每個接口設計一個工廠(Factory)類,其中定義static方法返回一個接口實現類的實例對象,即每次用工廠類名調用這個靜態方法及能生產出一個實現接口的實例對象來,形似工廠,所以稱為工廠方法。(我是入門級程序員,這些是我做完一個小項目的感悟。)