JAVA SAAS概念講解知識(shí)_第1頁(yè)
JAVA SAAS概念講解知識(shí)_第2頁(yè)
JAVA SAAS概念講解知識(shí)_第3頁(yè)
JAVA SAAS概念講解知識(shí)_第4頁(yè)
JAVA SAAS概念講解知識(shí)_第5頁(yè)
已閱讀5頁(yè),還剩82頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

JAVASAAS基本概念關(guān)于SAAS的理解,現(xiàn)有的定義都是SoftwareasaService.如果定位Software為主體,則是用數(shù)據(jù)隔離的技術(shù)架構(gòu)來作為商業(yè)模式,這條路是走不通的。比如,截止2010年9月份,據(jù)國(guó)外媒體報(bào)道,德國(guó)軟件巨頭SAP雖然早已開始努力發(fā)展網(wǎng)絡(luò)軟件業(yè)務(wù),但是在三年的發(fā)展歷程中,卻僅吸引了不足100家的用戶。另外,某知名CRM廠商,雖然在垂直的教育行業(yè)有所斬獲,但是他們的SAAS主營(yíng)業(yè)務(wù)CRM,發(fā)展得并不好,SAP幻想先規(guī)范、統(tǒng)一中小企業(yè)日常管理,然后再大規(guī)模實(shí)施SAAS管理軟件,沿著這個(gè)是思路做SAAS管理軟件,必死無疑。

如我們把SAAS分為兩層理解,第一層,從技術(shù)架構(gòu)上,使用SAAS技術(shù)手段做數(shù)據(jù)隔離,即SAAS理解為SoftwareasaService,以軟件公司為主導(dǎo);第二層,作為商業(yè)模式,個(gè)人認(rèn)為,SAAS應(yīng)該理解為Serviceasasoftware,就是服務(wù)軟件化,即以有能為客戶提供特有或都垂直服務(wù)的公司為主導(dǎo)。如果你能為你的客戶提供獨(dú)有的服務(wù),基于互聯(lián)網(wǎng),以軟件為手段展現(xiàn)你的服務(wù),就全面拋棄了已有的傳統(tǒng)軟件的傳統(tǒng)電子商務(wù)的定義,從而找到自己真正核心競(jìng)爭(zhēng)力。軟件即服務(wù)(SoftwareasaService,簡(jiǎn)稱SaaS,發(fā)音:s?s或sɑs)有時(shí)被作為“即需即用軟件”(on-demandsoftware,即“一經(jīng)要求,即可使用”)提及。它是一種軟件交付模式(deliverymodel),在這種交付模式中,軟件及其相關(guān)的數(shù)據(jù)被在云端集中式地托管(hosted)。用戶通常使用瘦客戶端(thinclient),通過一個(gè)萬維網(wǎng)瀏覽器(webbrowser)來訪問軟件即服務(wù)。對(duì)于許多商業(yè)應(yīng)用(businessapplication)來說,軟件即服務(wù)已經(jīng)成為一種常見的交付模式。這些商業(yè)應(yīng)用包括會(huì)計(jì)系統(tǒng)(accounting),協(xié)同軟件(collaboration),客戶關(guān)系管理(CustomerRelationshipManagement,簡(jiǎn)稱CRM),管理信息系統(tǒng)(ManagementInformationSystems,簡(jiǎn)稱MIS),企業(yè)資源計(jì)劃(EnterpriseResourcePlanning,簡(jiǎn)稱ERP),開票系統(tǒng)(Invoicing),人力資源管理(HumanResourceManagement,簡(jiǎn)稱HRM),內(nèi)容管理(ContentManagement,簡(jiǎn)稱CM)以及服務(wù)臺(tái)管理(ServiceDeskManagement)。軟件即服務(wù)已經(jīng)被吸納進(jìn)所有領(lǐng)先的企業(yè)級(jí)軟件公司的戰(zhàn)略中。這些公司的最大的賣點(diǎn)之一就是通過將硬件和軟件維護(hù)及支持外包給軟件即服務(wù)的提供者,來降低信息技術(shù)(InformationTechnology,簡(jiǎn)稱IT)成本。根據(jù)一份高德納集團(tuán)(GartnerGroup,也稱顧能集團(tuán))的評(píng)估,軟件即服務(wù)的銷售在2010年達(dá)到了100億美元,并且曾被預(yù)計(jì)在2011年要達(dá)到121億美元,比2010年上升20.7%。高德納集團(tuán)估計(jì),到2015年,軟件即服務(wù)的收入將會(huì)超過它的2010年的收入的2倍以上,并且達(dá)到預(yù)計(jì)的213億美元??蛻絷P(guān)系管理系統(tǒng)持續(xù)成為軟件即服務(wù)的最大市場(chǎng)。在客戶關(guān)系管理市場(chǎng)中的軟件即服務(wù)曾被預(yù)測(cè)會(huì)從2010年的32億美元上升到2011年的38億美元。術(shù)語“軟件即服務(wù)”與“基礎(chǔ)結(jié)構(gòu)即服務(wù)”(InfrastructureAsAService,簡(jiǎn)稱IaaS)、和“平臺(tái)即服務(wù)”(PlatformAsAService,簡(jiǎn)稱PaaS)一道,被認(rèn)為是云計(jì)算(cloudcomputing)的學(xué)術(shù)名稱。SAAS的介紹以下以電子商務(wù)網(wǎng)上商場(chǎng)來介紹SAAS的現(xiàn)實(shí)基于JAVA各J2EE的電子商務(wù)網(wǎng)上商場(chǎng)是一個(gè)最大好處,各類比較成熟的商業(yè)消息中間件,幾乎都是基于JAVA的,企業(yè)內(nèi)部信息系統(tǒng)一般也會(huì)是采用Oracle數(shù)據(jù)庫(kù)的。SAASB2B2C的技術(shù)架構(gòu)圖架構(gòu)圖SAAS的數(shù)據(jù)隔離SAAS最重要的數(shù)據(jù)隔離方式有3種:獨(dú)立Schema、獨(dú)立數(shù)據(jù)庫(kù)和每個(gè)業(yè)務(wù)表上都加一個(gè)tenantID來區(qū)公。進(jìn)銷存模塊圖SAAS

