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

基于SSH整合架構(gòu)的研究與應(yīng)用

2012-11-22 01:16:04張建軍劉虎倪芳英吉勇祥
關(guān)鍵詞:頁(yè)面數(shù)據(jù)庫(kù)用戶

張建軍,劉虎,倪芳英,吉勇祥

(湖南師范大學(xué)工學(xué)院,中國(guó) 長(zhǎng)沙 410081)

隨著互聯(lián)網(wǎng)與Web應(yīng)用編程技術(shù)的快速發(fā)展,Web應(yīng)用平臺(tái)不僅要具有以前簡(jiǎn)單的信息發(fā)布功能,而且更要具備動(dòng)態(tài)、實(shí)時(shí)處理大量交互信息的功能,且這種處理大量交互信息的功能還在網(wǎng)絡(luò)技術(shù)的不斷發(fā)展與普及的過(guò)程中,不斷變化、擴(kuò)展與提高.那么,如何能高效、方便開(kāi)發(fā)出應(yīng)用靈活、功能強(qiáng)大、開(kāi)發(fā)過(guò)程簡(jiǎn)單快捷的Web應(yīng)用平臺(tái)也就成了大家關(guān)注的課題[1].

當(dāng)前流行的Struts+Spring+Hibernate(下面簡(jiǎn)稱SSH)架構(gòu),為高效、方便開(kāi)發(fā)出應(yīng)用靈活、功能強(qiáng)大的Web應(yīng)用平臺(tái)提供了完整的、輕量級(jí)J2EE軟件開(kāi)發(fā)模型,經(jīng)常用于構(gòu)建高質(zhì)量的Web應(yīng)用.但是,開(kāi)發(fā)Web應(yīng)用平臺(tái)除了要考慮應(yīng)用平臺(tái)的功能強(qiáng)大、系統(tǒng)的健壯和穩(wěn)定等這些性能指標(biāo)外,還要把服務(wù)器與用戶之間的快速交互作為衡量Web應(yīng)用平臺(tái)動(dòng)態(tài)、實(shí)時(shí)處理交互信息的重要指標(biāo)來(lái)考慮.AJax就是為了解決“與用戶快速交互”這一問(wèn)題提出的方法與思路,而ExtJS正是實(shí)現(xiàn)AJax的一種技術(shù),它主要用于構(gòu)建前端用戶界面,從而實(shí)現(xiàn)與后臺(tái)技術(shù)無(wú)關(guān)的前端AJax技術(shù)框架,能夠?qū)崿F(xiàn)系統(tǒng)與用戶的快速交互[2-5].本文以開(kāi)發(fā)“基于條形碼的設(shè)備管理系統(tǒng)”為背景,通過(guò)研究應(yīng)用SSH與ExtJS的整合架構(gòu)開(kāi)發(fā)Web應(yīng)用平臺(tái)的實(shí)現(xiàn)方法,構(gòu)建了一個(gè)靈活、易于擴(kuò)展、易于維護(hù)的多層Web應(yīng)用平臺(tái).同時(shí),這種基于SSH與ExtJS 整合架構(gòu)將顯示、業(yè)務(wù)運(yùn)算、數(shù)據(jù)庫(kù)等功能完全分離,從而實(shí)現(xiàn)了系統(tǒng)的低耦合性和良好的可維護(hù)性.

1 SSH架構(gòu)技術(shù)

目前,JAVA中MVC的常用開(kāi)發(fā)方式主要有以下幾種:Jsp+Servlet+JavaBean(EJB), Jsp+JavaBean(Controller)+ JavaBean(EJB)(Model), Jsp+ Struts+ JavaBean(EJB), SSH (Struts + Spring + Hibernate)[6-9].SSH架構(gòu)整合Spring、Struts和Hibernate這三項(xiàng)當(dāng)前流行的Java Web開(kāi)源框架技術(shù),利用它可以構(gòu)建出靈活、易于擴(kuò)展、易于維護(hù)的多層Web應(yīng)用程序. SSH架構(gòu)在結(jié)構(gòu)上采用分層原理,從整體上可以分為4層如圖1所示.

圖1 SSH架構(gòu)示意圖 圖2 ExtJS+Spring+Hibernate架構(gòu)示意圖

