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