電子商務(wù)網(wǎng)上商場(chǎng)介紹我們現(xiàn)在開發(fā)的是以商品銷售為主體的購(gòu)物商城主要架構(gòu):win2003+SSH+Tomcat+SQLServer開發(fā)開發(fā)環(huán)境:Eclipse+myeclipse+jdk1.6開發(fā)環(huán)境配置目錄安裝VMwareworkstation9配置與安裝windows2003sp2系統(tǒng)配置與安裝JDK1.6環(huán)境變量配置與安裝Tomcat6環(huán)境變量安裝數(shù)據(jù)庫(kù)MS-SQL2000+SP4安裝與配置eclipse+myeclipse數(shù)據(jù)庫(kù)視圖工具powerdesigner安裝VMwareworkstation9

省略……配置與安裝windows2003sp2系統(tǒng)

省略……配置與安裝JDK1.6環(huán)境變量下載jdk:JDK下載安裝和配置你的jdk安裝jdk以后,需要配置一下環(huán)境變量,在我的電腦->屬性->高級(jí)->環(huán)境變量->系統(tǒng)變量中添加以下環(huán)境變量(假定你的jdk安裝在C:\ProgramFiles\Java):

JAVA_HOME=C:\ProgramFiles\Java\jdk1.6.0_10

classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;path=%JAVA_HOME%\bin測(cè)試JDKpublicclassTest{

publicstaticvoidmain(Stringargs[]){

System.out.println("Thisisatestprogram.");

}

}將上面的這段程序保存為文件名為Test.java的文件。

測(cè)試打開運(yùn)行輸入cmd切換到保存的JAVA程序的路徑輸入如下命令:javac

Test.java

java

Test

tOMCAT配置安裝Tomcat后,在我的電腦->屬性->高級(jí)->環(huán)境變量->系統(tǒng)變量中添加以下環(huán)境變量(假定你的tomcat安裝在c:\tomcat)CATALINA_HOME:C:\Tomcat6.0

CATALINA_BASE:C:\Tomcat6.0TOMCAT_HOME:

C:\Tomcat6.0然后修改環(huán)境變量中的classpath,把tomat安裝目錄下的common\lib下的servlet.jar追加到classpath中去,修改后的classpath如下:

classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet-api.jar;接著可以啟動(dòng)tomcatwin+rcmdc:\tomcat\bin\startup.batURL訪問http://localhost:8080(注意最新版本的Tomcat中可能沒有common這個(gè)文件夾了。所以servlet-api.jar應(yīng)該的路徑為%CATALINA_HOME%\lib\servlet-api.jar;請(qǐng)根據(jù)自己的情況自己修改?。?/p>

安裝數(shù)據(jù)庫(kù)MS-SQL2000+SP4

省略……安裝與配置eclipse+myeclipse省略……數(shù)據(jù)庫(kù)視圖工具powerdesigner省略……電子商場(chǎng)設(shè)計(jì)步驟系統(tǒng)設(shè)計(jì)構(gòu)建開發(fā)環(huán)境(sprint+Hibernate+JDBC+Struts)文件結(jié)構(gòu)數(shù)據(jù)庫(kù)設(shè)計(jì)網(wǎng)店首頁(yè)布局設(shè)計(jì)模塊設(shè)計(jì)發(fā)布與運(yùn)行系統(tǒng)設(shè)計(jì)前臺(tái)結(jié)構(gòu)圖后臺(tái)結(jié)構(gòu)圖網(wǎng)站流程圖構(gòu)建開發(fā)環(huán)境sprint+Hibernate+JDBC+Struts操作演示文件目錄結(jié)構(gòu)數(shù)據(jù)庫(kù)設(shè)計(jì)

