陳焜
【摘 要】本文采用Eclipse4.5+Mysql5.5開發環境,結合JavaWeb、Struts2等多種技術,實現了一個新聞發布系統。通過DTO和DAO實現數據庫層的訪問,而Struts2實現表現層。軟件經過測試,滿足新聞發布的需求,也達到了便于維護的目的。
【關鍵詞】Java;Struts2;Web;應用
1.引言
當今社會是一個信息化的社會,新聞作為信息的一部分有著信息量大,類別繁多,形式多樣的特點,新聞發布系統的概念就此提出。新聞發布系統的提出使電視不再是唯一的新聞媒體,從此以后網絡也充當了一個重要的新聞媒介的功能。本文用Eclipse4.5和Mysql5.5設計一個新聞發布系統,方便人們的工作和生活。
2.Struts2技術簡介
Struts 2是Struts的下一代產品,是在 struts 1和WebWork的技術基礎上進行了合并的全新的Struts 2框架。其全新的Struts 2的體系結構與Struts 1的體系結構差別巨大。Struts 2以WebWork為核心,采用攔截器的機制來處理用戶的請求[1],這樣的設計也使得業務邏輯控制器能夠與ServletAPI完全脫離開,所以Struts 2可以理解為WebWork的更新產品。雖然從Struts 1到Struts 2有著太大的變化,但是相對于WebWork,Struts 2的變化很小。
3.系統功能模塊
該系統分如下幾個模塊:
登錄驗證子系統:
系統啟動時,將出現登錄窗口,要求用戶輸入正確的用戶名和密碼,否則無法進入系統。
新聞模塊子系統:
本系統中,將所有新聞分到不同的模塊,本子系統就是對新聞模塊進行添加、刪除、修改和瀏覽:
新聞子系統:
本子系統對新聞進行添加、刪除、修改和瀏覽:
前臺子系統:
本子系統在前臺以不同模塊展示所有新聞,并可對新聞進行搜索,點擊新聞后可以查看新聞詳細信息。
4.關鍵實現技術
4.1數據庫設計
4.2 DB類
由于該系統多處需要連接數據庫然后執行SQL命令,為了提高代碼的重用率,減少代碼冗余,便于以后維護,故將所有操作數據庫的代碼放到一個名為DB的類中,在該類中定義一個連接類型的字段,在構造函數中實現數據庫的連接。
4.3 DTO與DAO
DTO是Data Transfer Object數據傳輸對象,這個對象封裝你需要傳輸的數據 在模型,視圖,控制這三個層傳遞[2]。根據上述三張數據表,對應的本系統使用了三個DTO:adminDto、moduleDto、newsDto。并且由于moduleDto與newsDto是一對多的關系,所以在moduleDto中有List
DAO是Data Access Object數據訪問接口,數據訪問:故名思義就是與數據庫打交道。夾在業務邏輯與數據庫資源中間。本系統使用了三個DAO:adminDAO、moduleDAO、newsDAO,這些DAO的功能主要是根據系統的業務邏輯而定,主要是對三張數據表的增刪改查,但是它們所有的方法使用的參數及返回值是DTO或DTO列表。
4.4權限管理的實現
本系統要求用戶登錄成功后才能查看系統中的某個視圖資源;否則直接轉入登錄頁面。對于上面的需求,可在每個Action執行實際處理邏輯之前,先執行權限檢查邏輯,但這種做法不利于代碼復用。因為大部分Action里的權限檢查代碼都大同小異,故將這些權限檢查邏輯放在攔截器中將會更加優雅。
檢查用戶是否登錄,通常都是通過跟蹤用戶的HTTP Session來完成的,通過ActionContext即可訪問到Session中的屬性,攔截器的intercept(ActionInvocation arg0)方法的agr0參數可以很輕易地訪問到請求相關的ActionContext實例。同時可以在攔截器中實現亂碼的處理:
5 .結束語
本系統的開發環境為Eclipse4.5,以Mysql5.5為后臺數據庫支撐環境,設計出了有實用價值的新聞發布系統,該系統與同類系統相比,不僅性能較高、運行較為穩定,而且可維護性和可擴展型都比較出色。
參考文獻:
[1] 李剛. Struts 2.x權威指南第三版[M].電子工業出版社,2012,10.
[2] 李剛.輕量級Java EE企業應用實戰第四版[M].電子工業出版社,2014,10.