荀崇崇 覃章健 王欣穎
摘 要:介紹了基于JavaEE企業級開發的CMS(Content Management System)網站設計、系統架構、框架搭建,深入剖析了由Java語言設計實現的CMS網站的結構及原理。該網站以Java8、Tomcat7、MySQL作為支撐;以springMVC4、spring4、hibernate4(SSH)為框架;以Freemaker作為表現層;以MySQL5.5為數據庫。前端html頁面由后臺代碼動態生成。后臺的管理中心權限管理和欄目管理部分采用DWR(Direct Web Remoting)作為web頁面與Java類交互的遠程服務器端的Ajax開源框架,與zTree樹插件相結合,構成權限樹和欄目樹,并實現其功能。
關鍵詞:CMS;內容管理系統;JavaEE;DWR;SSH框架
基于JavaEE的內容管理系統(CMS)是在SSH框架的MVC(Model View Controller)三層體系架構的基礎上設計并實現的。合理的體系結構和良好的程序設計是實現網站功能的基礎,友好簡潔的交互界面是發揮網站系統功能優勢的條件[ 1 ]。針對政府和企業網站建設的需求,整合現有的資源及開發技術,提出針對性的解決方案:內容管理系統(面向網站內容編輯、發布與管理開發的應用系統)。
1 CMS簡述
CMS的基本思想:分離內容的管理和設計,將頁面的設計存儲在Freemaker模板里,而內容存儲在數據庫或獨立的properties配置文件中。當一個用戶請求頁面時,組合內容和模板生成一個標準的HTML靜態頁面。CMS分離出三個層面[ 2 ]:
1.1 后臺內容管理
新聞發布系統,關鍵字搜索系統,角色管理(用戶組管理)系統,權限控制系統,欄目管理系統,數據備份與恢復系統,系統清理等。
1.2 模板應用管理
將頁面分割成多個部分,抽離出頁面的共性,作為模板中靜態內容部分,拆解出動態部分,動態獲取內容,整合ftl模板,生成大部分最終的輸出頁面,其中包括網站首頁,子頻道/專題頁(二級頁面),新聞詳情頁等動態頁面。
1.3 模塊功能管理[ 3 ]
分離后臺子系統的內容管理邏輯和前臺的表現或發布之間的耦合,使得模板和后臺子系統之間只具有傳遞的關系,后臺子系統的插拔和組合也將變得更加容易。
2 系統架構
內容管理系統采用當前JavaEE主流的SSH框架和各種成熟的主流技術完成其設計、實現其功能:
1)以SpringMVC、Spring4、Hibernate4作為整個CMS的框架主干,使用xml文件配置方式配置框架,在web.xml中加載配置文件。
2)使用Spring和Hibernate的注解機制,簡化bean的配置和實體的配置,實現持久化。
3)采用MySQL數據庫和Tomcat服務器作為整個CMS的運行支撐。
4)采用Freemaker作為模板引擎,用作表現層的實現技術,生成靜態HTML頁面。
5)采用DWR(Direct Web Remoting)遠程服務器端Ajax開源框架改善web頁面與Java類交互。
3 CMS系統設計與實現
3.1 系統框架搭建
3.1.1 Spring整合Hibernate
Spring和Hibernate在SSH框架中處于不同的架構層次,其中Spring主要關注業務邏輯之間的組合關系,并提供管理,而Hibernate在完成了OR的映射后,將映射之后的Session對象交給Spring來管理,使用Spring的IOC功能管理Hibernate的SessionFactory對象,使用spring的AOP功能實現聲明式的事務管理,使開發人員不用再去關心SQL語句,直接與對象打交道。
3.1.2 整合SpringMVC
SpringMVC是一個基于DispatcherServlet的MVC框架,配置DispatcherServlet,管理我們希望它管理的內容,每一個請求最先訪問DispatcherServlet,DispatcherServlet負責轉發每一個Request請求給相應的Handler,Handler處理以后,填充到Response中,通過Response返回相應的視圖(View)和模型(Model)。
在配置完Spring、Hibernate及SpringMVC之后,在web.xml中完成spring-servlet.xml和springContext.xml的引入和配置,整個系統的基本框架就搭建完成。
3.2 功能模塊[ 4 ]設計
整個系統分為七大功能模板:權限管理、網站信息管理、導航欄目管理、新聞管理、數據備份與恢復、上傳與下載管理,首頁圖片管理。對其中的兩個部分進行說明。
3.2.1權限管理模塊
權限管理的核心是安全授權和角色相聯系,用戶首先要成為相應的角色組成員,才能獲得對應的權限。如網站的管理員,必須先由網站超級管理員進行注冊,并分配角色和權限后,才能對網站進行管理。角色可以根據部門中不同的工作創建,再根據用戶的責任和資格分配角色,用戶就可以獲得對應的權限。隨著新功能的增加和刪減,角色可以分配更多的權限,也可以根據需要撤銷相應的權限。
3.2.2模板管理模塊
內容模板是內容模型的載體,系統通過內容模板來描述內容模型。內容模型中可能存在多層嵌套的情況,即一個內容模型可能由很多更小的內容模型組成。將一個內容模型看作是一個內容組件,采用了模塊化的處理方法,把模型分解成多個模塊,然后再使用include方式將所有的模塊都組合在一個模板中。
4 結束語
本文實現了一套基于JavaEE的SSH框架實現的CMS系統,采用多層體系架構,遵從開放標準,提高了開發效率,簡化了內容管理,是一個易于維護,易于集成,并具有很大靈活性的內容管理系統。
參考文獻:
[1] 郭廣軍,謝東,李魏豪.基于CMS的網站系統開發技術研究及應用.計算機工程與設計,2010,31 (11):2500-2502.
[2] 耿璐,聶足.基于CMS的企業網站的設計與實現[J].計算機工程與設計,2009,30(2):351-357.
[3] 黃煒,李龍澍,李學俊,林勝華. 基于UML的CMS系統設計與實現.計算機工程與設計,2009,30(5):1249-1251.
[4] Doug L. Simpson. Content for One: Developing a Personal Content Management System. Acm Siguccs Conference on User Services,2005:338-342.