畢業(yè)設(shè)計(jì)SSI框架的電子商務(wù)信息平臺(tái)的研究和構(gòu)建_第1頁(yè)
畢業(yè)設(shè)計(jì)SSI框架的電子商務(wù)信息平臺(tái)的研究和構(gòu)建_第2頁(yè)
畢業(yè)設(shè)計(jì)SSI框架的電子商務(wù)信息平臺(tái)的研究和構(gòu)建_第3頁(yè)
畢業(yè)設(shè)計(jì)SSI框架的電子商務(wù)信息平臺(tái)的研究和構(gòu)建_第4頁(yè)
畢業(yè)設(shè)計(jì)SSI框架的電子商務(wù)信息平臺(tái)的研究和構(gòu)建_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、XXXXXX大學(xué)畢業(yè)論文(設(shè)計(jì))題 目 基于SSI框架的電子商務(wù)信息平臺(tái)的研究和構(gòu)建 工商 學(xué) 院 XXX 專 業(yè) 08 級(jí) 2 班學(xué)生姓名 XXX 學(xué) 號(hào) 指導(dǎo)教師 XXX 職 稱 完成日期 2011-11-30 教務(wù)處 制基于SSI框架的電子商務(wù)信息平臺(tái)的研究和構(gòu)建【摘 要】近年來(lái),在網(wǎng)絡(luò)技術(shù)的迅速發(fā)展和J2EE平臺(tái)被廣泛采用的背景下,基于多層B/S結(jié)構(gòu)的Web體系結(jié)構(gòu)逐漸發(fā)展并成為主流。但是,在多層Web體系結(jié)構(gòu)的設(shè)計(jì)中,普遍存在著程序可重用度低、功能模塊可擴(kuò)展性差、維護(hù)工作繁瑣及開(kāi)發(fā)中分工協(xié)作困難等問(wèn)題。設(shè)計(jì)一個(gè)松耦合和緊內(nèi)聚的系統(tǒng)一直是軟件工程領(lǐng)域重點(diǎn)研究的問(wèn)題。本系統(tǒng)基于Sprin

2、g+Struts+iBATIS(簡(jiǎn)稱SSI)輕量級(jí)復(fù)合型框架,很好的解決了上述問(wèn)題,同時(shí)解決了視圖層、業(yè)務(wù)層和控制層的分離,提供了對(duì)象到關(guān)系數(shù)據(jù)庫(kù)的持久化支持。本文將研究整合Spring、Struts和iBATIS,并在電子商務(wù)信息平臺(tái)中進(jìn)行應(yīng)用。【關(guān)鍵詞】Spring Struts iBATIS Ajax 電子商務(wù)信息平臺(tái) 目錄引言3第一章 系統(tǒng)實(shí)現(xiàn)原理31.1表示層框架31.2業(yè)務(wù)層框架31.3持久層框架31.4集成三種框架技術(shù)3客戶層4表示層4業(yè)務(wù)層4持久層4第二章 電子商務(wù)信息平臺(tái)的設(shè)計(jì)52.1系統(tǒng)平臺(tái)定位52.2用戶管理系統(tǒng)52.3信息顯示系統(tǒng)62.4信息發(fā)布系統(tǒng)62.5信息查詢系統(tǒng)

3、6第三章 系統(tǒng)代碼實(shí)現(xiàn)63.1 整合項(xiàng)目開(kāi)發(fā)基本框架63.1.1 準(zhǔn)備工作63.1.2 向項(xiàng)目中加入Spring框架63.1.3 向項(xiàng)目中加入Struts框架73.1.4 配置數(shù)據(jù)源83.1.5 為項(xiàng)目配置Spring事務(wù)管理93.1.6 配置項(xiàng)目定時(shí)器93.1.7 向項(xiàng)目中加入iBATIS框架103.1.8 向項(xiàng)目中加入AJAX框架123.1.9 向項(xiàng)目中加入U(xiǎn)RL重寫框架153.2 具體代碼實(shí)現(xiàn)15持久層實(shí)現(xiàn)163.2.2 業(yè)務(wù)邏輯層的實(shí)現(xiàn)22控制層實(shí)現(xiàn)24展示層頁(yè)面實(shí)現(xiàn)26平臺(tái)頁(yè)面展示37第四章 總結(jié)43參考文獻(xiàn)43引言 伴隨著我國(guó)網(wǎng)絡(luò)互聯(lián)的普遍推廣,擁有終端PC機(jī)的人數(shù)正在大幅增加,進(jìn)

