婁松濤 韓敏
摘要:根據(jù)網(wǎng)上銷售系統(tǒng)的實際需要,結(jié)合系統(tǒng)要最終解決的根本問題,從需求分析入手,制定了系統(tǒng)實現(xiàn)的技術(shù)方案。通過分析,對整個系統(tǒng)進行總體設(shè)計,然后又進行了詳細設(shè)計,從前臺和后臺著手進行了各個子模塊的劃分。同時,對于數(shù)據(jù)庫進行了深入分析,通過E-R圖分析了實體關(guān)系,完成數(shù)據(jù)庫表的設(shè)計。采用SSH2框架(即Struts2框架、Spring框架和Hibernate框架的整合)和AJAX技術(shù)實現(xiàn),集成的框架技術(shù)可以使它們發(fā)揮各自的優(yōu)勢。
關(guān)鍵詞:網(wǎng)上銷售系統(tǒng);SSH2框架;整合框架;系統(tǒng)設(shè)計
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)24-5678-02
隨著這種消費模式的發(fā)展,網(wǎng)上購物已是人們生活中不可缺少的一部份。對于那些經(jīng)濟實力雄厚的大企業(yè)來講,建設(shè)自己的銷售平臺自然輕而易舉;但是對于那些經(jīng)濟實力稍差的中小企業(yè)來說就不同了,他們更在意的是投入的回報率。因此,對于中小企業(yè)來說,設(shè)計一種開發(fā)靈活方便,開發(fā)周期短,安全性高,花費低且投資回報率高的開發(fā)系統(tǒng)是十分必要的,網(wǎng)上銷售系統(tǒng)便應然而生。通過網(wǎng)上銷售不但可以來發(fā)布商品信息,為顧客提供便捷的服務;還可以為顧客提供一個交流的平臺,可謂兩全其美。
1 J2EE體系結(jié)構(gòu)
在眾多的J2EE框架中選擇一個合適的開發(fā)框架還是比較困難的。經(jīng)過對各種框架技術(shù)近年來的發(fā)展對比以,目前系統(tǒng)開發(fā)中在Web層、業(yè)務層和數(shù)據(jù)持久層上比較常用的框架分別是Struts、Spring和Hibernate。根據(jù)今后技術(shù)發(fā)展方向,采用新推出的Struts2代替原有的Struts,結(jié)合Spring及Hibernate作為開發(fā)框架,實現(xiàn)系統(tǒng)的所有功能。
SSH2框架的結(jié)構(gòu)作為由Struts2、Spring和Hibernate整合而成的組合框架,利用分層設(shè)計實現(xiàn)的思想,利用Spring框架將數(shù)據(jù)持久層和網(wǎng)絡(luò)層無縫集成在一起,同時利用AJAX技術(shù)很好地完成了用戶體驗,設(shè)計出了一個更加簡潔,功能更完善的Web框架。該框架提高組件的可復用性,降低模塊間的耦合度,提高了系統(tǒng)的可維護性和擴展性等??蚣艿拿總€層在系統(tǒng)中都有一項明確的責任,在功能上不與其它層混淆,并且結(jié)構(gòu)上也是分開的,但通過通信接口連接他們。
2 系統(tǒng)設(shè)計
網(wǎng)上銷售系統(tǒng)是基于計算機網(wǎng)絡(luò)實現(xiàn)的,用戶可以通過該系統(tǒng)選購合適商品并對商品進行評價的一個交流平臺,因此系統(tǒng)采用B/S結(jié)構(gòu)的分層思想進行設(shè)計。根據(jù)前面的分析,系統(tǒng)屬于Web應用系統(tǒng),大體上可以分為前臺應用系統(tǒng)和后臺管理系統(tǒng)。系統(tǒng)總體采用SSH2的分層設(shè)計思想,將系統(tǒng)分為表示層、業(yè)務邏輯層和數(shù)據(jù)持久層。表示層由Struts2框架實現(xiàn),完成與用戶的交互;業(yè)務邏輯層由Spring框架進行實現(xiàn),利用控制反轉(zhuǎn)機制完成各個組件之間的關(guān)聯(lián);數(shù)據(jù)持久層由Hibernate實現(xiàn),通過ORM機制將數(shù)據(jù)庫表轉(zhuǎn)化為持久化對象,完成對數(shù)據(jù)庫的存取操作。
2.1 前臺應用系統(tǒng)模塊
根據(jù)實際需要,前臺的用戶系統(tǒng)可以分為用戶模塊、商品瀏覽模塊、購物模塊和用戶留言模塊。
2.2 后臺管理系統(tǒng)模塊
后臺系統(tǒng)為管理員提供了一個管理系統(tǒng)中各個模型的平臺,管理員登錄之后可以對各模塊進行管理。
2.3 數(shù)據(jù)庫設(shè)計
根據(jù)前面對系統(tǒng)進行的需求分析,針對所有存儲的信息,系統(tǒng)所需要的數(shù)據(jù)表的設(shè)計和功能如下:
用戶基本信息表:用于存放系統(tǒng)已經(jīng)注冊成功的用戶基本信息;
管理員基本信息表:用于存放系統(tǒng)超級管理員的基本信息;
商品分類基本信息表:用于存放商品分類的基本信息;
商品基本信息表:用于存放商品的基本信息;
訂單信息表:用于存放用戶訂單的相關(guān)信息;
訂單項信息表:用于存放訂單的具體條目相關(guān)信息;
留言基本信息表:用于存放用戶對商品的相關(guān)評價信息。
3 系統(tǒng)實現(xiàn)
3.1 SSH2框架的實現(xiàn)
在SSH2框架的實現(xiàn)中,主要需要解決的有兩個問題:一是實現(xiàn)Struts2和Spring的有效整合;另一是實現(xiàn)Spring與Hibernate框架的整合。
采用SSH2整合框架的優(yōu)點就是可以進行分層設(shè)計開發(fā),由Struts2負責完成頁面請求的轉(zhuǎn)發(fā);Spring框架發(fā)揮邏輯層強大的事務管理功能,Hibernate在數(shù)據(jù)持久層發(fā)揮其強大功能,完成與數(shù)據(jù)庫的交互。
1)表示層的實現(xiàn)
在表示層,主要是通過頁面視圖中的表單接受用戶輸入,Struts2框架通過FilterDispatcher進行匹配選擇合適的Action,并交給Spring框架進行管理,處理完成后,再由Struts2框架將執(zhí)行結(jié)果返回,跳轉(zhuǎn)到合適的頁面。在Struts2中每一個Action文件都是一個普通的JavaBean文件,實現(xiàn)了與Spring之間的良好結(jié)合。
2)邏輯層的實現(xiàn)
Spring框架通過applicationContext.xml文件進行配置,獲取表示層的管理權(quán),并建立于數(shù)據(jù)庫的連接。在系統(tǒng)實現(xiàn)中,業(yè)務邏輯的設(shè)計就是利用接口Biz和接口的實現(xiàn)類BizImp設(shè)計表示層中具體所要使用到的處理方法。業(yè)務層框架Spring為表示層的Action配置一個bean屬性,并將各個Action類注入到前面定義好的接口實現(xiàn)類BizImp,通過數(shù)據(jù)持久層Hibernate提供的接口完成對數(shù)據(jù)庫的存取操作。
3)數(shù)據(jù)持久層的實現(xiàn)
Hibernate通過將數(shù)據(jù)庫中的表轉(zhuǎn)換成JavaBean,表中的字段對應JavaBean的屬性。這樣后面對表的操作也就變成了對這些JavaBean的操作,實現(xiàn)對數(shù)據(jù)庫的面向?qū)ο缶幊?,在?shù)據(jù)持久化層的實現(xiàn)過程中最主要的是配置Hibernate.cfg.xml文件和實體映射文件。
3.2 系統(tǒng)安全性考慮
1)登錄驗證碼
在登錄界面,用戶每次登錄時必須輸入一個隨機生成的驗證碼,這個驗證碼是不可預知的,這樣可以防止暴力程序的破解。
2)身份認證
系統(tǒng)中的部分功能是必須經(jīng)過身份認證才能訪問的,未授權(quán)用戶將被拒絕。用戶經(jīng)過身份認證后,其信息會保存在服務器端的session當中,這些信息將伴隨著會話的結(jié)束即瀏覽器的關(guān)閉而自動銷毀。并且設(shè)置session的合適失效時間,當用戶長時間不做任何操作,再進行訪問相關(guān)資源時必須再次經(jīng)過身份認證。另外所有的訪問都經(jīng)過Struts2的Action進行,這樣防止了資源名的暴漏。
3)服務器安全性
服務器端的安全是十分重要的。一方面是在數(shù)據(jù)庫上只開放需要的權(quán)限,并且不用sa用戶,重新建立一個新用戶;還要通過過濾用戶輸入防止sql注入。另一方面是關(guān)閉服務器上不需要的服務和端口,防止其他用戶的惡意訪問,并對文件夾權(quán)限進行設(shè)置。
4 結(jié)束語
通過SSH2框架和AJAX技術(shù)在網(wǎng)上銷售系統(tǒng)中的應用開發(fā),取得了以下研究成果:
1) 對Struts2、Spring、Hibernate框架進行了深入分析,根據(jù)其各自的優(yōu)缺點,將它們組合應用到基于MVC模式的多層B/S結(jié)構(gòu)Web應用系統(tǒng)中。
2) 根據(jù)網(wǎng)上銷售系統(tǒng)的特點,提出了Struts2框架、Spring框架、Hibernate框架和AJAX技術(shù)相結(jié)合的集成整合方案。系統(tǒng)設(shè)計與實現(xiàn)采用分層的思想,Struts2負責表示層的視圖顯示,中間業(yè)務層由Spring進行管理,Hibernate完成與數(shù)據(jù)庫的交換。另外,針對Web頁面顯示的不足,系統(tǒng)引入DWR框架使用AJAX技術(shù)實現(xiàn)多處的數(shù)據(jù)異步通信,大大提高了用戶體驗,優(yōu)化了系統(tǒng)性能。
3) 系統(tǒng)完成之后,進行了功能和整體測試,測試結(jié)果顯示達到系統(tǒng)設(shè)計要求。通過Apache JMeter測試工具對網(wǎng)上銷售系統(tǒng)進行了整體測試,然后根據(jù)生成的聚合報告分析了系統(tǒng)在一定負荷壓力下的性能,剖析原因所在,提出改進方案。
參考文獻:
[1] Kumar等.深入淺出J2EE架構(gòu)——應用程序設(shè)計與部署的原理[M]. 宋梅,譯. 北京:清華大學出版社,2006:20-34.
[2] 楊中科. J2EE開發(fā)全程實錄[M].北京:清華大學出版社,2007:16-18.
[3] 冀旭鋼.利用Struts框架進行Web應用開發(fā)的研究[M].微機發(fā)展,2005,15(6):121-123.
[4] 林信良.Spring 2.0技術(shù)手冊[M].北京:電了工業(yè)出版社,2007:37-43.
[5] Craig Walls. Spring in Action[J].Manning Publications, 2005(2):43-58.
[6] 劉洋,等.精通Hibernate——Java技術(shù)大全[M].北京:電子工業(yè)出版社,2005:74-81.