999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Struts和Hibernate框架的Web應(yīng)用研究與實(shí)現(xiàn)

2015-05-30 16:26:20錢(qián)新杰等
科技資訊 2015年9期

錢(qián)新杰等

摘 要:良好的體系結(jié)構(gòu)和開(kāi)發(fā)框架對(duì)一個(gè)Web應(yīng)用的設(shè)計(jì)、開(kāi)發(fā)、擴(kuò)展、維護(hù)具有重要的意義,可以很好地提高代碼的復(fù)用性,滿(mǎn)足系統(tǒng)的“高內(nèi)聚低耦合”原則。Struts是一種基于MVC的Web框架,實(shí)現(xiàn)了表示層和業(yè)務(wù)邏輯層的分離,提高了系統(tǒng)的開(kāi)發(fā)維護(hù)效率;Hibernate是一種開(kāi)源的持久層框架,保證系統(tǒng)具有更好的移植性,降低了數(shù)據(jù)庫(kù)設(shè)計(jì)的復(fù)雜度。

關(guān)鍵詞:MVC Struts Hibernate 框架

中圖分類(lèi)號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2015)03(c)-0021-01

隨著Java EE技術(shù)應(yīng)用的不斷增多,選擇一種高效的實(shí)用的軟件開(kāi)發(fā)框架成為軟件開(kāi)發(fā)設(shè)計(jì)人員的基本要求。在Web應(yīng)用開(kāi)發(fā)設(shè)計(jì)中,一個(gè)成熟的框架不但可以提高代碼的重用性,減少重復(fù)代碼開(kāi)發(fā)的工作量,降低開(kāi)發(fā)成本,還可以保證系統(tǒng)具有較好的移植性、可維護(hù)性和可擴(kuò)展性,降低數(shù)據(jù)庫(kù)設(shè)計(jì)的復(fù)雜度。目前基于Java EE平臺(tái)上常見(jiàn)的Web框架有:Struts、spring、Hibernate等。

1 Struts和Hibernate框架與Web應(yīng)用

MVC模式是一個(gè)存在于服務(wù)器端表達(dá)層的模型,它是“Model(模型)--View(試圖)--Controller(控制器)”三個(gè)單詞的縮寫(xiě),MVC模式將應(yīng)用分開(kāi),改變應(yīng)用之間的高度耦合。

Struts的含義是“支干、支柱”,它的目的是為了幫助減少在運(yùn)用MVC設(shè)計(jì)模型來(lái)開(kāi)發(fā)Web應(yīng)用的時(shí)間。實(shí)質(zhì)上就是在JSP Model2的基礎(chǔ)上實(shí)現(xiàn)的一個(gè)MVC框架,模型為JavaBean和EJB組件,控制器為ActionServlet和Action,視圖為JSP和Struts客戶(hù)化標(biāo)簽。Struts將Servlet和JSP標(biāo)記用作實(shí)現(xiàn)的一部分。它繼承了MVC的各項(xiàng)特性,并根據(jù)JavaEE的特點(diǎn)作了相應(yīng)的變化和擴(kuò)展。

在Struts體系結(jié)構(gòu)中視圖就是一組JSP文件,在這些JSP文件中既沒(méi)有業(yè)務(wù)邏輯,也沒(méi)有模型信息,只有標(biāo)準(zhǔn)的JSP標(biāo)簽或客戶(hù)化標(biāo)簽。模型表示應(yīng)用程序的狀態(tài)和業(yè)務(wù)邏輯,對(duì)于大型應(yīng)用,業(yè)務(wù)邏輯通常由JavaBean或EJB組件來(lái)實(shí)現(xiàn)。控制器的主要功能從客戶(hù)端接收請(qǐng)求,決定執(zhí)行什么業(yè)務(wù)邏輯功能,然后將產(chǎn)生下一步用戶(hù)界面的責(zé)任委派給一個(gè)適當(dāng)?shù)腣iew組件。