商品實(shí)體E-R圖訂單實(shí)體E-R圖會(huì)員實(shí)體E-R圖數(shù)據(jù)庫(kù)模型圖網(wǎng)店首頁(yè)布局設(shè)計(jì)網(wǎng)站的每一個(gè)部分都有不同的tiles組件定義,這此tiles組件的組合就構(gòu)建成的網(wǎng)頁(yè)的首頁(yè)模板。代碼如下:18-navigation:網(wǎng)站的導(dǎo)航Tiles組件,其中包含網(wǎng)站的導(dǎo)航菜單和logo標(biāo)志。22-search:網(wǎng)站搜索欄的Tiles組件,其中還包含一個(gè)Banner廣告欄。27-left:網(wǎng)站左側(cè)分欄的Tiles組件,其中包含用戶登錄、商場(chǎng)公告和商品銷售排行板塊。32-content:網(wǎng)站首頁(yè)內(nèi)容的Tiles組件,其中由特價(jià)商品和新品上架板塊組成。34-right:網(wǎng)站右側(cè)分欄的Tiles組件,其中包含商品分類和廣告招商板塊。42-footer:網(wǎng)站版權(quán)信息的Tiles組件,其中包含網(wǎng)站的所有都、聯(lián)系電話和E-mail等信息。用于定義前臺(tái)頁(yè)面的Tiles布局組件,其中包括出錯(cuò)頁(yè)面的布局模板、首面的布局模板和次級(jí)頁(yè)面的布局模板。這些模板由標(biāo)題信息、導(dǎo)航欄、左菜單、右菜單、搜索欄、版權(quán)信息以及頁(yè)面的內(nèi)容分欄等7個(gè)Tiles組件組成。模板中定義了placardTilesController、sellSortTilesController、SearchTileController和TypeListTilesController共4個(gè)Tiles控制器,這4個(gè)控制器分別為公告頁(yè)面、銷售排行、搜索欄和商品分類提供數(shù)據(jù)。代碼如下:SearchTileController控制器它是從spring容器中daoProxyFactory代理中獲取了Dao數(shù)據(jù)庫(kù)操作類的實(shí)例對(duì)象,然后通過該對(duì)象獲取頁(yè)面需要的數(shù)據(jù),并將數(shù)據(jù)放到componentContext上下文中。代碼如下placardTilesController控制器該類的實(shí)現(xiàn)方法和SearchTileController類相同,它們都繼承了Spring的ComponentControllerSupport類的,然后獲取容器的Dao操作類,再通過該類獲取頁(yè)面數(shù)據(jù)并存放到Tiles的上下文中,代碼如下:在tiles-defs.xml文件中定義首面的視圖index.它也是Tiles組件,該組件繼承了首頁(yè)模板中的Tiles組件".index"。它不需要做任何修改,在模板中的Tiles組件中已經(jīng)具備了主頁(yè)的所有視圖。代碼如下:首頁(yè)控制器spring的控制器有很多種,例如表單控制器、命令控制器、向?qū)Э刂破鞯?。它們都用于處理客戶的?qǐng)求(即用戶通過瀏覽器瀏覽并提交的頁(yè)面請(qǐng)求),并根據(jù)客戶的請(qǐng)求完成不同的業(yè)務(wù)邏輯(即使是簡(jiǎn)單的首頁(yè)瀏覽也是一個(gè)請(qǐng)求),然后將數(shù)據(jù)封裝到數(shù)據(jù)模型中并返四視圖信息,指定一個(gè)視圖來顯示控制器返回的數(shù)據(jù)模型。首頁(yè)中主要是展示商場(chǎng)的商品信息,其數(shù)據(jù)由goodsController控制器提供,這個(gè)控制器就是首頁(yè)控制器。它是spring的MultiActionController控制器了的子類,除了為主頁(yè)的控制器提供數(shù)據(jù)模型之外,它還負(fù)責(zé)處理其他商品視圖的業(yè)務(wù)邏輯。繼承springr的MultiActionController控制器創(chuàng)建NewGoodsController類,在該類中定義操作數(shù)據(jù)庫(kù)的dao屬性。另外,還需要定義saleGoodsLinen屬性和ewGoodsLine屬性,它們分別用于定義特價(jià)商品和新進(jìn)商品在視圖中顯示的行數(shù)。最后創(chuàng)建goodsShow()方法處理首頁(yè)請(qǐng)求的業(yè)務(wù)邏輯,該方法將返回index視圖和相應(yīng)的數(shù)據(jù)模型。配置控制器首頁(yè)控制器已經(jīng)實(shí)現(xiàn)了簡(jiǎn)單的獲取數(shù)據(jù)的業(yè)務(wù)邏輯,但還無法處理首頁(yè)的請(qǐng)求。在Spring的應(yīng)用中,控制器必須在配置文件中定義名稱并為其注入依賴的屬性,然后定義處理器映射,才能處理指定的客戶請(qǐng)求。配置該控制器的步驟如下:1)創(chuàng)建controller-config.xml文件由于NewGooodsController類是Spring的多動(dòng)作控制器的實(shí)現(xiàn)類,多動(dòng)作控制器必須方法名稱解析器來指定控制器中的每個(gè)方法所處理的客戶請(qǐng)求,所以必須創(chuàng)建該控制器的方法名稱解析器。該解析器的名稱可以任意,但建議使用有意義的名稱。另外,在這個(gè)配置文件中也同時(shí)定義了NewGoodsController控制器,并將方法名稱解析器注入到其methodNameResolver屬性中。配置文件代碼如下:10-goodsMethodResolver:使用<bean>標(biāo)簽定義多動(dòng)作控制器的方法名稱解析器。20-goodsController:使用<bean>標(biāo)簽定義多動(dòng)作控制器的JavaBean實(shí)例。21-<property>:該標(biāo)簽用于指定JavaBean的屬性22-<ref>:該標(biāo)簽用于引用其他JavaBean的實(shí)例。28-<value>:該標(biāo)簽用于定義JavaBean的屬性值。2)創(chuàng)建view-config.xml文件。它是本系統(tǒng)的處理器映射配置文件,其中包括了前臺(tái)和后臺(tái)所有控制器的處理映射信息,首頁(yè)控制器必須在此處定義URL映射信息,才能被客戶訪問。映射首頁(yè)控制器的配置代碼如下:3)在view-config.xml文件中對(duì)NewGoodsController控制器定義了處理器映射,當(dāng)訪問"/index.lzw"URL路徑時(shí),將顯示信息。但是JSP網(wǎng)站的默認(rèn)首頁(yè)是index.jsp視圖文件,要使默認(rèn)路徑能夠?yàn)g覽首頁(yè)信息,必須定義index.jsp文件,在其中將請(qǐng)求轉(zhuǎn)發(fā)到NewGoodsController控制器中。代碼如下:公共模塊在本系統(tǒng)的項(xiàng)目空間中,有部分模塊是公用的,它們被多個(gè)模塊重復(fù)調(diào)用完成指定的業(yè)務(wù)邏輯。Dao公共類Dao類主要負(fù)責(zé)有關(guān)數(shù)據(jù)庫(kù)的操作,該類繼承了Spring的HibernateDaoSupport類,通過其getHibernateTemplage()方法獲取Hibernate的模板類操作數(shù)據(jù)庫(kù)。Dao類的定義代碼如下。1.getGoods(Longid)方法該方法用于獲取指定ID編號(hào)的商品實(shí)體對(duì)象,它調(diào)用Sprint的HibernateTemplate模板類的get()方法獲取指定ID的實(shí)體類對(duì)象。代碼如下:2.insertObject(Objectobj)方法該方法主要負(fù)責(zé)將實(shí)體對(duì)象添加到數(shù)據(jù)庫(kù)中,實(shí)體對(duì)象會(huì)保存到它所對(duì)應(yīng)的數(shù)據(jù)表中。調(diào)用HibernageTemplate模板類的Save()方法,可以直接保存指定的實(shí)體對(duì)象,代碼如下:3.getTypeList()方法該方法用于獲取所有商品類別。它調(diào)用HibernateTemplate模板類的find()方法執(zhí)行HQL語句查詢,查詢結(jié)果將被添加到list集合類中并返回給調(diào)用都,但是getTypeList()方法將查詢結(jié)果以Map集合類型返回,代碼如下:4.getUser(Stringusernaem,Stringpwd)方法該方法可以通過指定的用戶名和密碼從數(shù)據(jù)庫(kù)中獲取相應(yīng)的會(huì)員實(shí)體對(duì)象。為防止SQL注入,該方法將以用戶名為依據(jù),獲取實(shí)體對(duì)象,然后再將實(shí)體對(duì)象的密碼屬性與pwd參數(shù)進(jìn)行比較,如果相同則返回該實(shí)體對(duì)象。代碼如下:5.getGrade(doubleamount)方法該方法可以根據(jù)會(huì)員的消費(fèi)總金額從折扣表中獲取對(duì)應(yīng)的會(huì)員級(jí)別,該級(jí)別以整數(shù)區(qū)分大小。

