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

基于Struts與Hibernate框架的網(wǎng)絡(luò)購物系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2010-01-01 00:00:00崔躍海
電腦知識(shí)與技術(shù) 2010年1期

摘要:Struts與Hibernate 是兩個(gè)軟件設(shè)計(jì)的框架,利用它們進(jìn)行軟件的開發(fā),可以大大提高軟件開發(fā)的效率。該文在深入地分析了這兩種框架的基礎(chǔ)上,把它們引入到網(wǎng)絡(luò)購物系統(tǒng)的實(shí)際開發(fā)當(dāng)中。并以部分模塊為例詳細(xì)介紹這兩種框架相結(jié)合在web開發(fā)中的應(yīng)用。

關(guān)鍵詞:Struts; Hibernate;網(wǎng)絡(luò)購物系統(tǒng)

中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2010)01-98-03

Design and Realization of the System of Shopping at Network Based on Struts AND Hibernate Framework

CUI Yue-hai

(College of Computer Science and Technology, Wuhan University of Technology Wuhan, Wuhan 430063, China)

Abstract: Struts and hibernate are two frameworks of software design. Drawing on them to design software, it can provide efficiency of software design very well. On analysis in depth the two frameworks in this text, we introduce them to the practical development of the system of shopping at network. Besides, we introduce in detail the application of the integration of the two frameworks in Web development in the example of one model in the system.

Key words: Struts; Hibernate; system of shopping at network

作為軟件開發(fā)框架的Struts和Hibernate,可以看作是一種半成品的軟件,利用現(xiàn)成的框架進(jìn)行軟件開發(fā)可以起到事半功倍的作用[1]。因此把他們引用到實(shí)際的Web開發(fā)中,將使得軟件開發(fā)變得更加高效,開發(fā)出的軟件具有低耦合,高內(nèi)聚的特性。本文就是將Struts和Hibernate相結(jié)合,利用Struts框架可以很好的完成視圖部分和控制器部分分離的特性,Hibernate 框架可以很好的完成模型部分的數(shù)據(jù)持久化的特性, 以Struts框架為總體設(shè)計(jì)架構(gòu),以Hibernate作為處理數(shù)據(jù)持久化的工具,二者有機(jī)結(jié)合,共同來開發(fā)網(wǎng)絡(luò)購物系統(tǒng)。

1 Struts框架及其工作原理

Struts是一個(gè)基于Java EE平臺(tái)、實(shí)現(xiàn)MVC設(shè)計(jì)模式的Web應(yīng)用開發(fā)框架,它提供了多種組件分別來實(shí)現(xiàn)MVC中的視圖、模型和控制器的功能[2]。其體系結(jié)構(gòu)如圖1所示。

它主要由3個(gè)部分組成:View(視圖部分)Controller (控制器部分),Model(模型部分)。

1)View(視圖部分)

視圖部分實(shí)際上就是一組JSP頁面。這些JSP頁面由Html文本或者是Struts的自定義標(biāo)記庫來顯示完成。Html文本只能靜態(tài)地顯示JSP頁面,而由自定義標(biāo)記庫組成的頁面卻能和Model部分進(jìn)行交互。

2)Controller控制器部分

Struts中的Controller 控制器部分是由ActionServlet和Action來實(shí)現(xiàn)的。ActionServlet實(shí)例的作用是接收客戶端瀏覽器的請(qǐng)求,然后選擇執(zhí)行相應(yīng)的業(yè)務(wù)邏輯,再把相應(yīng)結(jié)果送回到客戶端。Action對(duì)象是開發(fā)者定義的類的實(shí)例,在繼承該類的過程中,開發(fā)者可以加入具體業(yè)務(wù)邏輯或調(diào)用業(yè)務(wù)邏輯模塊。Action對(duì)象在進(jìn)行了業(yè)務(wù)邏輯的處理以后會(huì)將應(yīng)用程序流程轉(zhuǎn)到合適的View組件,最終將響應(yīng)回送到瀏覽器客戶端。

3)Model模型部分

模型的構(gòu)成分為兩個(gè)部分:系統(tǒng)的內(nèi)部狀態(tài)和改變系統(tǒng)狀態(tài)的動(dòng)作。Struts中的Model部分一般由Java Bean或EJB(即企業(yè)級(jí)Java Bean)組成。Struts的工作原理時(shí)序圖如圖2所示。