Spring是為解決企業(yè)應(yīng)用開(kāi)發(fā)復(fù)雜性而由Rod Hohnson創(chuàng)建的、支持Inversion of Control(IOC控制反轉(zhuǎn))和Aspect Oriented Programming(AOP面向切面編程)、輕量級(jí)的、開(kāi)源的容器框架.通過(guò)利用IOC技術(shù),可以方便地解除程序間的過(guò)度耦合、簡(jiǎn)化開(kāi)發(fā);通過(guò)利用對(duì)AOP編程技術(shù)的豐富支持,分離應(yīng)用業(yè)務(wù)邏輯與系統(tǒng)服務(wù),提高系統(tǒng)內(nèi)聚性;同時(shí)通過(guò)提供對(duì)Struts、Hibenate等框架的支持,方便集成其他優(yōu)秀框架[10].

Struts由the Apache Software Foundation(Apache軟件基金會(huì))提供的、免費(fèi)開(kāi)源的、可創(chuàng)建Java Web應(yīng)用解決方案的Web層應(yīng)用框架,用來(lái)幫助開(kāi)發(fā)者高效創(chuàng)建基于MVC模式的J2EE Web應(yīng)用.它提供3個(gè)主要部件:用于映射URL的請(qǐng)求句柄、傳遞控制的響應(yīng)句柄及用于交互的標(biāo)簽庫(kù).Struts框架也能夠與SOAP與AJax等技術(shù)進(jìn)行良好兼容[11].

Hibernate是基于Java語(yǔ)言下對(duì)象關(guān)系映射的、工作在持久層的、解決方案與開(kāi)源框架.其設(shè)計(jì)宗旨是將軟件開(kāi)發(fā)人員從大量相同的數(shù)據(jù)持久層相關(guān)編程工作中解放出來(lái).它支持封裝、多態(tài)等面向?qū)ο缶幊烫匦裕⒉恍枰獮槌志妙愄峁┗惢蚪涌趶亩鴮?shí)現(xiàn)“透明”持久,同時(shí)支持Hibernate Query Language (HQL)、Java Persistence Query Language (JPAQL)、SQL等查詢語(yǔ)言,提供高效查詢支持[12-13].

2 ExtJS+SSH整合架構(gòu)

2.1 ExtJS框架技術(shù)

ExtJS是由Scencha公司提供的、可在任一瀏覽器上構(gòu)建豐富應(yīng)用的Java腳本框架.它為用戶利用MVC模式創(chuàng)建Web應(yīng)用提供了很好的數(shù)據(jù)包支持,提供諸如:圖表、網(wǎng)格、樹(shù)、菜單等大量的、流行的UI插件(即使用戶需要的插件不在核心插件庫(kù)中,也可以在Scencha提供的網(wǎng)絡(luò)社區(qū)資源中找到)及定期維護(hù)的、豐富的學(xué)習(xí)資源(如API使用文檔等),以滿足不同階層用戶的應(yīng)用需求.ExtJS提供的圖表幾乎支持任何Java腳本與框架,并可在流行操作系統(tǒng)上的任一款瀏覽器上進(jìn)行完美顯示.ExtJS的最新版本為4.0,在原有基礎(chǔ)上新增了350多個(gè)API及50多個(gè)新類,并在提供的SDK工具包中提供了代碼優(yōu)化功能,以幫助開(kāi)發(fā)者優(yōu)化Java腳本實(shí)現(xiàn)對(duì)瀏覽器的更好支持[14].

2.2 ExtJS+SSH整合架構(gòu)

ExtJS+SSH新架構(gòu)保留了Spring+Hibemate的組合,從表示層、控制層和業(yè)務(wù)邏輯層入手,使用ExtJS實(shí)現(xiàn)Struts框架中的頁(yè)面表示,架構(gòu)整合的基本原理如圖2所示.

3 設(shè)備管理Web平臺(tái)的實(shí)現(xiàn)

基于條形碼的設(shè)備管理Web平臺(tái)是利用ExtJS+SSH整合架構(gòu)來(lái)實(shí)現(xiàn)的管理信息平臺(tái).該系統(tǒng)包括:系統(tǒng)管理、客戶管理、設(shè)備管理、銷售管理、統(tǒng)計(jì)管理、公司文檔及備份管理等功能模塊.系統(tǒng)登陸后的界面如圖3所示.

圖3 設(shè)備管理Web平臺(tái)登陸界面

3.1 ExtJS框架技術(shù)的應(yīng)用

