版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 江西師大科技學(xué)院 jiangxinormaluniversity學(xué)士學(xué)位論文基于web的網(wǎng)上商城的設(shè)計(jì)與實(shí)現(xiàn)the design and implementation of online shopping mall based on web姓 名: 學(xué) 號(hào):0608069 學(xué) 院: 所學(xué)專業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 完成時(shí)間:2010年04月 指導(dǎo)教師: 答辯日期:2010年05月二零一零年 五月聲 明本人鄭重聲明:所呈交的學(xué)位論文,是本人在指導(dǎo)教師指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果。除文中已經(jīng)注明引用的內(nèi)容外,本論文不含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫過(guò)的作品或成果。對(duì)本文的研究做出重要貢獻(xiàn)的
2、個(gè)人和集體,均已在文中以明確的方式標(biāo)明。本聲明的法律結(jié)果由本人承擔(dān)。本畢業(yè)設(shè)計(jì)(論文)成果是本人在江西師范大學(xué)科學(xué)技術(shù)學(xué)院讀書期間在指導(dǎo)教師指導(dǎo)下取得的,成果歸江西師范大學(xué)科學(xué)技術(shù)學(xué)院所有。特此聲明。聲明人(畢業(yè)設(shè)計(jì)(論文)作者)學(xué)號(hào):聲明人(畢業(yè)設(shè)計(jì)(論文)作者)簽名:簽名日期: 年 月 日摘 要在線手機(jī)商店介紹了創(chuàng)建網(wǎng)上商店的所有技術(shù),不僅它的基本思路具有普遍意義,而且它的模塊具有靈活多變,適用各種需求,并具有可移植性,當(dāng)你創(chuàng)建自己的在線商店時(shí),可以為你節(jié)省大量的人力物力,節(jié)省大量的時(shí)間,減少編程錯(cuò)誤。這是一個(gè)綜合性的動(dòng)態(tài)網(wǎng)站。其中包括會(huì)話跟蹤、javabean和mvc模型、表達(dá)式語(yǔ)言(e
3、l)、標(biāo)準(zhǔn)標(biāo)簽庫(kù)(jstl)、jdbc和數(shù)據(jù)庫(kù)連接池(bdcp)、認(rèn)證(form、basic)和安全連接(ssl)、事件監(jiān)聽(tīng)(listener)等。首先介紹在線手機(jī)商店的web結(jié)構(gòu),在主頁(yè)的左邊設(shè)計(jì)了5個(gè)鏈接按鈕:第一個(gè)是主頁(yè),第二個(gè)是瀏覽手機(jī)分類,第三個(gè)是快速下訂單,第四個(gè)是加入電郵列表,第五個(gè)是顧客服務(wù)部。這個(gè)在線手機(jī)商店有4個(gè)web應(yīng)用,它們是下載應(yīng)用、購(gòu)物車應(yīng)用、加入電郵列表應(yīng)用和管理應(yīng)用。顧客進(jìn)入在線手機(jī)商店可以在幾個(gè)應(yīng)用之間轉(zhuǎn)移。關(guān)鍵字:在線手機(jī)商店,mvc模型,應(yīng)用abstractonline mobile phone shop, introduced all the techn
4、ology to create online stores not only its basic ideas of universal significance, and its module has a flexible, application needs, and have the portability, when you create your own online store, you can save a lot of manpower and resources, save a lot of time and reduce programming errors.this is
5、a comprehensive and dynamic web site. including dialog, tracking and javabean mvc models, expressions language (el), standard labelling (jstl), and database connection pool jdbc (bdcp), certification, form basic) and security connection (ssl), monitoring events (listener). first, in line mobile shop
6、 web structure, the home page on the left has five link button, the first is the home, the second is browse mobile category, article 3 of the rapid order, article 4 of the mail list, a fifth of customer services. the online mobile shop there are four web applications, which is to download applicatio
7、n, cart applications, the mail list applications and management. customers access to online mobile shop can be applied in a few transferskeyword: online mobile phone shop,mvc models,application目 錄引 言2第一章 在線手機(jī)商店概況31.1 主頁(yè)31.2 web結(jié)構(gòu)41.3 業(yè)務(wù)邏輯61.4 數(shù)據(jù)庫(kù)81.5 處理數(shù)據(jù)庫(kù)的java類8第二章 下載應(yīng)用92.1 下載用戶界面92.2 下載應(yīng)用結(jié)構(gòu)102.3 下
8、載應(yīng)用程序10第三章 購(gòu)物車應(yīng)用143.1 購(gòu)物車用戶界面143.2 購(gòu)物車結(jié)構(gòu)153.3 購(gòu)物車用戶程序16第四章 管理應(yīng)用194.1 管理應(yīng)用引論194.2 處理購(gòu)物清單應(yīng)用204.3 報(bào)告應(yīng)用24總 結(jié)25參考文獻(xiàn)26致 謝27引 言隨著計(jì)算機(jī)網(wǎng)絡(luò)的迅速普及、新的軟件、硬件和新的用戶數(shù)據(jù)通信界面開(kāi)始逐漸從觀念上改變了人們獲取信息的方式.人們開(kāi)始逐漸從被動(dòng)地接收信息變?yōu)橹鲃?dòng)地獲取信息,進(jìn)而發(fā)展為主動(dòng)地制造、提供信息,形成了電子信息交流環(huán)境. internet的出現(xiàn)和www技術(shù)的發(fā)展更有力的支持了電子信息服務(wù)和大眾信息媒體的傳播.進(jìn)入21世紀(jì),互聯(lián)網(wǎng)已經(jīng)走進(jìn)了我們?nèi)粘I畹母鱾€(gè)角落.網(wǎng)站逐漸
9、融入人們的生活。快速及時(shí)的新聞瀏覽,五彩繽紛的網(wǎng)上信息,使網(wǎng)絡(luò)與人們的生活息息相關(guān)。工大保衛(wèi)處用的網(wǎng)頁(yè)還是靜態(tài)web站點(diǎn)。靜態(tài)網(wǎng)頁(yè)沒(méi)有數(shù)據(jù)庫(kù)的支持,在網(wǎng)站制作和維護(hù)方面工作量較大,因此當(dāng)網(wǎng)站信息量很大時(shí)完全依靠靜態(tài)網(wǎng)頁(yè)制作方式比較困難。一方面信息的不斷增加和變化,使站點(diǎn)維護(hù)人員不得不經(jīng)常修改他們的網(wǎng)頁(yè),特別是基于數(shù)據(jù)庫(kù)驅(qū)動(dòng)的web站點(diǎn)更是如此,隨著internet上信息量的增多和交互性的加強(qiáng)使html顯得越來(lái)越難以勝任。另一方面現(xiàn)在保衛(wèi)處網(wǎng)頁(yè)上沒(méi)有留主板,瀏覽者不能與瀏覽者進(jìn)行有效交互,也不能發(fā)表自己的觀點(diǎn),使人們感到越來(lái)越乏味,而不愿意再一次地進(jìn)入同一站點(diǎn)。所以開(kāi)發(fā)動(dòng)態(tài)網(wǎng)頁(yè)或動(dòng)態(tài)內(nèi)容成了越來(lái)
10、越多的站點(diǎn)所追求目標(biāo)。制作網(wǎng)頁(yè)是企業(yè)和個(gè)人的宣傳自己的重要手段,同時(shí)也是學(xué)習(xí)者獲取學(xué)習(xí)信息的重要手段。尤其是在教育領(lǐng)域,在素質(zhì)教育與終身教育成為必然的今天,人們對(duì)信息的需求有了更新,更高的要求,而網(wǎng)頁(yè)由于本身所具有的信息量大,傳遞快速,沒(méi)有時(shí)空限制等特點(diǎn)恰好滿足這種要求。所以網(wǎng)頁(yè)也逐漸成為一種新興的教育資源。也正是由于網(wǎng)絡(luò)實(shí)現(xiàn)網(wǎng)站的數(shù)據(jù)信息能夠進(jìn)行實(shí)時(shí)交互,保證網(wǎng)站數(shù)據(jù)的實(shí)時(shí)性。第一章 在線手機(jī)商店概況1.1 主頁(yè)主頁(yè)(例程1)分成5塊,左右上下以及中間。頭和尾分別是html和jsp頁(yè)面,它們都是很簡(jiǎn)單,在整個(gè)購(gòu)物過(guò)程中保持不變。左邊是5個(gè)鏈接按鈕,它們分別是主頁(yè),瀏覽手機(jī)分類,快速下訂單,加
11、入電郵列表,顧客服務(wù)部。瀏覽手機(jī)分類鍵讓顧客瀏覽每款手機(jī)的樣品,基本參數(shù)、評(píng)論、單價(jià)、手機(jī)型號(hào)、公司和產(chǎn)地等。如果顧客滿意,就可選購(gòu)放入購(gòu)物車??梢岳^續(xù)看下個(gè)手機(jī)的詳細(xì)情況,你也可以隨時(shí)顯示購(gòu)物車內(nèi)的商品,只要點(diǎn)擊網(wǎng)頁(yè)右上角的“顯示購(gòu)物車”按鈕。這在線手機(jī)商店提供兩首免費(fèi)歌曲試聽(tīng),并可以下載,下載前要輸入用戶名和電郵地址進(jìn)行注冊(cè)。最后,結(jié)帳付款。如果顧客事先進(jìn)行了調(diào)研,它可直接進(jìn)入快速下訂單。右邊展示新投放市場(chǎng)的手機(jī)。每次顧客點(diǎn)擊鏈接按鈕,動(dòng)態(tài)變化的部分是中間顯示,左邊內(nèi)容不變,但jsp頁(yè)面在不斷變化。右邊內(nèi)容隨著不同鏈接有所變化,但變化不大。按加入電郵列表鏈接,將彈出表單讓用戶輸入姓名和電郵
12、地址。按顧客服務(wù)部鏈接,將彈出聯(lián)系信息。圖1是在線手機(jī)商店的主頁(yè)。例程1 主頁(yè)(index.jsp) 歡迎你來(lái)到在線手機(jī)商店! 諾基亞n97代表了新一代的s60智能手機(jī),諾基亞是“多媒體電腦”, n97是第一款預(yù)裝 nokia maps 3.0導(dǎo)航地圖的諾基亞手機(jī), 摩托羅拉(motolora a3100)是moto第一款采用windows mobile 6.1 professional 操作系統(tǒng)的全觸控手機(jī);手機(jī)除了擁有hsdpa/hsupa/wlan等高速網(wǎng)絡(luò)能力之外, 還具備gps模塊、528mhz處理器、256/128mb內(nèi)存、300萬(wàn) 像素自動(dòng)對(duì)焦攝像頭。 索尼愛(ài)立信具有超大的顯示屏
13、幕,無(wú)所不能的連接功能,gps,wi-fi以及完美的全動(dòng)態(tài)菜單,cyber-shot拍照手機(jī)系列和walkman音樂(lè)手機(jī)系列是它旗下的兩張王牌, 索尼愛(ài)立信w995采用最新的walkman 4.0播放器,并配備了810萬(wàn)像素的攝像頭。 三星samsung,在全觸屏智能手機(jī)中,三星公司的sgh-i908e便是其中的佼佼者。憑借內(nèi)外皆修的出色表現(xiàn),sgh-i908e也一度成為微軟系統(tǒng)最炙手可熱的智能手機(jī)之一。 圖1-1 在線手機(jī)商店中4種手機(jī)的分類1.2 web結(jié)構(gòu)圖2表明在線手機(jī)商店web應(yīng)用引領(lǐng)4個(gè)web應(yīng)用。下載應(yīng)用與電郵列表應(yīng)用比較簡(jiǎn)單。本在線手機(jī)商店免費(fèi)提供兩首歌曲供用戶下載,用戶必須輸
14、入用戶名和電郵列表鏈接,會(huì)彈出表單讓用戶輸入姓名和電郵地址。購(gòu)物車應(yīng)用是在線商店的核心,負(fù)責(zé)選購(gòu)商品加入購(gòu)物車,可以對(duì)購(gòu)物車內(nèi)的商品更改和刪除,最后,付款結(jié)帳。管理應(yīng)用專門為商店經(jīng)理和經(jīng)理代理設(shè)計(jì)的。比如,顯示和處理購(gòu)物清單,查看有關(guān)用戶、購(gòu)物清單和下載的總結(jié)報(bào)告。web.xml提供context-param、servlet-mapping、listener、welcome-file-list、error-page和authentication等元素。這里省略了很多servlet-mapping。例程2是context.xml文件,它配置了數(shù)據(jù)庫(kù)連接池所需的datasource,以及授權(quán)給用戶
15、的datasourcerealm。這文件中:datasourcename = “jdbc/cellphone”必須與在connectionpool.java中的datasource說(shuō)明一致:datasource = (datasource)ic.lookup(“java:/comp/env/jdbc/cellphone”);圖1-2 在線手機(jī)商店web結(jié)構(gòu)例程2 context.xml文件 1.3 業(yè)務(wù)邏輯在線手機(jī)商店的業(yè)務(wù)邏輯對(duì)象存放在cellphone.bussiness目錄下。共有6個(gè)javabeans,它們分別是user、download、invoice、product、cart和li
16、neitem。它們遵循javabean規(guī)范。一個(gè)javabean對(duì)象可以包含作為實(shí)例變量的另一個(gè)javabean對(duì)象。比如,download和invoice對(duì)象可設(shè)置和獲得user對(duì)象;相似的,lineitem對(duì)象能設(shè)置和獲得product對(duì)象;cart對(duì)象能設(shè)置和獲得arraylist對(duì)象,它包含lineitem對(duì)象。這里只例舉product.java(例程3),其余類同。它定義私有實(shí)例變量,它們對(duì)應(yīng)著數(shù)據(jù)庫(kù)里product表格里的列名,它們是code、description和price,對(duì)這3個(gè)實(shí)例變量提供了set和get方法,定義了沒(méi)有參數(shù)的構(gòu)造方法。此外,還提供了幾個(gè)方便的方法,get
17、artistname()和getalbumname()從description實(shí)例變量中獲取手機(jī)品牌名,制造公司和產(chǎn)地。getimageurl()和getproducttype()提供產(chǎn)品的更多信息。最后,getpricecurrencyformat()將價(jià)錢換成當(dāng)?shù)刎泿?。例? product.javapackage cellphone.business;import java.text.numberformat;import java.io.serializable;public class product implements serializable private string co
18、de; private string description; private double price; public product() code = ; description = ; price = 0; public void setcode(string code) this.code = code; public string getcode() return code; public void setdescription(string description) this.description = description; public string getdescripti
19、on() return description; public string getartistname() string artistname = description.substring(0, description.indexof( - ); return artistname; public string getalbumname() string albumname = description.substring(description.indexof( - ) + 3); return albumname; public void setprice(double price) t
20、his.price = price; public double getprice() return price; public string getpricecurrencyformat() numberformat currency = numberformat.getcurrencyinstance(); return currency.format(price); public string getimageurl() string imageurl = /cellphone/images/ + code + _cover.jpg; return imageurl; public st
21、ring getproducttype() return cell phone; 1.4 數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)cellphone共有7個(gè)表格,其中5個(gè)對(duì)應(yīng)著除cart以外的5個(gè)javabeans,它們分別是user、invoice、lineitem、download和product。其中product表格填入數(shù)據(jù),其中4個(gè)空表表,供執(zhí)行程序填入數(shù)據(jù)。另外,還有兩個(gè)表格分別為userpass和userrole,它們存放用戶名,密碼和角色,共管理應(yīng)用使用。有這7個(gè)數(shù)據(jù)表格的sql,它們放在cellphone/db/目錄下,在dos命令下執(zhí)行:mysql source create_cellphone.sq
22、l;這樣在mysql建立數(shù)據(jù)庫(kù)cellphone,并在這數(shù)據(jù)庫(kù)建立了7個(gè)表格,其中3個(gè)填入了數(shù)據(jù),其中4個(gè)為空表格,供執(zhí)行程序時(shí)使用。1.5 處理數(shù)據(jù)庫(kù)的java類處理數(shù)據(jù)庫(kù)的java類放在cellphone/data目錄下,connectionpool類是處理數(shù)據(jù)庫(kù)連接池,dbutil和sqlutil是輔助類,有5個(gè)類對(duì)應(yīng)著5個(gè)javabeans,它們是productdb、userdb、inviocedb、lineitemdb和downloaddb。這些類用靜態(tài)方法讀取和寫入javabean對(duì)象,它們不包含任何實(shí)例變量和構(gòu)造方法。絕大部分方法是從數(shù)據(jù)庫(kù)讀取一個(gè)javabean對(duì)象,這方法接受
23、一個(gè)參數(shù),它就是javabean對(duì)象。比如productdb的selectproduct方法使用product code或product id從數(shù)據(jù)庫(kù)讀取product對(duì)象。絕大部分方法寫javabean對(duì)象進(jìn)入數(shù)據(jù)庫(kù),也是接受javabean對(duì)象為參數(shù),返回正整型數(shù)表明操作成功,數(shù)字表明有幾個(gè)記錄寫入成功;零或負(fù)整數(shù)表明執(zhí)行失敗。reportdb類是供管理應(yīng)用使用的,將在第4節(jié)中說(shuō)明。第二章 下載應(yīng)用2.1 下載用戶界面在線手機(jī)商店免費(fèi)為用戶提供兩首歌曲試聽(tīng)下載,如果用戶已注冊(cè),就直接試聽(tīng)和下載;否則用戶必須輸入用戶名和電郵地址,進(jìn)行注冊(cè)。圖3是手機(jī)分類展銷,他是用戶下載應(yīng)用的界面。用戶點(diǎn)擊
24、“聽(tīng)歌曲”,鏈接到下載應(yīng)用。如果用戶事先沒(méi)有注冊(cè),將顯示注冊(cè)頁(yè)面(圖4).輸入用戶姓名和電郵地址,提交后獲得試聽(tīng)和下載頁(yè)面。進(jìn)行注冊(cè)測(cè)試前,先點(diǎn)擊“刪除cookie”按鈕。圖2-1 手機(jī)分類展銷頁(yè)面圖2-2 下載注冊(cè)頁(yè)面2.2 下載應(yīng)用結(jié)構(gòu)圖5概括下載應(yīng)用中使用的jsp和servlet結(jié)構(gòu),所有jsp放在cellphone/catalog目錄下,所有servlet放在cellphone.catalog包里。絕大部分servlet把請(qǐng)求和響應(yīng)派送給相應(yīng)的jsp頁(yè)面。如果用戶已經(jīng)注冊(cè),checkuserservlet跳過(guò)registeruserservlet和register.jsp,調(diào)用writ
25、edownloadservlet類。displayproductservlet從數(shù)據(jù)庫(kù)讀入product對(duì)象,并把product對(duì)象作為session屬性存儲(chǔ),同時(shí)把請(qǐng)求提交到適當(dāng)?shù)膒roduct頁(yè)面(圖3)。checkuserservlet檢查用戶是否注冊(cè),如已經(jīng)注冊(cè),繼續(xù)提交給writedownloadservlet,否則,提交給注冊(cè)頁(yè)面(圖4)。 registeruserservlet從注冊(cè)頁(yè)面獲得數(shù)據(jù),創(chuàng)建user對(duì)象,并把它寫進(jìn)數(shù)據(jù)庫(kù),作為session屬性儲(chǔ)存起來(lái),返回cookies給用戶瀏覽器,這樣用戶下次不用注冊(cè)。writedownservlet創(chuàng)建download對(duì)象,并把d
26、ownload對(duì)象寫進(jìn)數(shù)據(jù)庫(kù),返回適當(dāng)?shù)穆?tīng)歌曲頁(yè)面。圖2-3 下載應(yīng)用中的jsp和servlet結(jié)構(gòu)圖2.3 下載應(yīng)用程序這里只列出下載應(yīng)用中的4個(gè)servlet,進(jìn)入在線手機(jī)商店主頁(yè)后,有兩條途徑鏈接到displayproductservlet(例程4),一個(gè)方法用戶選擇手機(jī)分類,展示手機(jī)產(chǎn)品,用戶再選擇具體產(chǎn)品,就調(diào)用displayproductservlet,它的主要功能是根據(jù)用戶選擇的productcode,來(lái)調(diào)用數(shù)據(jù)庫(kù)資料,把product對(duì)象存放在session屬性里,并派送到catalog/product_code/index.jsp頁(yè)面,展示該手機(jī)的信息(圖3),包括品牌、公司
27、、產(chǎn)地、單價(jià)、基本參數(shù)和對(duì)產(chǎn)品的評(píng)價(jià),同時(shí)還展示樣機(jī)。第二個(gè)方法,用戶點(diǎn)擊快速下訂單,也可鏈接到displayproductservlet。在樣機(jī)商品頁(yè)面的右邊,用戶點(diǎn)擊“聽(tīng)歌曲”,將鏈接到checkuserservlet。首先檢查用戶是否注冊(cè),檢查session屬性是否有user對(duì)象,如果沒(méi)有注冊(cè),就顯示注冊(cè)頁(yè)面(圖4).當(dāng)用戶輸入姓名和電郵地址并提交,此時(shí),調(diào)用registeruserservlet(例程5),它把用戶輸入的信息存放在user對(duì)象里,然后把該對(duì)象作為session屬性存儲(chǔ),供writerdownloadservlet(例程6)使用,它創(chuàng)建download對(duì)象,并寫進(jìn)數(shù)據(jù)庫(kù),
28、該對(duì)象包含downloadid,userid,downloaddate,productcode。同時(shí),展示下載頁(yè)面。例程4 displayproductservlet.javapackage cellphone.catalog;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import cellphone.business.*;import cellphone.data.*;public class displayproductservlet extends httpservlet public void
29、 doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception response.setcontenttype(text/html;charset=gb2312); request.setcharacterencoding(gb2312); / get request parameters string productcode = request.getparameter(productcode); / update the model product p
30、roduct = productdb.selectproduct(productcode); httpsession session = request.getsession(); session.setattribute(product, product); / forward to the view string url = /catalog/ + productcode + /index.jsp; requestdispatcher dispatcher = getservletcontext().getrequestdispatcher(url); dispatcher.forward
31、(request, response); 例程5 registeruserservlet.javapackage cellphone.catalog;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import cellphone.business.*;import cellphone.data.*;public class registeruserservlet extends httpservlet public void dopost(httpservletrequest request, https
32、ervletresponse response) throws ioexception, servletexception response.setcontenttype(text/html;charset=gb2312); request.setcharacterencoding(gb2312); httpsession session = request.getsession(); string firstname = request.getparameter(firstname); string lastname = request.getparameter(lastname); str
33、ing emailaddress = request.getparameter(emailaddress); user user = new user(); user.setfirstname(firstname); user.setlastname(lastname); user.setemailaddress(emailaddress); if (userdb.emailexists(emailaddress) userdb.update(user); else userdb.insert(user); session.setattribute(user, user); cookie em
34、ailcookie = new cookie(emailcookie, emailaddress); emailcookie.setmaxage(60*60*24*365*2); emailcookie.setpath(/); response.addcookie(emailcookie); string url = /catalog/writedownload; requestdispatcher dispatcher = getservletcontext().getrequestdispatcher(url); dispatcher.forward(request, response);
35、 例程6 writedownloadservlet.javapackage cellphone.catalog;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import cellphone.business.*;import cellphone.data.*;public class writedownloadservlet extends httpservlet public void dopost(httpservletrequest request, httpservletresponse res
36、ponse) throws ioexception, servletexception response.setcontenttype(text/html;charset=gb2312); request.setcharacterencoding(gb2312); httpsession session = request.getsession(); user user = (user) session.getattribute(user); product product = (product) session.getattribute(product); download download
37、 = new download(); download.setuser(user); download.setproductcode(product.getcode(); downloaddb.insert(download); string url = /catalog/ + product.getcode() + /sound.jsp; requestdispatcher dispatcher = getservletcontext().getrequestdispatcher(url); dispatcher.forward(request, response); public void
38、 doget(httpservletrequest request, httpservletresponse response) throws ioexception, servletexception dopost(request, response); 第三章 購(gòu)物車應(yīng)用3.1 購(gòu)物車用戶界面購(gòu)物車應(yīng)用是在線手機(jī)商店的核心,這個(gè)應(yīng)用引進(jìn)了實(shí)際網(wǎng)絡(luò)商店的所有元素。用戶可以通過(guò)瀏覽手機(jī)分類,了解每款手機(jī)的細(xì)節(jié),比如,基本參數(shù)和評(píng)論,手機(jī)品牌和價(jià)格,公司和產(chǎn)地(圖3),如果用戶滿意,可把該款手機(jī)放入購(gòu)物車。另外,可以在快速訂單頁(yè)面,顯示4款手機(jī)(圖6),用戶對(duì)滿意的手機(jī),可點(diǎn)擊“放入購(gòu)物車”按鈕
39、,將手機(jī)放入購(gòu)物車。在購(gòu)物頁(yè)面(圖8),你可以更改手機(jī)數(shù)量,或刪除手機(jī)。幾乎每個(gè)頁(yè)面都可顯示購(gòu)物車?yán)锏氖謾C(jī),只要單擊網(wǎng)頁(yè)右上方“顯示購(gòu)物車”按鈕或購(gòu)物車圖案。在購(gòu)物車頁(yè)面,用戶可以繼續(xù)選購(gòu),或者點(diǎn)擊“結(jié)帳交款”按鈕,進(jìn)入安全連接。如果用戶有有效cookie,并在數(shù)據(jù)庫(kù)存在有用記錄,購(gòu)物車應(yīng)用跳過(guò)用戶頁(yè)面,直接進(jìn)入購(gòu)物清單頁(yè)面(圖10)。否則,顯示購(gòu)物用戶頁(yè)面(圖8),要求用戶輸入姓名,電郵地址和送貨地址。用戶進(jìn)入購(gòu)物清單頁(yè)面,用戶可以檢查購(gòu)物訂單是否正確,用戶要修改購(gòu)物數(shù)據(jù),用戶可按修改地址按鈕,重新顯示購(gòu)物用戶頁(yè)面。于是,用戶可以修改當(dāng)前數(shù)據(jù)。在購(gòu)物清單頁(yè)面,點(diǎn)擊“繼續(xù)”頁(yè)面,將顯示信用卡頁(yè)
40、面,選擇信用卡類型,輸入信用卡號(hào)碼,選擇過(guò)期的年月,按“提交訂單”按鈕,這些過(guò)程都是在ssl安全連接情況下進(jìn)行的。此時(shí),購(gòu)物成功。圖3-1 快速訂單頁(yè)面圖3-2 購(gòu)物頁(yè)面圖3-3 顯示購(gòu)物用戶的頁(yè)面圖3-4 顯示用戶購(gòu)物的信用卡頁(yè)面3.2 購(gòu)物車結(jié)構(gòu)圖10表明購(gòu)物車應(yīng)用的servlet放在cellphone.cart包里,jsp頁(yè)面放在cellphone/cart目錄下。servlet和jsp傳輸敏感數(shù)據(jù)時(shí)購(gòu)物車應(yīng)用采用安全連接(https),以確保用戶信息,信用卡資料傳輸安全。displayquickorderservlet從數(shù)據(jù)庫(kù)讀取商品信息,并顯示快速下訂單頁(yè)面,這servlet映射到/
41、cart url。結(jié)果,用戶點(diǎn)擊“快速下訂單”按鈕,顯示快速下訂單頁(yè)面(圖6)。displaycartservlet尋找用戶購(gòu)物車,并顯示購(gòu)物車內(nèi)的商品。如果購(gòu)物車內(nèi)沒(méi)有東西,servlet就顯示快速下訂單頁(yè)面。checkuserservlet檢查用戶是否已經(jīng)輸入過(guò)個(gè)人信息,如果是,servlet從數(shù)據(jù)庫(kù)創(chuàng)建user對(duì)象,跳過(guò)user.jsp和processuserservlet。在用戶頁(yè)面輸入信息,由process-userservlet創(chuàng)建用戶對(duì)象,并把用戶對(duì)象作為session屬性儲(chǔ)存起來(lái)。display-invoiceservlet創(chuàng)建購(gòu)物清單對(duì)象,并顯示購(gòu)物清單頁(yè)面(圖10).如果發(fā)
42、現(xiàn)有錯(cuò),可點(diǎn)擊“修改地址”按鈕,進(jìn)行修改。用戶點(diǎn)擊“繼續(xù)”,購(gòu)物車應(yīng)用把請(qǐng)求和響應(yīng)提交給顯示信用卡頁(yè)面(圖9)。輸入信用卡信息后,提交訂單,completeorderservlet把用戶數(shù)據(jù)和購(gòu)物清單寫入數(shù)據(jù)庫(kù),送確認(rèn)e-mail給用戶,最后完成購(gòu)物。3.3 購(gòu)物車用戶程序例程7是displayquickorderservlet,它從數(shù)據(jù)庫(kù)讀取手機(jī)數(shù)據(jù),每次把數(shù)據(jù)存放在session作用域,其優(yōu)點(diǎn)是,當(dāng)商品發(fā)生更改時(shí),能及時(shí)供每個(gè)用戶所用,缺點(diǎn)是要從數(shù)據(jù)庫(kù)讀取多次數(shù)據(jù),每次占有內(nèi)存。如果數(shù)據(jù)庫(kù)的數(shù)據(jù)不是經(jīng)常變動(dòng),可把數(shù)據(jù)存放在servletcontext作用域,這樣只要讀取一次數(shù)據(jù),也只存放在
43、一個(gè)地方。displaycartservlet.java例程,它尋找用戶購(gòu)物車,并顯示購(gòu)物車內(nèi)的商品。如果沒(méi)有東西在購(gòu)物車?yán)?,就顯示快速下訂單頁(yè)面(圖6)。例程8是checkuserservlet,如果在session屬性中沒(méi)有找到用戶資料,就顯示用戶頁(yè)面,要求用戶輸入個(gè)人資料。然后提交processuserservlet處理,processuserservlet為用戶創(chuàng)建的一個(gè)對(duì)象,存放用戶輸入的個(gè)人資料,并把這個(gè)對(duì)象作為session屬性存儲(chǔ)起來(lái)。如果用戶曾經(jīng)輸入個(gè)人資料,則checkuserservlet跳過(guò)processuserservlet和用戶頁(yè)面,直接進(jìn)入displayinvoi
44、ceservlet。displayinvoiceservlet創(chuàng)建invoice對(duì)象,并顯示購(gòu)物清單頁(yè)面。從購(gòu)物清單出發(fā),用戶有兩種選擇,如果用戶發(fā)現(xiàn)資料不正確,可以到用戶頁(yè)面更改,如果沒(méi)有錯(cuò)誤,進(jìn)入信用卡頁(yè)面。completeorderservlet把userhe和invoice數(shù)據(jù)寫入數(shù)據(jù)庫(kù),送確認(rèn)e-mail。因?yàn)檫@兩個(gè)類要用到存放在mail.jar包里javamail api,這個(gè)jar文件已經(jīng)放在web-inf/lib目錄下。mail.jar不包含在標(biāo)準(zhǔn)jdk里,你可以到網(wǎng)站免費(fèi)下載,文件名為javamail-1_4.zip。圖3-5 completeorderservlet的結(jié)構(gòu)圖例程7 displayquickorderservlet.javapackage cellphone.cart;import java.io
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2 24-全國(guó)護(hù)理專業(yè)教學(xué) 資源庫(kù)-1738309514230
- 診斷與改進(jìn)“應(yīng)知應(yīng)會(huì)”50問(wèn)
- 課題申報(bào)參考:南方民族史詩(shī)敘事中的中華民族共同體意識(shí)研究
- 課題申報(bào)參考:面向國(guó)際傳播的外語(yǔ)教育數(shù)字化敘事理論建構(gòu)與實(shí)踐研究
- 二零二五年度慈溪市編制城市排水防澇規(guī)劃合同4篇
- 二零二五年度特色苗木種植與銷售合同4篇
- 二零二五版門面房租賃合同網(wǎng)絡(luò)信息安全條款4篇
- 二零二五年度出納崗位勞動(dòng)合同修訂與培訓(xùn)3篇
- 二零二五年度畜牧技術(shù)人員崗位職責(zé)合同4篇
- 2025版農(nóng)業(yè)合作社農(nóng)產(chǎn)品質(zhì)量安全檢測(cè)中心聘用合同范本4篇
- 三年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案
- 中醫(yī)診療方案腎病科
- 2025年安慶港華燃?xì)庀薰菊衅腹ぷ魅藛T14人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 人教版(2025新版)七年級(jí)下冊(cè)數(shù)學(xué)第七章 相交線與平行線 單元測(cè)試卷(含答案)
- 中藥飲片培訓(xùn)課件
- 醫(yī)院護(hù)理培訓(xùn)課件:《早產(chǎn)兒姿勢(shì)管理與擺位》
- 《論文的寫作技巧》課件
- 空氣自動(dòng)站儀器運(yùn)營(yíng)維護(hù)項(xiàng)目操作說(shuō)明以及簡(jiǎn)單故障處理
- 2022年12月Python-一級(jí)等級(jí)考試真題(附答案-解析)
- T-CHSA 020-2023 上頜骨缺損手術(shù)功能修復(fù)重建的專家共識(shí)
- Hypermesh lsdyna轉(zhuǎn)動(dòng)副連接課件完整版
評(píng)論
0/150
提交評(píng)論