Struts 的工作流程如下:

1)ActionServlet接收客戶端Http請(qǐng)求,使用ActionForm Bean自動(dòng)接收請(qǐng)求表單信息,然后將請(qǐng)求分發(fā)給相應(yīng)的Action對(duì)象。

2) Action對(duì)象調(diào)用Execute()方法處理請(qǐng)求,期間能夠使用先前的ActionForm Bean實(shí)現(xiàn)業(yè)務(wù)邏輯,然后回送ActionForward 對(duì)象給ActionServlet。

3) 根據(jù)ActionForward對(duì)象封裝的信息,ActionServlet將Http請(qǐng)求再次轉(zhuǎn)發(fā)給其它頁面,最終發(fā)送響應(yīng)回客戶端。

2 Hibernate框架及其工作原理

Hibernate 是一個(gè)面向Java開發(fā)環(huán)境的對(duì)象/關(guān)系數(shù)據(jù)映射框架。它對(duì)JDBC進(jìn)行了輕量級(jí)的對(duì)象封裝,使得Java程序員可以使用對(duì)象編程思維來操縱數(shù)據(jù)庫[3]。 Hibernate的工作原理示意圖如圖3所示。

Hibernate在Java程序與數(shù)據(jù)庫之間進(jìn)行轉(zhuǎn)換,Java程序設(shè)計(jì)人員只要事先定義好對(duì)象與數(shù)據(jù)庫表格之間的對(duì)應(yīng)(具體體現(xiàn)在model.hbm.xml中屬性名與數(shù)據(jù)庫中字段名對(duì)應(yīng)上)此后Java程序設(shè)計(jì)人員就可以使用熟悉的面向?qū)ο蟪绦蛟O(shè)計(jì)方法編寫程序,而不再需要進(jìn)行特定的與SQL之間的轉(zhuǎn)換,所有SQL的轉(zhuǎn)換交由Hibernate 進(jìn)行處理,即Hibernate 中提供了數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,從而大幅度減少了開發(fā)時(shí)人工使用SQL和JDBC處理數(shù)據(jù)的時(shí)間。

3 應(yīng)用實(shí)例

3.1 系統(tǒng)簡(jiǎn)介

網(wǎng)絡(luò)購物系統(tǒng)主要包括用戶注冊(cè)登陸管理,產(chǎn)品檢索查詢,購物管理,后臺(tái)信息管理,后臺(tái)訂單管理,后臺(tái)用戶信息管理等6個(gè)管理模塊。其中用戶注冊(cè)登陸管理模塊包括用戶在線注冊(cè);用戶登錄管理;用戶資料修改;向會(huì)員提供在線服務(wù)等功能。產(chǎn)品檢索模塊,包括商品信息的按廠家分類檢索;產(chǎn)品信息的關(guān)鍵字檢索;熱銷商品的排行榜顯示等功能。購物管理模塊提供以下功能:客戶可以隨時(shí)查看當(dāng)前購物車中的訂購情況,并可以隨時(shí)對(duì)其進(jìn)行修改;客戶可在線填寫訂單,自由選擇預(yù)定產(chǎn)品,并管理預(yù)定;注冊(cè)的客戶在通過會(huì)員驗(yàn)證后可以查詢以往詳細(xì)的訂單內(nèi)容;后臺(tái)產(chǎn)品信息管理模塊提供產(chǎn)品分類管理,產(chǎn)品資料管理等功能。后臺(tái)訂單管理模塊提供最新訂單信息管理,查看客戶訂單;訂單處理,對(duì)客戶所下訂單進(jìn)行有效處理;訂單跟蹤與分配,管理員對(duì)客戶所下訂單進(jìn)行分配至業(yè)務(wù)員。后臺(tái)用戶信息管理模塊用于實(shí)現(xiàn)對(duì)網(wǎng)站后臺(tái)維護(hù)管理用戶的增加,刪除及修改。

