從 SSH執行個體《線上考試系統》 看SSH系統分層模型

來源:互聯網
上載者:User

系統原始碼  http://download.csdn.net/detail/yu422560654/4536270

系統有嚴格的分層,主要分為表現層、MVC控制層、商務邏輯層、DAO層和資料持久層。不同的層封裝不同的應用組件,各層的組建以松耦合的方式組織在一起,提供更好的可擴充性。

表現層主要是JSP頁面充當,負責收集使用者的請求資料並提交到指定的控制器。當系統處理完使用者的請求後,JSP頁面還負責將處理結果呈現給使用者。(禁用JSP頁面的Java指令碼可以保證JSP頁面作為表現層的純潔性)

JSP的所有請求都想Struts的ActionServlet發送,通過這種方式,Struts成為系統的前端控制器,所有的請求都將由Struts來處理。ActionServlet攔截到使用者請求後,將請求轉寄到使用者定義的商務邏輯控制器。

將所有請求都使用ActionServlet攔截還有一個好處,將所有的JSP頁面都放在WEB-INF/路徑下,可以避免使用者直接存取JSP頁面,提供了系統安全性。

當ActionServlet轉寄使用者請求時,並沒有轉寄實際的Action處理類,而是轉寄給Spring提供的DelegatingActionProxy類,這個類負責將所有的請求轉入Spring容器內,而Struts原有的商務邏輯控制器則由Spring容器負責管理。通過這種方式,可以實現Struts與Spring的整合。給出了從Struts轉入Spring容器中的Bean順序圖。



一旦進入了Spring IoC容器的內部,IoC容器負責建立系統所需的控制器,每次使用者請求到達時,IoC容器都會重新建立一個新的控制器組件。

控制器組件依賴系統的商務邏輯組件,這種依賴也無須控制器組件主動去尋找,由Spring容器將商務邏輯組件注入到控制器組件。商務邏輯組件包含了系統的全部商務邏輯方法,本系統的商務邏輯方法放在商務邏輯中實現,而不是在Domain Object中實現。

事務採用Spring的聲明式事務架構。通過聲明式事務,無須將事務策略以硬式編碼方式與代碼耦合在一起,而是放在設定檔中聲明。商務邏輯組件可以更專註業務的實現,從而簡化了開發。同時,聲明事務降低了不同事務策略的切換代價。

註:聲明式事務是基於Spring的AOP實現,實際上,AOP並不是僅僅提供聲明式交易管理,還可以管理基於AOP的許可權管理等功能。

DAO層主要包含了系列的DAO組件,將系統中的給中資料庫訪問都封裝在DAO方法裡,為上一層商務邏輯方法的實現提供支援。DAO對象基於Spring的HibernateDaoSupport類實現,繼承HibernateDaoSupport的DAO對象很簡單,程式員無須管理Hibernate的SessionFactory、Session等對象。程式開發人員通過Spring提供的HibernateTemplate完成資料庫操作。






聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.