Hibernate是一個(gè)O/R Mapping(對(duì)象/關(guān)系映射)框架,提供強(qiáng)大的對(duì)象與關(guān)系數(shù)據(jù)庫(kù)映射及查詢(xún)功能,即是將Java中的對(duì)象和對(duì)象間的關(guān)系,對(duì)應(yīng)到關(guān)系型數(shù)據(jù)庫(kù)中的表格和表格間的關(guān)系,也能夠把關(guān)系型數(shù)據(jù)庫(kù)中的表格和表格間的關(guān)系對(duì)應(yīng)到Java中的對(duì)象和對(duì)象間的關(guān)系。它的基本工作原理是Hibernate通過(guò)對(duì)JDBC進(jìn)行封裝,并對(duì)關(guān)系數(shù)據(jù)庫(kù)與Java類(lèi)進(jìn)行mapping,從而來(lái)實(shí)現(xiàn)對(duì)關(guān)系數(shù)據(jù)庫(kù)的面向?qū)ο蠓绞降牟僮鳎@樣傳統(tǒng)的JDBC+SQL的操作數(shù)據(jù)方式就得到了改變,程序開(kāi)發(fā)人員能夠用更多的時(shí)間和精力來(lái)進(jìn)行對(duì)象方面的開(kāi)發(fā)。同時(shí)為各種不同的數(shù)據(jù)庫(kù)提供了統(tǒng)一操作的接口,讓Hibernate對(duì)幾乎所有的數(shù)據(jù)庫(kù)開(kāi)發(fā)都支持,從而使應(yīng)用程序的跨數(shù)據(jù)庫(kù)開(kāi)發(fā)變?yōu)榱丝赡堋?/p>

2 Web系統(tǒng)應(yīng)用實(shí)例

下面以一個(gè)課程成績(jī)管理系統(tǒng)Web應(yīng)用為例,闡述在Struts+Hibernate框架技術(shù)下如何進(jìn)行實(shí)現(xiàn)。由于系統(tǒng)功能在事務(wù)處理邏輯與代碼設(shè)計(jì)上具有較多的相似性,因此只選取系統(tǒng)Hibernate實(shí)現(xiàn)、登錄模塊實(shí)現(xiàn)2個(gè)具有代表性的模塊功能加以闡述。

2.1 Hibernate初始化

首先需要定義一個(gè)類(lèi)來(lái)對(duì)Hibernate進(jìn)行初始化,并由它來(lái)創(chuàng)建全局的Session

Factory實(shí)例,提供創(chuàng)建Session實(shí)例、關(guān)閉Session實(shí)例、打開(kāi)/關(guān)閉事務(wù)和重新創(chuàng)建SessionFactory實(shí)例的方法。這里定義一個(gè)HibInit類(lèi)來(lái)完成上述的功能,具體實(shí)現(xiàn)SessionFactory創(chuàng)建、session獲取和關(guān)閉、事務(wù)開(kāi)始、關(guān)閉和回滾等功能。

SessionFactory創(chuàng)建部分的主要代碼為:

try{sessionFactory=new Configuration().configure().buildSessionFactory();}

catch(Throwable ex){ex.printStack

Trace();

System.out.println("SessionFactory初始化失敗");

throw new ExceptionInInitializerError(ex);

}

2.2 映射文件創(chuàng)建

通過(guò)對(duì)數(shù)據(jù)庫(kù)的分析,已知系統(tǒng)中主要包含系統(tǒng)管理員表(admin)、教師信息表(teacher)、學(xué)生信息表(student)、課程信息表(course)、班級(jí)信息表(class)、學(xué)生課程與成績(jī)表(enrol)六個(gè)表,為了實(shí)現(xiàn)用Hibernate來(lái)進(jìn)行對(duì)象持久化操作,就需要對(duì)上述的六個(gè)表進(jìn)行Hibernate映射文件創(chuàng)建。創(chuàng)建的映射文件為XX.xml,方法用Hibernate輔助工具自動(dòng)生成。

2.3 持久化類(lèi)創(chuàng)建

進(jìn)行完映射文件創(chuàng)建后,還需要對(duì)持久化類(lèi)進(jìn)行創(chuàng)建,并將創(chuàng)建好的持久化類(lèi)放在映射文件的同一個(gè)包中,以實(shí)現(xiàn)對(duì)各類(lèi)基本信息的持久化操作。

2.4 Struts配置

在課程成績(jī)管理系統(tǒng)登錄模塊中,對(duì)用戶(hù)所提交的信息進(jìn)行驗(yàn)證標(biāo)識(shí)以及不同角色對(duì)應(yīng)頁(yè)面跳轉(zhuǎn)功能主要是通過(guò)配置登錄的LoginForm進(jìn)行實(shí)現(xiàn)的,以此首先必須在struts-config.xml中進(jìn)行相應(yīng)的配置,基本代碼如下:

省略

2.5 LoginForm模型創(chuàng)建

在課程成績(jī)管理系統(tǒng)登錄模塊中,還需要在這里創(chuàng)建一個(gè)繼承于ActionForm的模型,用于向Action提交信息,部分基本代碼為:

public class LoginForm extends ActionForm{

public void reset(ActionMapping mapping,HttpServletRequest request){}

public void setPassword(String password){this.password=password;}

}

3 結(jié)語(yǔ)

通過(guò)對(duì)Web系統(tǒng)應(yīng)用實(shí)例程成績(jī)管理系統(tǒng)分析,闡述了Struts+Hibernate框架實(shí)現(xiàn)過(guò)程,很好的提高了代碼的重用性,降低開(kāi)發(fā)成本,并保證了系統(tǒng)良好的移植性、可維護(hù)性和可擴(kuò)展性,降低了數(shù)據(jù)庫(kù)設(shè)計(jì)的復(fù)雜度,提高了開(kāi)發(fā)效率。

參考文獻(xiàn)

[1] 李剛.經(jīng)典Java EE企業(yè)應(yīng)用實(shí)戰(zhàn)[M].北京:電子工業(yè)出版社,2010.

[2] 劉偉,張利國(guó).Hibernate開(kāi)發(fā)與實(shí)戰(zhàn)[M].北京:電子工業(yè)出版社.

[3] (美)Christian.Hibernate實(shí)戰(zhàn)[M].北京:人民郵電出版社,2008.

主站蜘蛛池模板: 永久免费AⅤ无码网站在线观看| 免费观看国产小粉嫩喷水| 国产亚洲精品资源在线26u| 最新加勒比隔壁人妻| 亚洲欧美人成电影在线观看| 成人无码一区二区三区视频在线观看| 国产精品人人做人人爽人人添| 久久综合色天堂av| 久久这里只有精品国产99| 亚洲综合天堂网| 青青青国产视频| 国产精品久久自在自线观看| 午夜电影在线观看国产1区| 天天做天天爱天天爽综合区| 四虎永久在线精品影院| 白丝美女办公室高潮喷水视频| 国产麻豆精品在线观看| 91久久偷偷做嫩草影院免费看| 亚洲va视频| 国产精品区网红主播在线观看| 精品人妻系列无码专区久久| 亚洲av日韩av制服丝袜| 日韩高清一区 | 制服丝袜无码每日更新| 国产真实乱人视频| 亚洲成人播放| 午夜福利在线观看入口| 久久无码av三级| 欧美中文字幕无线码视频| 久久久久国产精品免费免费不卡| 色老二精品视频在线观看| 午夜日本永久乱码免费播放片| 成年av福利永久免费观看| AV不卡国产在线观看| 国产一级视频在线观看网站| 国产一区二区福利| 国产精品第| 97久久精品人人做人人爽| 欧美精品亚洲日韩a| 亚卅精品无码久久毛片乌克兰| 国产真实乱子伦视频播放| 成人国产精品一级毛片天堂| 一级毛片在线播放免费观看| 国产精品无码一二三视频| 一本一道波多野结衣一区二区| 中文字幕色站| 狠狠五月天中文字幕| 99在线国产| a免费毛片在线播放| 中文一区二区视频| 青草视频在线观看国产| 国国产a国产片免费麻豆| 国产成人无码Av在线播放无广告| 国产簧片免费在线播放| 国产成人一区二区| 茄子视频毛片免费观看| 亚洲天堂伊人| 国产福利小视频在线播放观看| 91九色最新地址| 日韩在线观看网站| 99视频全部免费| 国产精品欧美在线观看| 日韩欧美中文在线| 四虎综合网| 日本不卡在线| 极品私人尤物在线精品首页| 成人精品午夜福利在线播放| 国产精品一区二区国产主播| 国产激情影院| 亚洲AⅤ无码日韩AV无码网站| 亚洲人成影院午夜网站| 91成人试看福利体验区| 国产探花在线视频| 国产av无码日韩av无码网站| 国产激爽大片在线播放| 午夜国产大片免费观看| 91免费片| 亚洲经典在线中文字幕| 欧美亚洲日韩不卡在线在线观看| 亚洲中文字幕97久久精品少妇| 午夜在线不卡| 国产精品美乳|