本系統(tǒng)采用Struts框架實(shí)現(xiàn)MVC架構(gòu)模式,并采用Hibernate實(shí)現(xiàn)持久化層,從而形成一個(gè)多層次的體系結(jié)構(gòu),如圖4所示,圖中的箭頭表示調(diào)用關(guān)系[4]。系統(tǒng)體系結(jié)構(gòu)如圖4所示。

視圖層:負(fù)責(zé)與用戶交互,包括JSP、HTML頁面,ActionForm。

控制層:進(jìn)行業(yè)務(wù)調(diào)度,負(fù)責(zé)視圖層和模型層的交互。由Struts Action類實(shí)現(xiàn)。

業(yè)務(wù)邏輯層:包含具體的業(yè)務(wù)邏輯,使用JavaBean實(shí)現(xiàn)。

持久層:使用開源持久層軟件包Hibernate,提供O/R關(guān)系映射和數(shù)據(jù)庫訪問的支持。

數(shù)據(jù)庫:使用 MySQL數(shù)據(jù)庫管理系統(tǒng)。

3.2 模塊示例

本節(jié)以用戶登錄模塊為例,重點(diǎn)闡述Struts和Hibernate 如何相結(jié)合在系統(tǒng)中實(shí)現(xiàn)系統(tǒng)的功能,其它模塊實(shí)現(xiàn)方式與此相似。

在本模塊中,視圖組件包括:

1)left.jsp:該頁面提供系統(tǒng)用戶的登錄注冊(cè)功能,本節(jié)以登錄為主,進(jìn)行簡(jiǎn)單的介紹。

2)LoginForm(DynaValidatorForm):用于處理left.jsp頁面中用戶表單登錄時(shí)提交的數(shù)據(jù)。

控制器組件包括:

Login Action:接收從LoginForm傳來的數(shù)據(jù)。調(diào)用DbOperate.java( 模型組件)中的方法,驗(yàn)證用戶信息成功后,轉(zhuǎn)向toSuccess.否則,轉(zhuǎn)向toWrong.

模型組件: Dboperate調(diào)用持久化類member進(jìn)行與數(shù)據(jù)庫方面的操作。

持久化類:member對(duì)應(yīng)數(shù)據(jù)庫中的表member。

映射文件:model.hbm.xml。

配置文件:

1)Struts-config.xml

該文件是整個(gè)Struts架構(gòu)的核心,在Struts架構(gòu)中,開發(fā)者通過它來組裝各個(gè)組件,建立應(yīng)用程序的總體脈絡(luò)。可以說該文件的作用相當(dāng)于一個(gè)大型項(xiàng)目開發(fā)運(yùn)行過程中的控制調(diào)配中心。其部分源碼如下所示:

//①定義FormBean

type=\"org.apache.struts.validator.DynaValidatorForm\">

//②聲明全局轉(zhuǎn)發(fā)

//③定義ActionBean

2)Hibernate.cfg.xml

在該文件中主要是進(jìn)行SessionFactory配置(可以理解成建立與數(shù)據(jù)庫之間連接的配置),在Hibernate中,既可以使用XML文件,也可以使用屬性文件來進(jìn)行配置,這里介紹使用XML文件配置方式,這也是Hibernate 所建議的配置方式,對(duì)應(yīng)的文件名是“Hibernate.cfg.xml”,該文件核心程序代碼及相關(guān)解釋如下:

……

org.gjt.mm.mysql.Driver

jdbc:mysql://localhost/test

root

zgy01

100

1

org.hibernate.dialect.MySQLDialect

屬性定義部分(從下一行開始)各項(xiàng)配置的含義如下:

connection.driver_class:定義MySQL的JDBC數(shù)據(jù)庫驅(qū)動(dòng)程序;

connection.url:數(shù)據(jù)庫連接地址,包括數(shù)據(jù)庫名稱;

connection.username:數(shù)據(jù)庫連接用戶名;

connection.password:數(shù)據(jù)庫連接密碼;

connection.pool_size:數(shù)據(jù)庫連接池的個(gè)數(shù);

show_sql:用于配置是否在控制臺(tái)顯示SQL語句,方便程序調(diào)試[5];

dialect:定義MySQL為Hibernate 數(shù)據(jù)庫操作語法的方言。