4、行網(wǎng)絡(luò)購(gòu)物和電子支付的人數(shù)也必將會(huì)越來(lái)越多, 電子商務(wù)占有的市場(chǎng)份額也必會(huì)增加, 也將會(huì)出現(xiàn)更多的電子商務(wù)網(wǎng)站。但是,眾多中小企業(yè)還有相當(dāng)部分由于各因素的制約而沒(méi)有開(kāi)展電子商務(wù), 這就造成了這些中小企業(yè)在面對(duì)競(jìng)爭(zhēng)國(guó)際化、 熾熱化的今天很容易處于劣勢(shì), 這是我國(guó)中小企業(yè)亟待解決的問(wèn)題。作為企業(yè)的對(duì)外溝通的平臺(tái),電子商務(wù)信息平臺(tái)可以鞏固和樹(shù)立企業(yè)形象,成為產(chǎn)品品牌宣傳和業(yè)務(wù)推廣的有力渠道,是與經(jīng)銷商或合作伙伴之間溝通、業(yè)務(wù)合作往來(lái)的主要紐帶,節(jié)省了企業(yè)成本,提高了效率。因此,對(duì)電子商務(wù)信息平臺(tái)的研究和構(gòu)建有極其重要的意義。第一章 系統(tǒng)實(shí)現(xiàn)原理1.1表示層框架表現(xiàn)層框架主要有 Struts和 Tap

5、estry。Struts框架在創(chuàng)建W eb應(yīng)用時(shí)能容易地分離表示層和業(yè)務(wù)層, 它是在 J SP M ode l 2的基礎(chǔ)上實(shí)現(xiàn)的一個(gè) MVC框架。 Struts框架主要由模型、 視圖、控制器三部分組成, 模型由實(shí)現(xiàn)業(yè)務(wù)邏輯的 JavaBean或 E J B組件構(gòu)成, 控制器由 ActionSe rv l e t和 Action實(shí)現(xiàn),視圖由一組 JSP文件構(gòu)成。Tapestry與 Struts應(yīng)用框架不同的是,它是基于組件,而不是面向腳本語(yǔ)言 (比如 JSP和 Ve locity)的,組件是由一個(gè)定義文件 (以 XML的格式 )、 一個(gè) HTML模板、 一個(gè) JAVA 類構(gòu)成的。Tapestry

6、的組件可以被套嵌并包裹其它組件,因此可以組合形成一個(gè)更大的組件或邏輯頁(yè)面。組件的行為模式為W eb頁(yè)面編程提供了很大的方便,事件處理也方便很多。 S truts框架由于出現(xiàn)時(shí)間早,所以使用相對(duì)廣泛,它的社區(qū)非常活躍,很容易找到很多現(xiàn)成的開(kāi)源功能標(biāo)簽以供使用以及樣例程序可供參考,而且運(yùn)行比較穩(wěn)定,因此本文表示層采用 S truts框架。1.2業(yè)務(wù)層框架業(yè)務(wù)組件層輕量級(jí)解決方案主要包括 Spring、H ivemind等。但是目前使用最為廣泛的還是 Spring框架,Spring框架是一個(gè)基于IoC和AOP(面向方面編程 )的構(gòu)架。采用 IoC使得它可以很容易地實(shí)現(xiàn) bean的裝配,提供了簡(jiǎn)潔的

7、AOP并據(jù)此實(shí)現(xiàn)事務(wù)管理等,但是它不具備處理應(yīng)用分布式的能力。 Spr i ng的核心要點(diǎn)是: 支持不綁定到特定 J 2EE服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)訪問(wèn)對(duì)象。這樣的對(duì)象可以在不同 J 2EE環(huán)境 (Web或EJB)、獨(dú)立應(yīng)用程序、 測(cè)試環(huán)境之間重用。1.3持久層框架持久層框主要有 H i bernate和各種JDO產(chǎn)品,以及 i BATIS 。Hibernate是一個(gè)開(kāi)源的O /RMappi ng框架,它對(duì) JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,可以應(yīng)用在任何使用 JDBC的場(chǎng)合,可以在應(yīng)用 EJB的J2EE框架中取代CMP ,完成數(shù)據(jù)持久化的重任 iBATIS是一個(gè)簡(jiǎn)易的SQLMap工具,它是將