考慮到傳統(tǒng)JSP編程在數(shù)據(jù)提交時(shí)可能會(huì)攜帶有表單,表單中的Action屬性會(huì)暴露自己服務(wù)器的請(qǐng)求方式和參數(shù),外部用戶可以模擬服務(wù)器請(qǐng)求而獲得內(nèi)部信息或內(nèi)部操作權(quán)限.為此,我們采用了ExtJS框架技術(shù).所有頁(yè)面由JS完成和自己所編寫的JS過(guò)濾器相結(jié)合,在過(guò)濾器中對(duì)用戶進(jìn)行驗(yàn)證,若是系統(tǒng)用戶才能加載JS腳本,否則將會(huì)調(diào)轉(zhuǎn)至登錄頁(yè)面;因此外部用戶無(wú)法竊取本系統(tǒng)的JS代碼,這樣做提高了頁(yè)面信息的保密性.頁(yè)面采用的JS引入方式如〈script type=“text/javascript” src=“〈%=basePath %〉 js/user.js? uid={user.emplNo}”〉 uid為攜帶的用戶ID.JS.使用ExtJS框架技術(shù)的頁(yè)面代碼如清單1所示.

3.2 數(shù)據(jù)庫(kù)的配置

Hibernate的配置包括兩個(gè)方面:一方面是ORM的配置,一方面是hiberante.cfg.xm的配置.ORM(Object References Mapping)對(duì)象關(guān)系映射,由于hibernate 操作的是對(duì)象而不是數(shù)據(jù)庫(kù)中的記錄與字段,所以必須要配置一個(gè)對(duì)象與數(shù)據(jù)庫(kù)表的一一對(duì)應(yīng)關(guān)系.這樣做了以后,開(kāi)發(fā)者只需要了解對(duì)象與對(duì)象之間的關(guān)系,無(wú)需了解數(shù)據(jù)庫(kù)里是什么表,什么字段.而且這樣做隔離了開(kāi)發(fā)代碼與數(shù)據(jù)庫(kù)的耦合,提高了開(kāi)發(fā)平臺(tái)的移植性.配置代碼如清單2所示.

事務(wù)在計(jì)算機(jī)術(shù)語(yǔ)中是指訪問(wèn)并可能更新數(shù)據(jù)庫(kù)中各種數(shù)據(jù)項(xiàng)的一個(gè)程序執(zhí)行單元(unit).事務(wù)應(yīng)該具有4個(gè)屬性:原子性、一致性、隔離性、持續(xù)性[15].所以我們?cè)趫?zhí)行一組復(fù)雜的數(shù)據(jù)庫(kù)操作時(shí)應(yīng)該給其配置事務(wù),這樣可以保證數(shù)據(jù)的完整性、也避免了多線程同時(shí)操作數(shù)據(jù)庫(kù)而帶來(lái)的讀贓數(shù)據(jù)問(wèn)題,并且也簡(jiǎn)化了這樣的企業(yè)級(jí)別分布式應(yīng)用的構(gòu)造.為spring事務(wù)的配置如清單3所示.

4 結(jié)束語(yǔ)

本文通過(guò)研究基于MVC模式的三層結(jié)構(gòu)體系,以流行的Web開(kāi)發(fā)技術(shù)—SSH構(gòu)架為基礎(chǔ),利用ExtJS框架技術(shù),提出了基于ExtJS框架與SSH的整合構(gòu)架,并以此為基礎(chǔ)設(shè)計(jì)、實(shí)現(xiàn)了基于條形碼的設(shè)備管理Web平臺(tái).系統(tǒng)由于采用了SSH開(kāi)源型框架,從而降低了系統(tǒng)開(kāi)發(fā)成本、提高代碼的利用率和系統(tǒng)的擴(kuò)展性;并通過(guò)采用ExtJS框架技術(shù),提高了與用戶的交互速度,加強(qiáng)了系統(tǒng)的安全性.

參考文獻(xiàn):

[1] 李成嚴(yán),馮慧靈.基于開(kāi)源技術(shù)的Web應(yīng)用架構(gòu)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展, 2009,19(8):27-30.

[2] 袁華強(qiáng),王亞強(qiáng),朱 君.利用J2EE輕量級(jí)框架構(gòu)建Web應(yīng)用研究[J].計(jì)算機(jī)工程與設(shè)計(jì), 2007,28(1):22-25.

[3] 王寶龍,李子揚(yáng),李曉輝.基于SSH框架的DWR技術(shù)的減災(zāi)衛(wèi)星運(yùn)行管理[J].計(jì)算機(jī)工程與設(shè)計(jì), 2010,31(23):5096-5099.

[4] DWR-easy ajax for java [EB/OL]. http://directwebremoting.org/dwr/index.html, 2012-09-10.

[5] AJAX. A new approach to Web applications[EB/OL]. http://www.adaptivepath.com/ideas/, 2012-09-08.