映射文件定義部分(從開始)設(shè)置持久化類和數(shù)據(jù)表的映射文件。

4 結(jié)束語

本文將作為軟件開發(fā)架構(gòu)的兩種架構(gòu):Struts和Hibernate相結(jié)合運(yùn)用到網(wǎng)絡(luò)購物系統(tǒng)中,實(shí)現(xiàn)了此系統(tǒng)。通過實(shí)際應(yīng)用闡明了Struts和Hibernate相結(jié)合進(jìn)行web設(shè)計(jì)。實(shí)踐表明,基于這兩種框架設(shè)計(jì)的Web程序具有很好的可維護(hù)性和可擴(kuò)展性。

參考文獻(xiàn):

[1] 歐陽宏基,弋改珍,戈萌.基于框架技術(shù)的生產(chǎn)統(tǒng)計(jì)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)應(yīng)用,2009,30(9):75-80.

[2] 劉志強(qiáng),潘郁.基于MVC模式的Struts框架研究[J].微處理機(jī),2008(4):68-70.

[3] 高昂.基于Hibernate與Struts框架的數(shù)據(jù)持久化應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用,2005,25(12),2817.

[4] 王莉,郝克剛,葛瑋.基于Struts和hibernate的缺陷管理及度量系統(tǒng)[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(2):122-124.

[5] 夏赟,李志蜀.基于Hibernate框架的數(shù)據(jù)持久化層的研究及應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2008,28(9):2446-2447.

主站蜘蛛池模板: 欧美a√在线| 在线一级毛片| 国产小视频免费| 国产精品露脸视频| 亚洲精品无码AⅤ片青青在线观看| 久久亚洲国产一区二区| 美女免费精品高清毛片在线视| 久久精品丝袜高跟鞋| av一区二区人妻无码| 亚洲国产精品日韩欧美一区| 亚洲欧美日韩中文字幕在线一区| 曰韩免费无码AV一区二区| 亚洲乱码精品久久久久..| 国产区网址| 国产在线观看人成激情视频| 福利国产微拍广场一区视频在线| 国产成人艳妇AA视频在线| 狠狠色丁香婷婷| 精品国产福利在线| 国产成人精品日本亚洲77美色| 国产午夜福利片在线观看| 2021最新国产精品网站| 国产欧美精品一区二区| 欧美专区在线观看| 亚洲综合天堂网| 综合久久久久久久综合网| 欧美成人h精品网站| 欧美日韩国产高清一区二区三区| 免费人成黄页在线观看国产| 美女无遮挡拍拍拍免费视频| 国产精品一线天| 精品国产污污免费网站| 亚洲精品亚洲人成在线| 在线五月婷婷| 天天综合色网| 91无码国产视频| 国产麻豆福利av在线播放| 噜噜噜综合亚洲| 欧美亚洲一区二区三区导航| 女人18一级毛片免费观看| 日韩在线第三页| 久久99热这里只有精品免费看| 亚洲系列中文字幕一区二区| 国产精品天干天干在线观看| 91精品伊人久久大香线蕉| 97久久免费视频| 久久精品无码一区二区国产区 | 精品久久综合1区2区3区激情| 亚洲天堂网在线视频| 激情无码视频在线看| 亚洲中文久久精品无玛| 免费国产好深啊好涨好硬视频| 狠狠躁天天躁夜夜躁婷婷| 亚洲人网站| 一级毛片在线直接观看| 992Tv视频国产精品| 欧美性精品| 91久久性奴调教国产免费| 亚洲激情区| 九色在线观看视频| 欧美另类视频一区二区三区| 99999久久久久久亚洲| 国产精品久久久久久搜索| 亚洲天堂视频网站| www.国产福利| 四虎影视国产精品| av在线无码浏览| 91福利免费| jizz亚洲高清在线观看| 国产成人免费观看在线视频| 波多野结衣一二三| 国产拍在线| 亚洲综合经典在线一区二区| 日韩国产一区二区三区无码| 欧美成人在线免费| 免费又黄又爽又猛大片午夜| 精品福利视频网| 亚洲av成人无码网站在线观看| 久久国语对白| 亚洲福利视频一区二区| 香蕉eeww99国产精选播放| 高清不卡一区二区三区香蕉|