8、手工編寫的在xm l配置文件中的 SQL語(yǔ)句映射成 Java對(duì)象。使用 i BAT IS提供的 O /R M appi ng機(jī)制,對(duì)業(yè)務(wù)邏輯實(shí)現(xiàn)人員而言,面對(duì)的是純粹的 Java對(duì)象,這一層與通過(guò) H i bernate實(shí)現(xiàn)O /R M app i ng而言基本一致,而對(duì)于具體的數(shù)據(jù)操作,H i bernate會(huì)自動(dòng)生成 SQL語(yǔ)句,而 iBATIS則要求開(kāi)發(fā)者編寫具體的SQL語(yǔ)句。相對(duì) H iberna te等全自動(dòng)O /R M appi ng機(jī)制而言,i BATIS以SQL開(kāi)發(fā)的工作量和數(shù)據(jù)庫(kù)移植性上的讓步,為系統(tǒng)設(shè)計(jì)提供了更大的自由空間。本文采用 i BATIS作為持久層框架,充分發(fā)揮其

9、自由靈活的特點(diǎn)。1.4集成三種框架技術(shù):將S truts框架,Spri ng框架和i BATIS框架集成在一起,實(shí)現(xiàn)無(wú)縫連接,可達(dá)到提高軟件開(kāi)發(fā)效率的目的。集成后的框架分為五個(gè)邏輯層,自頂向下依次是客戶層、 表示層、 業(yè)務(wù)層、 持久層、 數(shù)據(jù)源層,圖 1為五個(gè)邏輯層的分布情況以及三個(gè)框架分別所居的層次。圖 1 整合后的分層結(jié)構(gòu)圖客戶層 該層完成與用戶的交互功能,負(fù)責(zé)傳送客戶請(qǐng)求,接收系統(tǒng)響應(yīng),顯示處理結(jié)果。主要由 HTML代碼、JSP代碼和標(biāo)簽組成,屬應(yīng)用系統(tǒng)的前端界面部分。表示層 該層主要負(fù)責(zé)處理用戶請(qǐng)求,并將請(qǐng)求信息發(fā)送到業(yè)務(wù)層進(jìn)行處理,業(yè)務(wù)層處理完之后,將處理結(jié)果返回到客戶層,基于 MV

10、C模式的 S truts框架工作在表示層,它還負(fù)責(zé)處理應(yīng)用程序的異常以及對(duì)提交的表單進(jìn)行數(shù)據(jù)校驗(yàn)。業(yè)務(wù)層 該層負(fù)責(zé)處理用戶請(qǐng)求的業(yè)務(wù)邏輯。業(yè)務(wù)層采用輕量級(jí)容器 Spring IoC,它通過(guò)配置 XML文件進(jìn)行各層間的交互,為表示層提供業(yè)務(wù)模型組件。業(yè)務(wù)模型組件通過(guò)調(diào)用持久層 DAO 操縱數(shù)據(jù)庫(kù),完成業(yè)務(wù)邏輯。 IoC還提供事務(wù)處理、 緩沖池等容器組件,提升系統(tǒng)性能,保證數(shù)據(jù)完整性。持久層 該層主要實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。 i BAT IS框架工作在持久層,i BAT IS DAO 通過(guò)調(diào)用 SQLM ap ,完成對(duì)數(shù)據(jù)庫(kù)的操作,實(shí)現(xiàn)業(yè)務(wù)層的調(diào)用。 i BAT IS SQLM ap使用 X M L描