代碼如下:6.getUserRebate(Stringusername)方法該方法根據(jù)指定的會(huì)員名稱獲取該會(huì)員的購(gòu)物折扣信息,獲取的折扣信息以字符串形式保存,本方法必須將它轉(zhuǎn)換成浮點(diǎn)數(shù)字類型,代碼如下配置數(shù)據(jù)庫(kù)連接和事務(wù)管理器本系統(tǒng)的dao-config.xml文件用于設(shè)置Spring的數(shù)據(jù)庫(kù)連接、配置Hibernate環(huán)境和事務(wù)代理工廠。其中事務(wù)代理工廠daoProxyFactory在Dao數(shù)據(jù)庫(kù)操作類的基礎(chǔ)上添加了事務(wù)處理的能力,本系統(tǒng)的Dao類的實(shí)例對(duì)象就是使用該事務(wù)代理工廠生成。代碼如下。dataSourse:配置連接數(shù)據(jù)庫(kù)的數(shù)據(jù)源。sessionFactory:配置Hibernate的sessionFactory工廠。dao:配置Dao數(shù)據(jù)庫(kù)操作類,該類繼承了Spring的HibernateTemplate類,需要為它注入sessionFactory屬性。transactionManager:配置Spring的Hibernate事務(wù)管理器,它同樣需要注入sessionFactory屬性.daosessionFactory:配置Spring的事務(wù)代理工廠,這個(gè)代理工廠產(chǎn)生的Dao類的對(duì)象在原有Dao類的基礎(chǔ)上添加了處理事務(wù)的能力。配置Spring控制器的請(qǐng)求映射實(shí)例中的view-config.xml文件定義了Spring框架的視圖解析器、Tiles配置器、處理器映射和異常解析器。該文件是Spring的配置文件,使用和dao-config.xml文件相同的創(chuàng)建方法。下面是分別是view-config.xml文件對(duì)處理器映射、Tiles配置器和Spring視圖解析器的相關(guān)配置<1>處理器映射的代碼如下:設(shè)置Tiles配置器的代碼如下:配置Spring視圖解析代碼如下:會(huì)員注冊(cè)模塊本系統(tǒng)前臺(tái)中的會(huì)員管理主要包括會(huì)員注冊(cè)、會(huì)員登錄和會(huì)員資料修改3個(gè)功,會(huì)員管理模塊的會(huì)員注冊(cè)、會(huì)員資料修改和會(huì)員登錄分別使用了RegisterController、LoginController和ModifyMemberController控制器處理相應(yīng)的業(yè)務(wù)邏輯。雖然會(huì)員管理模塊使用了多個(gè)控制器,但是它們都屬于Spring表單控制器。實(shí)現(xiàn)該控制器必須繼承Spring的SimpleFormController類,它會(huì)自動(dòng)將頁(yè)面所提交的表單內(nèi)容綁定到一個(gè)JavaBean中。這個(gè)JavaBean是對(duì)表單數(shù)據(jù)的封裝,類似于Struts的ActionForm類。Spring的表單控制器能夠分別實(shí)現(xiàn)表單頁(yè)面的顯示和表單的業(yè)務(wù)處理,當(dāng)它接收到頁(yè)面GET類型的請(qǐng)求時(shí),將顯示控制器的formView屬性所指定的表單頁(yè)面;在接收到頁(yè)面POST類型的請(qǐng)求時(shí),它會(huì)接收表單內(nèi)容并實(shí)現(xiàn)相應(yīng)的業(yè)務(wù)邏輯,然后返回successView屬性指定的視圖。會(huì)員注冊(cè)過程(1)創(chuàng)建會(huì)員注冊(cè)頁(yè)面,在該頁(yè)面中創(chuàng)建一個(gè)表單,表單的Action屬性設(shè)置為register.lzw。表單中包含用戶名、真實(shí)姓名、所在城市、聯(lián)系地址等會(huì)員信息字段,這些字段使用Spring的<spring:bind>標(biāo)簽和表單類的指定屬性進(jìn)行綁定。由于表單頁(yè)面的字段和程序代碼較多,表單中其他字段的定義將提取到中表中。代碼如下:command.username:表單類的屬性,它將與表單字段進(jìn)行綁定,該字段名稱將隨字段面改變,例如聯(lián)系電話字段綁定表單類的command.tel屬性。如表中的字段綁定是不同表單字段所綁定的表單類的屬性。${status.expression}:這是EL表達(dá)式,它是綁定的表單類的屬性名稱,在頁(yè)面的表單中使用該名稱作為表單字段的名稱。${atatus.value}:該表達(dá)式的結(jié)果是綁定的表單類的屬性值,在頁(yè)面的表單中使用該屬性值作為表單字段的值。${stauts.errorMessage}:該表達(dá)式的結(jié)果是表單控制器綁定的驗(yàn)證器的錯(cuò)誤信息,當(dāng)用戶輸入的值不符合驗(yàn)證器的輸入格式時(shí),驗(yàn)證器將返回該錯(cuò)誤信息。字段描述字段綁定字段類型字段長(zhǎng)度用戶名command.usernametext20真實(shí)姓名command.truenametext10密碼command.pwdtext20確認(rèn)密碼command.pwd1text20所在城市command.citytext-聯(lián)系地址command.addresstext50郵政編碼command.postcodetext20證件號(hào)碼command.cardnotext20聯(lián)系電話command.teltext-E-mailcommand.emailtext50表中的“-”符號(hào)代表默認(rèn)設(shè)置。2)創(chuàng)建RegisterController類,該類是處理會(huì)員注冊(cè)業(yè)務(wù)的控制器,它繼承了Spring的SimpleFormController類,并重寫了該類的部分方法來實(shí)現(xiàn)業(yè)務(wù)處理。首先,在RegisterController類的構(gòu)造方法中調(diào)用setCommandClass()方法設(shè)置表單類,這個(gè)表單類將用來封裝表單中的字段信息。然后,在onSubmit()方法中處理頁(yè)面請(qǐng)求的業(yè)務(wù)邏輯,并返回?cái)?shù)據(jù)模型和視圖對(duì)象。最后,在onBindAndValidate()方法中驗(yàn)證數(shù)據(jù)庫(kù)中是否存在用戶要注冊(cè)的用戶名,至于其他詳細(xì)注冊(cè)字段的驗(yàn)證,由驗(yàn)證器去實(shí)現(xiàn)。RegisterController類的代碼如下:3)創(chuàng)建ModifyMemberValidate類,該類實(shí)現(xiàn)了Validator接口成為Spring的驗(yàn)證器。處理會(huì)員注冊(cè)請(qǐng)求的控制器在onBindAndValidate()方法中作了簡(jiǎn)單的用戶驗(yàn)證,ModifyMemberValidate類主要負(fù)責(zé)更細(xì)化的驗(yàn)證工作,例如關(guān)鍵信息的空信息驗(yàn)證、密碼驗(yàn)證和輸入格式驗(yàn)證等。這個(gè)驗(yàn)證器必須實(shí)現(xiàn)Validator接口中定義的supports()方法和validate()方法,它們分別用于判斷驗(yàn)證器是否支持指定表單類的驗(yàn)證和驗(yàn)證表單類的屬性,其中的驗(yàn)證錯(cuò)誤信息將顯示在注冊(cè)頁(yè)面相應(yīng)的字段上。驗(yàn)證器的關(guān)鍵代碼如下:4)會(huì)員注冊(cè)控制器和表單驗(yàn)證器必須在controller-config.xml文件中配置定義信息,才能被Spring框架加載并處理會(huì)員注冊(cè)請(qǐng)求,代碼如下會(huì)員登錄的實(shí)現(xiàn)過程實(shí)現(xiàn)會(huì)員登錄功能,需要經(jīng)過創(chuàng)建登錄頁(yè)面、編寫登錄控制器、配置控制器和請(qǐng)求映射等步驟。(1)創(chuàng)建會(huì)員登錄頁(yè)面,在該頁(yè)面中創(chuàng)建一個(gè)表單,表單的Action屬性(即請(qǐng)求路徑)設(shè)置為login.lzw,表單中包含會(huì)員名文體框、密碼文本框和會(huì)員注冊(cè)的超鏈接。代碼如下。(2)創(chuàng)建loginControll類,該類是處理會(huì)員注冊(cè)業(yè)務(wù)的控制器,它繼承了Spring的SimpleFormController類,并重寫了該類的部分方法來實(shí)現(xiàn)業(yè)務(wù)處理。首先,在LoginController類的構(gòu)造方法中調(diào)用setCommandClass()方法設(shè)置表單類,這個(gè)表單類將用來封裝表單中的字段信息。然后,在onSubmit()方法中處理頁(yè)面請(qǐng)求的業(yè)務(wù)邏輯,并返回?cái)?shù)據(jù)模型和視圖對(duì)象。最后,在showForm()方法中處理會(huì)員注銷請(qǐng)求,代碼如下。(3)在controller-config.xml文件中配置登錄控制器的定義信息,設(shè)置該控制器的Dao、formView和successView屬性,它們分別是數(shù)據(jù)庫(kù)操作類、表單視圖和登錄成功的視圖。代碼如下:dao:采用依賴注入原初始化登錄控制器的Dao屬性。formView:注入登錄控制器的表單視圖屬性。successView:注入登錄控制器成功視圖購(gòu)物模塊設(shè)計(jì)電子商場(chǎng)的購(gòu)物模塊主要用于輔助顧客完成購(gòu)物的流程。當(dāng)顧客選擇并購(gòu)買了商器后,這些商品將被放置在購(gòu)物車中,可以單擊購(gòu)物車中的“繼續(xù)購(gòu)物”超鏈接繼續(xù)購(gòu)買其他商品,也可以單擊購(gòu)物車中的“收銀結(jié)賬”超鏈接完成商品采購(gòu)。(1)購(gòu)物車購(gòu)物車主要包括添加購(gòu)物商品、查看購(gòu)物車、商品數(shù)量的修改、移除指定商品、清空購(gòu)物車等功能。當(dāng)顧客購(gòu)買了所需的全部商品后,可以單擊“收銀結(jié)賬”超超鏈接,完成商品購(gòu)物。(2)收銀臺(tái)收銀臺(tái)工能主要用于購(gòu)物的收銀結(jié)賬,當(dāng)顧客購(gòu)物并到收銀臺(tái)結(jié)賬后,才完成一次購(gòu)物流程。收銀臺(tái)將為顧客生成訂單,為顧客保存購(gòu)買的商品信息、訂單信息和訂單號(hào)。收銀臺(tái)頁(yè)面中包含顧客的會(huì)員基本信息,除用用戶名不可更改外,還需要填寫當(dāng)前的聯(lián)系地址、郵政編碼和聯(lián)系電話等信息。購(gòu)物車的實(shí)現(xiàn)過程實(shí)現(xiàn)購(gòu)物車功能需要經(jīng)過創(chuàng)建購(gòu)物車頁(yè)面、編寫購(gòu)物車控制器和配置控制器等步驟。1.編寫購(gòu)物車頁(yè)面購(gòu)物車頁(yè)面由購(gòu)物商品列表和相應(yīng)的操作超鏈接組成。購(gòu)物商品列表是一個(gè)Form表單,其中包括商品數(shù)量的修改和商品退回操作,它們分別由控制器的cartModify()方法和cartMove()方法來實(shí)現(xiàn)相應(yīng)的業(yè)務(wù)邏輯;“收銀結(jié)賬”超鏈接將轉(zhuǎn)到收銀臺(tái)功能頁(yè)面中完成本次購(gòu)物的流程;“清空購(gòu)物車”超鏈接將執(zhí)行控制器的cartClear()方法清空購(gòu)物車中的所有商品。創(chuàng)建購(gòu)物車頁(yè)面的代碼如下:2.編寫購(gòu)物車控制器編寫購(gòu)物車器的步驟如下:(1).創(chuàng)建CartController類,該類繼承了Spring的MultiActionController類的,它是購(gòu)物車的控制器,負(fù)責(zé)處理購(gòu)物車的操作請(qǐng)求。在該制作器中編寫cartAdd()方法,用于處理添加購(gòu)物商品到購(gòu)物車的請(qǐng)求。當(dāng)顧客單擊某商品的“購(gòu)買”按鈕時(shí),該商品將會(huì)通過cartAdd()方法添加到購(gòu)物車中。cartAdd()方法首先獲取商品的ID編號(hào)并調(diào)用Dao屬性的getGoods()方法獲取指定ID編號(hào)的商品實(shí)體對(duì)象,然后將商品實(shí)體對(duì)象的關(guān)鍵屬性封裝到GoodsElement類的實(shí)例對(duì)象中,最后將這些商品信息添加或累加到Session會(huì)話的cart屬性中。cartAdd()方法代碼如下GoodsElement:商品信息的封裝類。setID():設(shè)置封裝類中的商品ID編號(hào)。setGoodsName():設(shè)置商品封裝類中的商品名稱。setNowPrice():設(shè)置商品封裝類中的商品單價(jià)信息。setNumber():設(shè)置商品數(shù)量。(2)在控制器中編寫cartModify()方法,用于處理修改購(gòu)物車中商品數(shù)量的請(qǐng)求。cartModify()方法首先獲取顧客的購(gòu)物列表;然后從請(qǐng)求對(duì)象中分別獲取購(gòu)物車中每個(gè)商品的數(shù)量并更新到購(gòu)物列表;最后,如果某個(gè)商品的數(shù)量小于或等于0,它將被從購(gòu)物列表中移除。cartModify()方法的關(guān)鍵代碼如下。(3)在控制器中編寫cartCleary方法,用于處理清空購(gòu)物車的請(qǐng)求。這個(gè)方法的實(shí)現(xiàn)非常簡(jiǎn)單,從Session會(huì)話中將購(gòu)物車屬性cart直接移除,那么購(gòu)物車的購(gòu)物列表就不存在了,自然也就實(shí)現(xiàn)了購(gòu)物車清空。關(guān)鍵代碼如下。(4)在控制器中縮寫cartMove()方法,用于處理從購(gòu)物車中退回單個(gè)商品的請(qǐng)求。實(shí)現(xiàn)單個(gè)商品的移除,首先需要獲取該商品的ID編號(hào),然后調(diào)用remove()方法從購(gòu)物列表中移除該商品。關(guān)鍵代碼如下。3.配置購(gòu)物車控制器購(gòu)物車控制器的配置信息分為控制器定義和請(qǐng)求映射兩部分。購(gòu)物車控制器首先需要在controller-config.xml配置文件中定義購(gòu)物車控制器的方法解析器,在解析器中定義控制器的不同方法所處理的請(qǐng)求,然后定義購(gòu)物車的控制器,并為控制器分別注入方法解析器和Dao屬性。關(guān)鍵代碼如下。收銀臺(tái)的實(shí)現(xiàn)過程實(shí)現(xiàn)收銀臺(tái)功能需要經(jīng)過創(chuàng)建收銀臺(tái)頁(yè)面、編寫收銀臺(tái)控制器、配置收銀臺(tái)的控制器和控制器,收銀臺(tái)控制器被映射處理“/cartCheckout.lzw”請(qǐng)求。1.編寫收銀臺(tái)頁(yè)面創(chuàng)建收銀臺(tái)頁(yè)面,在該頁(yè)面中創(chuàng)建一個(gè)表單,表單中包含用戶名、真實(shí)姓名、聯(lián)系地址等會(huì)員基本信息字段。表單字段如下:2.編寫收銀臺(tái)控制器收銀臺(tái)控制器是Spring的表單控制器的子類,具有處理表單的能力。收銀臺(tái)頁(yè)面的表單包含訂單的會(huì)員信息和聯(lián)系方式,這些內(nèi)容都由表單類CartCheckoutForm封裝并傳遞給控制器,然后由控制器將表單信息和商品信息通過事務(wù)保存到數(shù)據(jù)庫(kù)中。實(shí)現(xiàn)收銀臺(tái)控制器的步驟如下:(1)創(chuàng)建CartCheckoutController類,在該類的構(gòu)造方法中調(diào)用setCommandClass()方法定義控制器的表單類。關(guān)鍵代碼如下:(2)在控制器中編寫onSubmit()方法,在該方法中首先獲取用戶的折扣信息,并將折扣信息和其他會(huì)員信息添加到訂單主表的實(shí)體對(duì)象中。關(guān)鍵代碼如下:(3)在循環(huán)中遍歷購(gòu)物車中的所有商品,將這些商品添加到訂單明細(xì)表的實(shí)體對(duì)象中。關(guān)鍵代碼如下:(4)最后,更新會(huì)員信息,并調(diào)用Dao屬性的insertObject()方法,在事務(wù)中將訂單主表、訂單明細(xì)表的實(shí)體對(duì)象和會(huì)員表的實(shí)體對(duì)象添加或更新到數(shù)據(jù)庫(kù)中。3.配置收銀臺(tái)控制器在controller-config.xml文件中定義收銀臺(tái)控制器的配置信息,并為控制器注入Dao屬性和相應(yīng)的視圖屬性.關(guān)鍵代碼如下:商品管理模塊設(shè)計(jì)商品信息的管理對(duì)電子商城來說十分重要,一個(gè)好的電子商務(wù)系統(tǒng)必須有一個(gè)強(qiáng)大的商品管理模塊。電子商場(chǎng)系統(tǒng)的商品管理模塊主要實(shí)現(xiàn)對(duì)商品信息的管理,包括分布顯示商品信息、添加商品信息、修改商品信息、刪除商品信息和商品的分類管理等功能。1.商品列表商品列表是后臺(tái)商品管理頁(yè)面之一,它負(fù)責(zé)分布顯示數(shù)據(jù)庫(kù)中所有的商品,并為每個(gè)商品提供“修改”和“刪除”超鏈接。商品列表頁(yè)面顯示的信息包括商品名稱、簡(jiǎn)介、是否新品、是否特價(jià)等。2.商品添加商品添加功能主要用于添加新商品到數(shù)據(jù)庫(kù),添加到數(shù)據(jù)庫(kù)的商品信息將被顯示到電子商城的前臺(tái)頁(yè)面中。新添加的商品信息需要填寫所屬分類、商品名稱、圖片文件、定價(jià)等商品信息。另外,如果在添加商品時(shí),指定該商品是新品和特價(jià)商品,那么這個(gè)不新添加的商品將顯示到新品上架頁(yè)面和特價(jià)商品頁(yè)面中.商品管理模塊技術(shù)分析商品管理模塊的商品列表和商品添加分別使用了ProductManagerController和GoodsAddController控

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論