楊 楊
(鄭州華信學院信息工程系,河南鄭州451100)
基于SSH的科技競賽報名系統(tǒng)研究
楊 楊
(鄭州華信學院信息工程系,河南鄭州451100)
基于MVC設計模式,采用SSH框架技術的集成,實現(xiàn)項目開發(fā)“高內(nèi)聚,低耦合”的思想,減輕科技競賽報名系統(tǒng)開發(fā)人員重新建立解決復雜問題方案的負擔和精力,提高系統(tǒng)的重用性、適用性以及可維護性.
設計模式;框架;集成
基于SSH的科技競賽報名系統(tǒng)采用了J2EE的MVC設計模式,在系統(tǒng)設計中主要研究了Struts、Hibernate、Spring這三種技術在系統(tǒng)中的應用,摒棄傳統(tǒng)的系統(tǒng)開發(fā)思想,一方面實現(xiàn)模型層(Model),視圖層(View)和控制層Controller)相互獨立以及“高內(nèi)聚、低耦合”,另一方面實現(xiàn)表示層的異步訪問控制機制,從而提高系統(tǒng)的重用性、適用性以及可維護性,同時降低開發(fā)和維護用戶接口的技術含量.
Struts、Spring和Hibernate三種技術融合而成的框架是當前企業(yè)采用率較高的框架技術之一,它是J2EE領域的領頭軍,逐步成為企業(yè)標準.
Struts框架是MVC設計模式一個優(yōu)秀的組件.它定義了通用的Controller(控制器),通過配置文件隔離了Model模型和View視圖,從而將整個系統(tǒng)分為三大模塊,這三大模塊相互獨立,各模塊開發(fā)人員獨立完成自己模塊的工作,因此,系統(tǒng)的開發(fā)時間大大縮短,效率顯著提高.
Spring大大簡化了企業(yè)級應用程序開發(fā),它的大小與開銷都只占據(jù)了很小一部分容量,因此,在企業(yè)應用系統(tǒng)中嵌入Spring框架是非常輕而易舉的,它主要作為依賴注入容器和AOP實現(xiàn)存在,同時提供了聲明式事物、對DAO層支持等簡化開發(fā)功能.此外,Spring框架大大的簡化了企業(yè)級應用系統(tǒng)的開發(fā),成為J2EE開發(fā)的“一站式”解決方案.
Hibernate是一個持久化框架,它的出現(xiàn),同樣給J2EE的開發(fā)帶來了春天,它使得程序員對數(shù)據(jù)庫的操作也像利用面向對象思想編寫程序一樣,可以隨心所欲的操縱數(shù)據(jù)庫,并且簡化將對象數(shù)據(jù)保存到數(shù)據(jù)庫中或者從數(shù)據(jù)庫中讀取數(shù)據(jù)并封裝到對象的工作.通過簡單配置和編碼即可替代JDBC繁瑣的代碼.
2.1 系統(tǒng)設計
科技競賽報名系統(tǒng)框架整合流程為:客戶端發(fā)送的http請求到達過濾器,ActionMapper接收相應請求并將其發(fā)送至與之對應的Action,通過Hibernate處理數(shù)據(jù)庫操縱,最終系統(tǒng)將Spring依賴注入到業(yè)務邏輯層,使整個系統(tǒng)框架結構變得簡單,易于操作.此項目結構如圖1所示.
圖1 項目結構
2.2 系統(tǒng)實現(xiàn)
2.2.1 添加Struts支持
以用戶注冊功能為例,在index.jsp頁面單擊“用戶注冊”超鏈接,轉到agreement.jsp頁面,在agreement.jsp頁面單擊“我同意”按鈕,轉到info.jsp頁面,單擊“不同意”按鈕回到index.jsp.
圖2 struts機制
在用戶注冊頁面填寫注冊信息,并提交給Action,由Action進行頁面處理.Struts運行機制如圖2所示.
配置struts-config.xml文件,創(chuàng)建Action繼承DispatchAcion:
public class UserAction extends DispatchAction{private UserBiz userBiz=newUserBizImpl();public Action-Forward toAdd(...){return mapping.findForwward(“user”);} public ActionForward doAdd(...){
UserFormmyForm=(UserForm)form;User item=my-Form.getItem();if(this.userBiz.isExists(item.getUserName())){ request.setAttribute("msg","");return mapping.findForward("user");}else{this.userBiz.add(item);}} }
2.2.2 Hibernet關聯(lián)
給項目添加Hibernate支持,生成Hibernate配置文件、生成映射文件,最后導入BaseHibernateDAO文件,系統(tǒng)中所有DAO的Hibernate實現(xiàn)類都將繼承自這個類.
(1)配置hibernate.cfg.xml,設置數(shù)據(jù)庫連接信息.
(2)生成實體類和相應的映射文件.
(3)配置關聯(lián),如many-to-one關聯(lián)等.
(4)創(chuàng)建DAO層.
(5)創(chuàng)建實現(xiàn)類,繼承自BaseHibenateDAO.
public class GoodsDAOHibimpl extends BaseHibernateDAO implements GoodsDAO{public void add(Goods item){super.add(item);
}public void del(Serializable key){super.del(key, Goods.class);}public Goods get(Serializable key){Goods item=(Goods)super.get(key,Goods.class);return item;}}
2.2.3 Spring依賴注入
使用Spring的Action代理,直接把Biz對象注入到Struts Action中.注入次序如圖3所示.
圖3 Sring注入
對Hibernate進行集成,將SessionFactory注入到Base-HibernateDAO,在Biz層采用Spring聲明式事務的方式添加事物支持.如圖4.
圖4 Sring與Hibernate集成
給Biz層方法添加事務支持.
此科技競賽報名系統(tǒng)的設計通過Spring框架的依賴注入,將原本復雜的框架結構變得簡單,清晰.利用Hibernate對數(shù)據(jù)庫的操作,大大簡化了持久層的訪問,同時輕松集成Strus框架,真正實現(xiàn)了面向對象、面向接口程序設計.通過此系統(tǒng)的開發(fā),使學生真正融入到實際項目中去,實現(xiàn)學校與社會的零距離,同時,此系統(tǒng)的開發(fā)與實現(xiàn)大大提高了高??萍紕?chuàng)新活動的效率,對高校實踐教學有著重要的實際指導意義.
〔1〕劉中兵.開發(fā)者突擊:Java Web主流框架整合開發(fā)J2EE+Struts+Hibernate+Spring[M].北京:電子工業(yè)出版社,2008.
〔2〕高洪巖.基于Struts2+Hibernate+Spring實用開發(fā)指南[M].北京:化學工業(yè)出版社,2010.282.
〔3〕王鈺淞.基于SSH框架的統(tǒng)一認證平臺研究與實現(xiàn)[J].科技資訊,2010(4):4—5.
〔4〕張贊.基于SSH的J2EE架構在考務管理中的應用[J].農(nóng)業(yè)網(wǎng)絡信息,2009(2):121—122,133.
TP311.5
A
1673-260X(2013)08-0017-02
河南省民辦教育協(xié)會項目資助(hmx20120053)