11、述符將JavaBeans等映射到 SQL語(yǔ)句,通過(guò) JDBC實(shí)現(xiàn)與底層關(guān)系數(shù)據(jù)庫(kù)的交互。數(shù)據(jù)源層 由關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng) (如: SQL Serve r ,Oracle等 )構(gòu)成數(shù)據(jù)源層。集成后的框架具備了三種框架的技術(shù)優(yōu)勢(shì),將 Struts的MVC機(jī)制,Spr i ng的控制反轉(zhuǎn)機(jī)制,以及 i BATIS的 SQL M ap映射機(jī)制融合在一起。集成框架在 W eb應(yīng)用程序開(kāi)發(fā)中的優(yōu)勢(shì)主要體現(xiàn)在:(1) Struts框架的 MVC模式將表現(xiàn)邏輯和業(yè)務(wù)邏輯分離,擺脫了原有模式的高耦合性,提高了開(kāi)發(fā)效率。(2) Spring框架提供了輕量級(jí)的管理業(yè)務(wù)組件的 IoC容器。實(shí)現(xiàn)了對(duì) EJB技術(shù)的替代和更好

12、的組件重用性,降低對(duì)象之間的依賴,使得程序的調(diào)試修改更為簡(jiǎn)單。(3) i BATIS框架實(shí)現(xiàn)了 DAO 和 SQL M ap的分離,使系統(tǒng)的設(shè)計(jì)更清晰、 更易維護(hù)、 更易單元測(cè)試。而且通過(guò)靈活使用SQL語(yǔ)句基本上可以實(shí)現(xiàn)不使用數(shù)據(jù)訪問(wèn)框架能夠?qū)崿F(xiàn)的所有功能,甚至更多。(4) 三框架的融合大大減少了軟件開(kāi)發(fā)的代碼量,降低了各模塊間的耦合度,使得程序更易調(diào)試、 修改與維護(hù),提高了工作效率。(5) 三框架都是開(kāi)源項(xiàng)目,可以免費(fèi)獲取,不需要 E J B服務(wù)器,應(yīng)用程序部署在 WEB服務(wù)器上,節(jié)省開(kāi)支、 降低了開(kāi)發(fā)成本。第二章 電子商務(wù)信息平臺(tái)的設(shè)計(jì)2.1系統(tǒng)平臺(tái)定位作為電子商務(wù)信息平臺(tái),目的是為IT行

13、業(yè)的用戶提供最快最新的IT行業(yè)的信息、提供便利的在線服務(wù),使企業(yè)的利益最大化。為會(huì)員單位和其他企事業(yè)單位提供IT各行業(yè)國(guó)內(nèi)外新技術(shù)、新產(chǎn)品、先進(jìn)管理經(jīng)驗(yàn)和市場(chǎng)信息;為企業(yè)提供國(guó)際交流、貿(mào)易洽談、市場(chǎng)開(kāi)拓機(jī)會(huì);開(kāi)展?fàn)I銷活動(dòng),定期舉辦展銷會(huì)等貿(mào)易促進(jìn)活動(dòng),發(fā)布各種信息,提供相關(guān)服務(wù)。此平臺(tái)將充分利用計(jì)算機(jī)聯(lián)網(wǎng)改變了傳統(tǒng)的信息傳遞方式,提供了快速獲取最新信息的手段這一優(yōu)勢(shì),及時(shí)發(fā)布IT行業(yè)實(shí)時(shí)動(dòng)態(tài)信息,為用戶提供全方位的行業(yè)信息服務(wù)。電子商務(wù)信息平臺(tái)可以鞏固和樹(shù)立企業(yè)形象,成為產(chǎn)品品牌宣傳和業(yè)務(wù)推廣的有力渠道,是與消費(fèi)者之間交流的重要渠道,是與經(jīng)銷商或合作伙伴之間溝通、業(yè)務(wù)合作往來(lái)的主要紐帶,節(jié)省了

14、企業(yè)成本,提高了效率,而且也為用戶節(jié)約了時(shí)間。2.2用戶管理系統(tǒng)作為電子商務(wù)信息的展現(xiàn)平臺(tái),所以有必要對(duì)用戶進(jìn)行會(huì)員與非會(huì)員的區(qū)分,給會(huì)員賦予特殊權(quán)限,可以使用具有商業(yè)機(jī)密的信息,而非會(huì)員則只能瀏覽一些大眾性的信息。用戶管理系統(tǒng)的主要功能是管理和維護(hù)會(huì)員和非會(huì)員的權(quán)限和信息。(1)在Mysql上創(chuàng)建本電子商務(wù)平臺(tái)的數(shù)據(jù)庫(kù)(2)建用戶的檔案信息表(3)設(shè)置與用戶信息相關(guān)的字段。(4)設(shè)計(jì)用戶界面。為了方便新用戶注冊(cè),老用戶及時(shí)登錄,我們將用戶管理模塊放在了首頁(yè)的最醒目的位置主頁(yè)的右上方。這個(gè)模塊主要包括四個(gè)內(nèi)容:新用戶注冊(cè)、用戶登錄、用戶修改密碼以及用戶忘記密碼的處理。 a新用戶注冊(cè)。當(dāng)用戶填寫