[6] 蔡俊亞.一種基于服務(wù)構(gòu)件模型的自適應(yīng)方法[J].湖南師范大學(xué)自然科學(xué)學(xué)報(bào), 2011,34(1):47-51.

[7] 翁興旺,宋燕輝.WCDMA網(wǎng)絡(luò)工程中的容量提升策略[J].湖南師范大學(xué)自然科學(xué)學(xué)報(bào), 2010,33(2):13-17.

[8] HE L J, YI L, LIU L C. Loosely coupled and reu-sable MVC model web paging design[J].Comput Eng Appl, 2007,43(15):95-97.

[9] JOHN RITTINGHOUSE, JAMES RANSOME. Cloud computing:implementation,management, and security[M]. USA, Florida: CRC Press, 2009.

[10] Sprinng[EB/OL]. http://wenku.baidu.com/view/84fee207eff9aef8941e06cf.html, 2012-09-20.

[11] Apache Struts.http://struts.apache.org/index.html, 2012-10-16.

[12] Why Hibernate. http://www.hibernate.org/about/why-hibernate, 2012-10-12.

[13] 張鵬偉,陳景霞,張文平,等.基于ExtJS和SSH的Web應(yīng)用架構(gòu)的研究與實(shí)現(xiàn)[J].陜西科技大學(xué)學(xué)報(bào), 2010,28(6):111-115.

[14] Sencha.ExtJS overview[EB/OL].http://www.sencha.com/products/extjs/, 2012-10-16.

[15] Crazycat.Ibatis Transaction[EB/OL]. http://www.iteye.com/wiki/blog/550491, 2012-03-03.

猜你喜歡
頁(yè)面數(shù)據(jù)庫(kù)用戶
大狗熊在睡覺(jué)
刷新生活的頁(yè)面
數(shù)據(jù)庫(kù)
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數(shù)據(jù)庫(kù)
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
如何獲取一億海外用戶
主站蜘蛛池模板: 视频国产精品丝袜第一页| 熟女日韩精品2区| 国产精品漂亮美女在线观看| 人人爽人人爽人人片| 亚洲全网成人资源在线观看| 香蕉久久永久视频| 欧美精品在线免费| 全部免费特黄特色大片视频| 亚洲人成影视在线观看| 久久美女精品| 国产无码性爱一区二区三区| 久久毛片网| 欧美a网站| 91蝌蚪视频在线观看| 美女免费黄网站| 2020精品极品国产色在线观看| 久久黄色影院| 亚洲日本中文字幕乱码中文| 被公侵犯人妻少妇一区二区三区| 国产精品自在在线午夜区app| 片在线无码观看| 亚洲精品第五页| 国产精品亚洲综合久久小说| 国产丝袜一区二区三区视频免下载| 无码精品国产VA在线观看DVD| 亚洲天堂网在线视频| 18禁影院亚洲专区| 青青草一区二区免费精品| 三区在线视频| 中文字幕有乳无码| 先锋资源久久| 97人人做人人爽香蕉精品| 综合久久五月天| a色毛片免费视频| 国产极品粉嫩小泬免费看| 亚洲人免费视频| 国产日韩AV高潮在线| a毛片在线| 国产福利小视频高清在线观看| 91成人在线免费观看| 国产亚洲欧美日韩在线一区| 在线观看91香蕉国产免费| 亚洲午夜国产片在线观看| 最新痴汉在线无码AV| 亚洲色图欧美| 最新精品久久精品| 国产一区二区三区免费观看| 国产福利微拍精品一区二区| 无码高潮喷水在线观看| 中文字幕永久在线看| 综合色88| 国产无码精品在线播放| 亚洲动漫h| 日韩精品中文字幕一区三区| 人妻精品久久无码区| 国产精品一区二区久久精品无码| 亚洲欧洲综合| 国产一级视频在线观看网站| 欧美h在线观看| 91精品伊人久久大香线蕉| 白浆视频在线观看| 欧美啪啪网| 国产鲁鲁视频在线观看| 18禁影院亚洲专区| 国产噜噜噜| 国产福利一区二区在线观看| а∨天堂一区中文字幕| 亚洲欧美天堂网| 四虎永久免费网站| 免费jizz在线播放| 爱爱影院18禁免费| 一区二区三区毛片无码 | 丰满少妇αⅴ无码区| 国产精品免费露脸视频| 91无码人妻精品一区| 国产a v无码专区亚洲av| 波多野结衣在线se| 内射人妻无码色AV天堂| 国产精品手机视频| 亚洲侵犯无码网址在线观看| 亚洲色图欧美一区| 玖玖精品视频在线观看|