




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 江西師大科技學(xué)院 jiangxinormaluniversity學(xué)士學(xué)位論文基于web的網(wǎng)上商城的設(shè)計與實現(xiàn)the design and implementation of online shopping mall based on web姓 名: 學(xué) 號:0608069 學(xué) 院: 所學(xué)專業(yè):計算機(jī)科學(xué)與技術(shù) 完成時間:2010年04月 指導(dǎo)教師: 答辯日期:2010年05月二零一零年 五月聲 明本人鄭重聲明:所呈交的學(xué)位論文,是本人在指導(dǎo)教師指導(dǎo)下,獨立進(jìn)行研究工作所取得的成果。除文中已經(jīng)注明引用的內(nèi)容外,本論文不含任何其他個人或集體已經(jīng)發(fā)表或撰寫過的作品或成果。對本文的研究做出重要貢獻(xiàn)的
2、個人和集體,均已在文中以明確的方式標(biāo)明。本聲明的法律結(jié)果由本人承擔(dān)。本畢業(yè)設(shè)計(論文)成果是本人在江西師范大學(xué)科學(xué)技術(shù)學(xué)院讀書期間在指導(dǎo)教師指導(dǎo)下取得的,成果歸江西師范大學(xué)科學(xué)技術(shù)學(xué)院所有。特此聲明。聲明人(畢業(yè)設(shè)計(論文)作者)學(xué)號:聲明人(畢業(yè)設(shè)計(論文)作者)簽名:簽名日期: 年 月 日摘 要在線手機(jī)商店介紹了創(chuàng)建網(wǎng)上商店的所有技術(shù),不僅它的基本思路具有普遍意義,而且它的模塊具有靈活多變,適用各種需求,并具有可移植性,當(dāng)你創(chuàng)建自己的在線商店時,可以為你節(jié)省大量的人力物力,節(jié)省大量的時間,減少編程錯誤。這是一個綜合性的動態(tài)網(wǎng)站。其中包括會話跟蹤、javabean和mvc模型、表達(dá)式語言(e
3、l)、標(biāo)準(zhǔn)標(biāo)簽庫(jstl)、jdbc和數(shù)據(jù)庫連接池(bdcp)、認(rèn)證(form、basic)和安全連接(ssl)、事件監(jiān)聽(listener)等。首先介紹在線手機(jī)商店的web結(jié)構(gòu),在主頁的左邊設(shè)計了5個鏈接按鈕:第一個是主頁,第二個是瀏覽手機(jī)分類,第三個是快速下訂單,第四個是加入電郵列表,第五個是顧客服務(wù)部。這個在線手機(jī)商店有4個web應(yīng)用,它們是下載應(yīng)用、購物車應(yīng)用、加入電郵列表應(yīng)用和管理應(yīng)用。顧客進(jìn)入在線手機(jī)商店可以在幾個應(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 主頁31.2 web結(jié)構(gòu)41.3 業(yè)務(wù)邏輯61.4 數(shù)據(jù)庫81.5 處理數(shù)據(jù)庫的java類8第二章 下載應(yīng)用92.1 下載用戶界面92.2 下載應(yīng)用結(jié)構(gòu)102.3 下
8、載應(yīng)用程序10第三章 購物車應(yīng)用143.1 購物車用戶界面143.2 購物車結(jié)構(gòu)153.3 購物車用戶程序16第四章 管理應(yīng)用194.1 管理應(yīng)用引論194.2 處理購物清單應(yīng)用204.3 報告應(yīng)用24總 結(jié)25參考文獻(xiàn)26致 謝27引 言隨著計算機(jī)網(wǎng)絡(luò)的迅速普及、新的軟件、硬件和新的用戶數(shù)據(jù)通信界面開始逐漸從觀念上改變了人們獲取信息的方式.人們開始逐漸從被動地接收信息變?yōu)橹鲃拥孬@取信息,進(jìn)而發(fā)展為主動地制造、提供信息,形成了電子信息交流環(huán)境. internet的出現(xiàn)和www技術(shù)的發(fā)展更有力的支持了電子信息服務(wù)和大眾信息媒體的傳播.進(jìn)入21世紀(jì),互聯(lián)網(wǎng)已經(jīng)走進(jìn)了我們?nèi)粘I畹母鱾€角落.網(wǎng)站逐漸
9、融入人們的生活??焖偌皶r的新聞瀏覽,五彩繽紛的網(wǎng)上信息,使網(wǎng)絡(luò)與人們的生活息息相關(guān)。工大保衛(wèi)處用的網(wǎng)頁還是靜態(tài)web站點。靜態(tài)網(wǎng)頁沒有數(shù)據(jù)庫的支持,在網(wǎng)站制作和維護(hù)方面工作量較大,因此當(dāng)網(wǎng)站信息量很大時完全依靠靜態(tài)網(wǎng)頁制作方式比較困難。一方面信息的不斷增加和變化,使站點維護(hù)人員不得不經(jīng)常修改他們的網(wǎng)頁,特別是基于數(shù)據(jù)庫驅(qū)動的web站點更是如此,隨著internet上信息量的增多和交互性的加強(qiáng)使html顯得越來越難以勝任。另一方面現(xiàn)在保衛(wèi)處網(wǎng)頁上沒有留主板,瀏覽者不能與瀏覽者進(jìn)行有效交互,也不能發(fā)表自己的觀點,使人們感到越來越乏味,而不愿意再一次地進(jìn)入同一站點。所以開發(fā)動態(tài)網(wǎng)頁或動態(tài)內(nèi)容成了越來
10、越多的站點所追求目標(biāo)。制作網(wǎng)頁是企業(yè)和個人的宣傳自己的重要手段,同時也是學(xué)習(xí)者獲取學(xué)習(xí)信息的重要手段。尤其是在教育領(lǐng)域,在素質(zhì)教育與終身教育成為必然的今天,人們對信息的需求有了更新,更高的要求,而網(wǎng)頁由于本身所具有的信息量大,傳遞快速,沒有時空限制等特點恰好滿足這種要求。所以網(wǎng)頁也逐漸成為一種新興的教育資源。也正是由于網(wǎng)絡(luò)實現(xiàn)網(wǎng)站的數(shù)據(jù)信息能夠進(jìn)行實時交互,保證網(wǎng)站數(shù)據(jù)的實時性。第一章 在線手機(jī)商店概況1.1 主頁主頁(例程1)分成5塊,左右上下以及中間。頭和尾分別是html和jsp頁面,它們都是很簡單,在整個購物過程中保持不變。左邊是5個鏈接按鈕,它們分別是主頁,瀏覽手機(jī)分類,快速下訂單,加
11、入電郵列表,顧客服務(wù)部。瀏覽手機(jī)分類鍵讓顧客瀏覽每款手機(jī)的樣品,基本參數(shù)、評論、單價、手機(jī)型號、公司和產(chǎn)地等。如果顧客滿意,就可選購放入購物車??梢岳^續(xù)看下個手機(jī)的詳細(xì)情況,你也可以隨時顯示購物車內(nèi)的商品,只要點擊網(wǎng)頁右上角的“顯示購物車”按鈕。這在線手機(jī)商店提供兩首免費歌曲試聽,并可以下載,下載前要輸入用戶名和電郵地址進(jìn)行注冊。最后,結(jié)帳付款。如果顧客事先進(jìn)行了調(diào)研,它可直接進(jìn)入快速下訂單。右邊展示新投放市場的手機(jī)。每次顧客點擊鏈接按鈕,動態(tài)變化的部分是中間顯示,左邊內(nèi)容不變,但jsp頁面在不斷變化。右邊內(nèi)容隨著不同鏈接有所變化,但變化不大。按加入電郵列表鏈接,將彈出表單讓用戶輸入姓名和電郵
12、地址。按顧客服務(wù)部鏈接,將彈出聯(lián)系信息。圖1是在線手機(jī)商店的主頁。例程1 主頁(index.jsp) 歡迎你來到在線手機(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萬 像素自動對焦攝像頭。 索尼愛立信具有超大的顯示屏
13、幕,無所不能的連接功能,gps,wi-fi以及完美的全動態(tài)菜單,cyber-shot拍照手機(jī)系列和walkman音樂手機(jī)系列是它旗下的兩張王牌, 索尼愛立信w995采用最新的walkman 4.0播放器,并配備了810萬像素的攝像頭。 三星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個web應(yīng)用。下載應(yīng)用與電郵列表應(yīng)用比較簡單。本在線手機(jī)商店免費提供兩首歌曲供用戶下載,用戶必須輸
14、入用戶名和電郵列表鏈接,會彈出表單讓用戶輸入姓名和電郵地址。購物車應(yīng)用是在線商店的核心,負(fù)責(zé)選購商品加入購物車,可以對購物車內(nèi)的商品更改和刪除,最后,付款結(jié)帳。管理應(yīng)用專門為商店經(jīng)理和經(jīng)理代理設(shè)計的。比如,顯示和處理購物清單,查看有關(guān)用戶、購物清單和下載的總結(jié)報告。web.xml提供context-param、servlet-mapping、listener、welcome-file-list、error-page和authentication等元素。這里省略了很多servlet-mapping。例程2是context.xml文件,它配置了數(shù)據(jù)庫連接池所需的datasource,以及授權(quán)給用戶
15、的datasourcerealm。這文件中:datasourcename = “jdbc/cellphone”必須與在connectionpool.java中的datasource說明一致: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ù)邏輯對象存放在cellphone.bussiness目錄下。共有6個javabeans,它們分別是user、download、invoice、product、cart和li
16、neitem。它們遵循javabean規(guī)范。一個javabean對象可以包含作為實例變量的另一個javabean對象。比如,download和invoice對象可設(shè)置和獲得user對象;相似的,lineitem對象能設(shè)置和獲得product對象;cart對象能設(shè)置和獲得arraylist對象,它包含lineitem對象。這里只例舉product.java(例程3),其余類同。它定義私有實例變量,它們對應(yīng)著數(shù)據(jù)庫里product表格里的列名,它們是code、description和price,對這3個實例變量提供了set和get方法,定義了沒有參數(shù)的構(gòu)造方法。此外,還提供了幾個方便的方法,get
17、artistname()和getalbumname()從description實例變量中獲取手機(jī)品牌名,制造公司和產(chǎn)地。getimageurl()和getproducttype()提供產(chǎn)品的更多信息。最后,getpricecurrencyformat()將價錢換成當(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ù)庫數(shù)據(jù)庫cellphone共有7個表格,其中5個對應(yīng)著除cart以外的5個javabeans,它們分別是user、invoice、lineitem、download和product。其中product表格填入數(shù)據(jù),其中4個空表表,供執(zhí)行程序填入數(shù)據(jù)。另外,還有兩個表格分別為userpass和userrole,它們存放用戶名,密碼和角色,共管理應(yīng)用使用。有這7個數(shù)據(jù)表格的sql,它們放在cellphone/db/目錄下,在dos命令下執(zhí)行:mysql source create_cellphone.sq
22、l;這樣在mysql建立數(shù)據(jù)庫cellphone,并在這數(shù)據(jù)庫建立了7個表格,其中3個填入了數(shù)據(jù),其中4個為空表格,供執(zhí)行程序時使用。1.5 處理數(shù)據(jù)庫的java類處理數(shù)據(jù)庫的java類放在cellphone/data目錄下,connectionpool類是處理數(shù)據(jù)庫連接池,dbutil和sqlutil是輔助類,有5個類對應(yīng)著5個javabeans,它們是productdb、userdb、inviocedb、lineitemdb和downloaddb。這些類用靜態(tài)方法讀取和寫入javabean對象,它們不包含任何實例變量和構(gòu)造方法。絕大部分方法是從數(shù)據(jù)庫讀取一個javabean對象,這方法接受
23、一個參數(shù),它就是javabean對象。比如productdb的selectproduct方法使用product code或product id從數(shù)據(jù)庫讀取product對象。絕大部分方法寫javabean對象進(jìn)入數(shù)據(jù)庫,也是接受javabean對象為參數(shù),返回正整型數(shù)表明操作成功,數(shù)字表明有幾個記錄寫入成功;零或負(fù)整數(shù)表明執(zhí)行失敗。reportdb類是供管理應(yīng)用使用的,將在第4節(jié)中說明。第二章 下載應(yīng)用2.1 下載用戶界面在線手機(jī)商店免費為用戶提供兩首歌曲試聽下載,如果用戶已注冊,就直接試聽和下載;否則用戶必須輸入用戶名和電郵地址,進(jìn)行注冊。圖3是手機(jī)分類展銷,他是用戶下載應(yīng)用的界面。用戶點擊
24、“聽歌曲”,鏈接到下載應(yīng)用。如果用戶事先沒有注冊,將顯示注冊頁面(圖4).輸入用戶姓名和電郵地址,提交后獲得試聽和下載頁面。進(jìn)行注冊測試前,先點擊“刪除cookie”按鈕。圖2-1 手機(jī)分類展銷頁面圖2-2 下載注冊頁面2.2 下載應(yīng)用結(jié)構(gòu)圖5概括下載應(yīng)用中使用的jsp和servlet結(jié)構(gòu),所有jsp放在cellphone/catalog目錄下,所有servlet放在cellphone.catalog包里。絕大部分servlet把請求和響應(yīng)派送給相應(yīng)的jsp頁面。如果用戶已經(jīng)注冊,checkuserservlet跳過registeruserservlet和register.jsp,調(diào)用writ
25、edownloadservlet類。displayproductservlet從數(shù)據(jù)庫讀入product對象,并把product對象作為session屬性存儲,同時把請求提交到適當(dāng)?shù)膒roduct頁面(圖3)。checkuserservlet檢查用戶是否注冊,如已經(jīng)注冊,繼續(xù)提交給writedownloadservlet,否則,提交給注冊頁面(圖4)。 registeruserservlet從注冊頁面獲得數(shù)據(jù),創(chuàng)建user對象,并把它寫進(jìn)數(shù)據(jù)庫,作為session屬性儲存起來,返回cookies給用戶瀏覽器,這樣用戶下次不用注冊。writedownservlet創(chuàng)建download對象,并把d
26、ownload對象寫進(jìn)數(shù)據(jù)庫,返回適當(dāng)?shù)穆牳枨撁?。圖2-3 下載應(yīng)用中的jsp和servlet結(jié)構(gòu)圖2.3 下載應(yīng)用程序這里只列出下載應(yīng)用中的4個servlet,進(jìn)入在線手機(jī)商店主頁后,有兩條途徑鏈接到displayproductservlet(例程4),一個方法用戶選擇手機(jī)分類,展示手機(jī)產(chǎn)品,用戶再選擇具體產(chǎn)品,就調(diào)用displayproductservlet,它的主要功能是根據(jù)用戶選擇的productcode,來調(diào)用數(shù)據(jù)庫資料,把product對象存放在session屬性里,并派送到catalog/product_code/index.jsp頁面,展示該手機(jī)的信息(圖3),包括品牌、公司
27、、產(chǎn)地、單價、基本參數(shù)和對產(chǎn)品的評價,同時還展示樣機(jī)。第二個方法,用戶點擊快速下訂單,也可鏈接到displayproductservlet。在樣機(jī)商品頁面的右邊,用戶點擊“聽歌曲”,將鏈接到checkuserservlet。首先檢查用戶是否注冊,檢查session屬性是否有user對象,如果沒有注冊,就顯示注冊頁面(圖4).當(dāng)用戶輸入姓名和電郵地址并提交,此時,調(diào)用registeruserservlet(例程5),它把用戶輸入的信息存放在user對象里,然后把該對象作為session屬性存儲,供writerdownloadservlet(例程6)使用,它創(chuàng)建download對象,并寫進(jìn)數(shù)據(jù)庫,
28、該對象包含downloadid,userid,downloaddate,productcode。同時,展示下載頁面。例程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); 第三章 購物車應(yīng)用3.1 購物車用戶界面購物車應(yīng)用是在線手機(jī)商店的核心,這個應(yīng)用引進(jìn)了實際網(wǎng)絡(luò)商店的所有元素。用戶可以通過瀏覽手機(jī)分類,了解每款手機(jī)的細(xì)節(jié),比如,基本參數(shù)和評論,手機(jī)品牌和價格,公司和產(chǎn)地(圖3),如果用戶滿意,可把該款手機(jī)放入購物車。另外,可以在快速訂單頁面,顯示4款手機(jī)(圖6),用戶對滿意的手機(jī),可點擊“放入購物車”按鈕
39、,將手機(jī)放入購物車。在購物頁面(圖8),你可以更改手機(jī)數(shù)量,或刪除手機(jī)。幾乎每個頁面都可顯示購物車?yán)锏氖謾C(jī),只要單擊網(wǎng)頁右上方“顯示購物車”按鈕或購物車圖案。在購物車頁面,用戶可以繼續(xù)選購,或者點擊“結(jié)帳交款”按鈕,進(jìn)入安全連接。如果用戶有有效cookie,并在數(shù)據(jù)庫存在有用記錄,購物車應(yīng)用跳過用戶頁面,直接進(jìn)入購物清單頁面(圖10)。否則,顯示購物用戶頁面(圖8),要求用戶輸入姓名,電郵地址和送貨地址。用戶進(jìn)入購物清單頁面,用戶可以檢查購物訂單是否正確,用戶要修改購物數(shù)據(jù),用戶可按修改地址按鈕,重新顯示購物用戶頁面。于是,用戶可以修改當(dāng)前數(shù)據(jù)。在購物清單頁面,點擊“繼續(xù)”頁面,將顯示信用卡頁
40、面,選擇信用卡類型,輸入信用卡號碼,選擇過期的年月,按“提交訂單”按鈕,這些過程都是在ssl安全連接情況下進(jìn)行的。此時,購物成功。圖3-1 快速訂單頁面圖3-2 購物頁面圖3-3 顯示購物用戶的頁面圖3-4 顯示用戶購物的信用卡頁面3.2 購物車結(jié)構(gòu)圖10表明購物車應(yīng)用的servlet放在cellphone.cart包里,jsp頁面放在cellphone/cart目錄下。servlet和jsp傳輸敏感數(shù)據(jù)時購物車應(yīng)用采用安全連接(https),以確保用戶信息,信用卡資料傳輸安全。displayquickorderservlet從數(shù)據(jù)庫讀取商品信息,并顯示快速下訂單頁面,這servlet映射到/
41、cart url。結(jié)果,用戶點擊“快速下訂單”按鈕,顯示快速下訂單頁面(圖6)。displaycartservlet尋找用戶購物車,并顯示購物車內(nèi)的商品。如果購物車內(nèi)沒有東西,servlet就顯示快速下訂單頁面。checkuserservlet檢查用戶是否已經(jīng)輸入過個人信息,如果是,servlet從數(shù)據(jù)庫創(chuàng)建user對象,跳過user.jsp和processuserservlet。在用戶頁面輸入信息,由process-userservlet創(chuàng)建用戶對象,并把用戶對象作為session屬性儲存起來。display-invoiceservlet創(chuàng)建購物清單對象,并顯示購物清單頁面(圖10).如果發(fā)
42、現(xiàn)有錯,可點擊“修改地址”按鈕,進(jìn)行修改。用戶點擊“繼續(xù)”,購物車應(yīng)用把請求和響應(yīng)提交給顯示信用卡頁面(圖9)。輸入信用卡信息后,提交訂單,completeorderservlet把用戶數(shù)據(jù)和購物清單寫入數(shù)據(jù)庫,送確認(rèn)e-mail給用戶,最后完成購物。3.3 購物車用戶程序例程7是displayquickorderservlet,它從數(shù)據(jù)庫讀取手機(jī)數(shù)據(jù),每次把數(shù)據(jù)存放在session作用域,其優(yōu)點是,當(dāng)商品發(fā)生更改時,能及時供每個用戶所用,缺點是要從數(shù)據(jù)庫讀取多次數(shù)據(jù),每次占有內(nèi)存。如果數(shù)據(jù)庫的數(shù)據(jù)不是經(jīng)常變動,可把數(shù)據(jù)存放在servletcontext作用域,這樣只要讀取一次數(shù)據(jù),也只存放在
43、一個地方。displaycartservlet.java例程,它尋找用戶購物車,并顯示購物車內(nèi)的商品。如果沒有東西在購物車?yán)?,就顯示快速下訂單頁面(圖6)。例程8是checkuserservlet,如果在session屬性中沒有找到用戶資料,就顯示用戶頁面,要求用戶輸入個人資料。然后提交processuserservlet處理,processuserservlet為用戶創(chuàng)建的一個對象,存放用戶輸入的個人資料,并把這個對象作為session屬性存儲起來。如果用戶曾經(jīng)輸入個人資料,則checkuserservlet跳過processuserservlet和用戶頁面,直接進(jìn)入displayinvoi
44、ceservlet。displayinvoiceservlet創(chuàng)建invoice對象,并顯示購物清單頁面。從購物清單出發(fā),用戶有兩種選擇,如果用戶發(fā)現(xiàn)資料不正確,可以到用戶頁面更改,如果沒有錯誤,進(jìn)入信用卡頁面。completeorderservlet把userhe和invoice數(shù)據(jù)寫入數(shù)據(jù)庫,送確認(rèn)e-mail。因為這兩個類要用到存放在mail.jar包里javamail api,這個jar文件已經(jīng)放在web-inf/lib目錄下。mail.jar不包含在標(biāo)準(zhǔn)jdk里,你可以到網(wǎng)站免費下載,文件名為javamail-1_4.zip。圖3-5 completeorderservlet的結(jié)構(gòu)圖例程7 displayquickorderservlet.javapackage cellphone.cart;import java.io
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年生態(tài)環(huán)境修復(fù)工程資金申請項目規(guī)劃與預(yù)算編制報告
- 如何在Photoshop中創(chuàng)建個性模板試題及答案
- 法學(xué)概論的核心概念與實務(wù)考量試題及答案
- 2025年醫(yī)藥電商平臺合規(guī)運營與醫(yī)藥電商市場規(guī)范化策略報告
- 有效備考2025年稅法考試試題及答案
- 情感映射在文學(xué)作品中的重要性試題及答案
- Msoffice各版本比較試題及答案
- 某年度混凝土攪拌運輸車戰(zhàn)略市場規(guī)劃報告
- 某年度高性能濕敏傳感器市場分析及競爭策略分析報告
- 提高漢語口語流利度技巧試題及答案
- 2025年《鐵道概論》考試復(fù)習(xí)題庫(含答案)
- 2025-2030中國組合蒸汽烤箱行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025年地理會考簡答題思路模板
- 鼻飼誤吸的預(yù)防與處理
- 2025年矯形器裝配工競賽考試題(附答案)
- 2025代謝相關(guān)脂肪性肝病基層診療與管理指南解讀課件
- 【高中英語】2025年高考英語作文預(yù)測(10大主題+55篇范文)下
- 自體輸血知識培訓(xùn)課件
- 2025年高中語文課內(nèi)文言文《諫太宗十思疏》理解性默寫含答案
- 19電學(xué)專題實驗-《練習(xí)使用歐姆表》專項提升(含答案)
- 《無人機(jī)操控基礎(chǔ)》課件
評論
0/150
提交評論