15、好自己的會(huì)員信息并提交后,我們?cè)O(shè)計(jì)了一個(gè)用于處理會(huì)員信息的在后臺(tái)服務(wù)器端運(yùn)行的程序,用于將會(huì)員所提交的信息實(shí)時(shí)的寫入數(shù)據(jù)庫(kù)中。 b會(huì)員身份確認(rèn)模塊。用戶提交了注冊(cè)信息后,我們要為系統(tǒng)管理員設(shè)計(jì)一個(gè)查閱用戶信息和確認(rèn)會(huì)員身份的系統(tǒng),這就是會(huì)員身份確認(rèn)模塊。 c忘記密碼處理模塊。用戶在注冊(cè)時(shí)需要提交密碼提示問(wèn)題與答案,如果用戶忘記了密碼,但沒(méi)有忘記密碼提示問(wèn)題的答案,那么我們可以設(shè)計(jì)出一個(gè)讓用戶通過(guò)回答密碼提示問(wèn)題的程序來(lái)讓用戶獲得密碼。在數(shù)據(jù)庫(kù)中只需通過(guò)比較該用戶提交的密碼提示問(wèn)題的答案是否與原來(lái)存在數(shù)據(jù)庫(kù)中的答案相匹配來(lái)判斷是否給他提供正確的密碼。2.3信息顯示系統(tǒng)傳達(dá)企業(yè)電子商務(wù)信息,包括圖

16、片新聞、商城快訊、一周熱點(diǎn)排行、新聞專題、電商服務(wù)、精彩推薦、廠商動(dòng)態(tài)和電商世界,緊跟時(shí)代脈搏,把握無(wú)限商機(jī)。(1)建立新聞數(shù)據(jù)庫(kù)表。由于新聞信息量大、時(shí)效性強(qiáng)、新聞?lì)悇e多,所以采用分類顯示的方法。這樣一來(lái),就需要根據(jù)新聞?lì)悇e的不同建立不同的新聞數(shù)據(jù)庫(kù)表。 (2)設(shè)置與新聞信息相關(guān)的字段,例如新聞編號(hào),新聞標(biāo)題,新聞內(nèi)容,新聞發(fā)布時(shí)間等,其中新聞編號(hào)和新聞發(fā)布時(shí)間在程序設(shè)計(jì)中起著相當(dāng)重要的作用。這是因?yàn)橛脩艨偸窍朐谧钕瓤匆?jiàn)最新的新聞,所以,我們?cè)谠O(shè)計(jì)程序時(shí),必須將新聞的顯示次序按照新聞的發(fā)布時(shí)間的降序排列,這樣就可以保證用戶最先看到的新聞一定是最先發(fā)布的。 (3)新聞信息的分頁(yè)顯示。2.4信息

17、發(fā)布系統(tǒng) 為企業(yè)提供方便的在線信息發(fā)布功能,使企業(yè)及時(shí)地發(fā)布供應(yīng)和需求信息。充分利用網(wǎng)絡(luò)信息的時(shí)效性強(qiáng)、準(zhǔn)確性高、便于存儲(chǔ)和檢索方便的功能,奠定企業(yè)進(jìn)行網(wǎng)絡(luò)營(yíng)銷決策和計(jì)劃的基礎(chǔ)。2.5信息查詢系統(tǒng) 方便用戶進(jìn)行各種對(duì)感興趣的信息進(jìn)行檢索,尋求商機(jī),節(jié)省時(shí)間和資源。這部分包括分類查詢和條件查詢兩部分。第三章 系統(tǒng)代碼實(shí)現(xiàn)3.1 整合項(xiàng)目開(kāi)發(fā)基本框架 準(zhǔn)備工作(1) 配置開(kāi)發(fā)環(huán)境 JDK版本:jdk J2EE容器:Tomcat 6.0 數(shù)據(jù)庫(kù):MySQL 系統(tǒng):Windows XP Profession 開(kāi)發(fā)工具:MyEclipse、Dreamweaver8.0、PhotoShop CS3 本系統(tǒng)

18、使用的框架版本:Struts2.0、Spring2.5、Ibatis(2)下載相關(guān)jar包到Spring、Struts和iBATIS官方網(wǎng)站下其最新壓縮包,將下載的三個(gè)框架分別解壓縮。新建一個(gè)Web Project(名稱為SSH_NEWS)。 向項(xiàng)目中加入Spring框架將Spring解壓縮以后spring-framework-dist目錄中的spring.jar復(fù)制到Web項(xiàng)目的WEB-INF/lib目錄中(Spring核心jar包)。復(fù)制spring-framework-liblog4j中的log4j相關(guān)的jar文件到項(xiàng)目中WEB-INF/lib目錄中(日志jar包)。打開(kāi)WEB項(xiàng)目中的W

19、EB-INF目錄中的web.xml文件,添加及結(jié)合項(xiàng)目實(shí)際情況配置以下內(nèi)容 contextConfigLocation/WEB-INF/config/applicationContext.xmllog4jConfigLocation/WEB-INF/config/perties log4jRefreshInterval 60000 3.1.3 向項(xiàng)目中加入Struts框架將解壓之后的strutsstruts-.1appsstruts2-blank-WEB-INFlib下面的六個(gè)基本jar文件復(fù)制到Web項(xiàng)目的WEB-INF/lib目錄中打開(kāi)WEB項(xiàng)目中的WEB-

20、INF目錄中的web.xml文件,添加及結(jié)合項(xiàng)目實(shí)際情況配置以下內(nèi)容 struts2-cleanup org.apache.struts2.dispatcher.ActionContextCleanUp struts2-cleanup /* struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* 配置數(shù)據(jù)源Spring提供了對(duì)多種數(shù)據(jù)連接池的支持,本項(xiàng)目選中c0p0來(lái)作為數(shù)據(jù)庫(kù)的連接,直接將spring-framework-libc3p0下面的復(fù)制到Web項(xiàng)目的WEB-IN

21、F/lib目錄中(1)為了是后邊修改數(shù)據(jù)庫(kù)相關(guān)信息更加方便,在WEB-INFconfig目錄中創(chuàng)建perties,具體內(nèi)容:jdbc.driverClassName=jdbc.url=jdbc:mysql:/localhost:3306/eshop?useUnicode=true&characterEncoding=utf-8jdbc.username=rootjdbc.password=mysql(2)在WEB項(xiàng)目中的WEB-INFconfig目錄中的Spinrg的配置危機(jī)applicationContext.xml文件,配置以下內(nèi)容:/WEB-INF/config/jdbc

22、.properties $jdbc.driverClassName$jdbc.url$jdbc.username$jdbc.password 為項(xiàng)目配置Spring事務(wù)管理在WEB項(xiàng)目中的WEB-INFconfig目錄中的Spinrg的配置危機(jī)applicationContext.xml文件,添加以下內(nèi)容: 配置項(xiàng)目定時(shí)器由于項(xiàng)目需要根據(jù)后臺(tái)的數(shù)據(jù)生成實(shí)時(shí)的數(shù)據(jù)信息,因此需為項(xiàng)目配置一個(gè)時(shí)間調(diào)度器,讓項(xiàng)目可以根據(jù)設(shè)定的時(shí)間實(shí)時(shí)執(zhí)行我們所提供的方法,生成最新的信息。Spring提供對(duì)調(diào)度器的支持,將spring-framework-libquartz下面的復(fù)制到Web項(xiàng)目的WEB-INF/lib

23、目錄中,同時(shí)將struts-lib項(xiàng)目復(fù)制到Web項(xiàng)目的WEB-INF/lib目錄中編寫相應(yīng)的從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)生成最新信息的java類,本項(xiàng)目中此類為JspToHtml.java,項(xiàng)目中將根據(jù)設(shè)定的時(shí)間執(zhí)行JspToHtml類中的buildHtml方法。詳細(xì)代碼請(qǐng)附件源碼。在applicationContext.xml文件,添加以下內(nèi)容:buildHtml0600000 向項(xiàng)目中加入iBATIS框架由于Spring壓縮包里面已經(jīng)有了iBATIS的jar包,直接spring-framework-libibatis下面的ibatis-.726.jar復(fù)制到Web項(xiàng)目的WEB-INF

24、/lib目錄中在iBATIS中SqlMapClientFactoryBean是一個(gè)工廠bean,它暴露了兩個(gè)關(guān)鍵屬性用于注射IBatis配置文件和相關(guān)的數(shù)據(jù)源。在工廠內(nèi)部,通過(guò)讀取IBatis配置文件,Spring會(huì)創(chuàng)建出IBatis的核心組件SqlMapClient,并向相關(guān)的DAO進(jìn)行注射。 SqlMapProductDao繼承了SqlMapClientDaoSupport,后者暴露出一個(gè)sqlMapClient屬性,用于接受Spring的注射。SqlMapClientDaoSupport會(huì)對(duì)其中封裝的SqlMapClientTemplate做相應(yīng)的設(shè)置,所以DAO子類便可在取用SqlMa

25、pClientTemplate時(shí)正常地工作了。 首先在WEB-INF/config中創(chuàng)建iBATIS配置文件sqlMapConfig.xml,通過(guò)它加載相應(yīng)的sql配置文件,具體內(nèi)容如下!DOCTYPE sqlMapConfig PUBLIC -/iBATIS.com/DTD SQL Map Config 2.0/EN 在applicationContext.xml文件,添加對(duì)iBATIS的支持:/省略 WEB-INF/config/sqlMapConfig.xml/省略 相應(yīng)的Dao以及Service則由Spring容器通過(guò)依賴注入來(lái)管理:/省略/省略 向項(xiàng)目中加入AJAX框架在目前的Web

26、2.0熱潮中,Ajax已成為人們談?wù)撟疃嗟募夹g(shù)術(shù)語(yǔ)!其實(shí),AJAX(Asynchronous JavaScript and XML)是多種技術(shù)的綜合,它使用XHTML和CSS標(biāo)準(zhǔn)化呈現(xiàn),使用DOM實(shí)現(xiàn)動(dòng)態(tài)顯示和交互,使用XML和XSTL進(jìn)行數(shù)據(jù)交換與處理,使用XMLHttpRequest對(duì)象進(jìn)行異步數(shù)據(jù)讀取,使用Javascript綁定和處理所有數(shù)據(jù)。在本項(xiàng)目中,將使用目前比較流行的兩個(gè)ajax框架ajaxAnywhere和dwr。配置dwr框架DWR(Direct Web Remoting)是一個(gè)開(kāi)源的類庫(kù),可以幫助開(kāi)發(fā)人員開(kāi)發(fā)包含Ajax技術(shù)的網(wǎng)站。它可以允許在瀏覽器里的代碼使用運(yùn)行在We

27、b服務(wù)器上的Java函數(shù),就像它在瀏覽器里一樣。DWR包含兩個(gè)主要的部分,其一是運(yùn)行在瀏覽器客戶端的Javascript,這部分被用來(lái)與服務(wù)器通信,并更新頁(yè)面內(nèi)容;其二是運(yùn)行在服務(wù)器端的Java Servlet,這部分被用來(lái)處理請(qǐng)求并將響應(yīng)結(jié)果發(fā)送給瀏覽器。在項(xiàng)目通過(guò)根據(jù)用戶評(píng)論是提交的用戶名和密碼,查詢是否有次用戶存在,存在則將相應(yīng)的信息返回到頁(yè)面/判斷是否匿名/省略function checkUser()var comment1= document.getElementById(commentVO.comment).value; comment1 = comment1.replace(/(

28、s*)|(s*$)/g,); if(comment1=) alert(請(qǐng)輸入評(píng)論內(nèi)容);return false; /匿名 if(document.getElementById(notuser).checked)comment();/不匿名,檢查用戶名和密碼elsevar userVO = new UserVO();var name=document.getElementById(username).value;var pwd=document.getElementById(pwd).value;name = name.replace(/(s*)|(s*$)/g,);pwd = pwd.rep

29、lace(/(s*)|(s*$)/g,);if(name=)alert(請(qǐng)?zhí)顚懹脩裘?;return; if(pwd=)alert(請(qǐng)?zhí)顚懨艽a!);return;userVO.loginName=name;userVO.loginPwd=pwd;userDao.loadUser(userVO,callBack);function callBack(data)if(data=null|data=)alert(用戶名或密碼不正確!);elsedocument.getElementById(commentVO.userId).value=data.id;comment();/省略上dwr官方網(wǎng)站下

30、載最新的jar包,本項(xiàng)目中為版本,將dwr的jar包添加到web項(xiàng)目中。首先,在WEB-INF目錄下創(chuàng)建dwr的配置文件dwr.xml 在web.xml中配置dwr的servlet: /省略 dwr config-tcps /WEB-INF/dwr.xml debug true dwr /dwr/* /省略配置ajaxAnywhere使用AjaxAnywhere可以將頁(yè)面簡(jiǎn)單的劃分為多個(gè)區(qū)域(zone),然后調(diào)用AjaxAnywher刷新(Refresh)那些指定的區(qū)域,而不是整個(gè)頁(yè)面。在本系統(tǒng)中,對(duì)于新聞的評(píng)論采用了ajaxAnywhere,當(dāng)我們提交評(píng)論時(shí),既可以在無(wú)需刷新整個(gè)頁(yè)面的情況下

31、,在下方的評(píng)論列表中看到提交的評(píng)論。如下圖中,只刷新最新評(píng)論區(qū)域,同時(shí)也可以看到右上角的loading標(biāo)志,如圖3-1:圖3-1 異步加載展示圖向項(xiàng)目中添加ajaxAnywhere的jar包,在web.xml配置相應(yīng)的過(guò)濾器: AjaxAnywhere AjaxAnywhere *.jsf AjaxAnywhere *.jsp AjaxAnywhere *.action 向項(xiàng)目中加入U(xiǎn)RL重寫框架通過(guò)URL重寫,可以縮短url,隱藏實(shí)際路徑提高安全性,易于用戶記憶和鍵入,易于被搜索引擎收錄。向項(xiàng)目中添加URL重寫的jar包,本系統(tǒng)中使用的是urlrewritefilter-.jar。首先在WE

32、B-INF中創(chuàng)建URLWRITER的配置文件urlrewrite.xml,具體內(nèi)容如下: /InfoView_(0-9+).html$ /emotionAction.load.action?emotionArticleVO.atricleId=$1 /queryInfo_(0-9+).html$ /emotionAction.queryForList.action?emotionArticleVO.auditFlag=Y&emotionArticleVO.flag=$1 /index.jsp$ /l_index.jsp /index.html$ /l_index.jsp 其次在web.

33、xml中配置相應(yīng)的過(guò)濾器/省略 UrlRewriteFilter org.tuckey.web.filters.urlrewrite.UrlRewriteFilter logLevel WARN /省略此時(shí)在瀏覽器中輸入http:/localhost:8099/SSH_NEWS/InfoView_162.html,既可以執(zhí)行/emotionAction.load.action?emotionArticleVO.atricleId=1633.2 具體代碼實(shí)現(xiàn)作為一個(gè)電子信息展現(xiàn)的平臺(tái),如何更好的向外界展示企業(yè)的信息,是一個(gè)值得研究的重點(diǎn),在項(xiàng)目中,為了獲取企業(yè)發(fā)布的最新新聞列表,設(shè)計(jì)時(shí)間調(diào)度器,

34、定時(shí)生成最新信息;為了平臺(tái)的安全性和易于被搜索引擎收入,采用了url重寫技術(shù);為了提升與用戶間的有好交互,向項(xiàng)目中加入了ajax框架。下面將通過(guò)具體的項(xiàng)目流程,講解以上重點(diǎn)。 持久層實(shí)現(xiàn)在持久程中主要包括文章VO和評(píng)論VO,同時(shí)文章和評(píng)論為一對(duì)多關(guān)系,即一篇文章可以擁有多條評(píng)論,而一條評(píng)論只能屬于一篇文章。(1)表結(jié)構(gòu)文章表 字段名類型備注IdInt文章idAuthorVarchar作者Contenttext文章內(nèi)容ClickInt點(diǎn)擊數(shù)Title Varchar文章標(biāo)題IntroductionVarchar文章簡(jiǎn)介UpInt頂DownInt 踩FlagVarchar文章類型EanbleflagVarchar是否可用標(biāo)識(shí)符AuditFlag

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論