freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于mvc設(shè)計(jì)模式的javaweb應(yīng)用對(duì)網(wǎng)上購(gòu)書(shū)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文-閱讀頁(yè)

2025-07-12 18:46本頁(yè)面
  

【正文】 予用戶,一旦Session過(guò)期用戶的權(quán)限就跟游客一樣不能進(jìn)行實(shí)質(zhì)的購(gòu)書(shū)活動(dòng),必須重新登陸,所以以Session來(lái)管理辨認(rèn)這一功能是最為恰當(dāng)?shù)?。所有的Java ,這樣它才能在一個(gè)Servlet引擎中運(yùn)行。Servlet引擎提供網(wǎng)絡(luò)服務(wù),能夠理解MIME請(qǐng)求,并提供一個(gè)運(yùn)行Servlet的容器。同樣的道理,用戶如果操作過(guò)時(shí)不能進(jìn)行實(shí)質(zhì)性的購(gòu)書(shū)活動(dòng)那購(gòu)物車的存在對(duì)于服務(wù)器端來(lái)說(shuō)就是一個(gè)資源浪費(fèi),所以用Session來(lái)管理購(gòu)物車也是最為合適的。Session有兩個(gè)對(duì)應(yīng)的屬性Attribute,一個(gè)是名字name還有一個(gè)就是值value。以用戶信息userinfo為例子,具體實(shí)現(xiàn)的代碼如下:在用戶登陸成功后的Servlet組件中我們需要把用戶信息寫(xiě)入Session中,本系統(tǒng)用userinfo作為name,那用戶的注冊(cè)用戶名作為具體管理的實(shí)物(userinfo, userName)這樣就實(shí)現(xiàn)了寫(xiě)入想要管理用戶信息value這個(gè)實(shí)物和和name的功能在Jsp組件中只要判斷Session中userinfo的value的不同顯示不同的信息就可以了:% if( (userinfo) == null){ % h4 align=center歡迎光臨,FONT color=ff6f02游客/FONT!想購(gòu)買你喜歡的商品請(qǐng)登陸或注冊(cè)成我們的新用戶!!!/h4 % }else{ % h4 align=center歡迎光臨,FONT color=ff6f02%=(userinfo)%/FONT,你可以挑選你喜歡的任何商品了!!!/h4 % } %圖6 未登陸狀態(tài)圖圖7 以Gavin注冊(cè)用戶登陸狀態(tài)圖查詢功能應(yīng)該是每一個(gè)網(wǎng)站所需要的功能,對(duì)于電子商務(wù)網(wǎng)站對(duì)于此功能更是不可或缺。首先本系統(tǒng)提供給用戶以分類查詢功能。所以只要在頁(yè)面把四類書(shū)的標(biāo)題列出來(lái)同時(shí)做一個(gè)超級(jí)連接就可以了。./39。本系統(tǒng)在每一個(gè)選購(gòu)圖書(shū)的頁(yè)面都會(huì)提供一個(gè)查詢文本框:form method=39。 action=39。BR 在所有商品中搜索input type=39。 width=39。 height=39。 align=39。 name=39。 input type=39。 value=39。圖9 精確查詢圖書(shū)圖用戶只要在文本框中輸入自己要要查看的圖書(shū)全名或關(guān)鍵字就可以查詢到。本系統(tǒng)把每一種可能的關(guān)鍵字組合作為一個(gè)判斷依據(jù)進(jìn)行處理。:if((Harry Potter Boxed Set) || (Harry Potter) || (Harry) || (Potter))這樣寫(xiě)代碼的問(wèn)題還是存在的:如果用戶不小心在輸入的內(nèi)容前加了幾個(gè)空格或最后加上了幾個(gè)空格如” Harry Potter ”那么該代碼還是不能查詢到用戶想要的結(jié)果,而輸入的關(guān)鍵字又是準(zhǔn)確的所以這樣的查詢功能還是很不智能的.同時(shí)該查詢中還有一個(gè)缺陷,設(shè)想用戶在查詢框中輸入并沒(méi)有嚴(yán)格按照”Harry Potter”這樣的大小規(guī)范,例如用戶在查詢框中輸入”Harry poTTeR”那么用戶還是查詢不到想要的結(jié)果。而在Java中正好有這樣一個(gè)處理String類型的方法: toLowerCase()對(duì)于前導(dǎo)空格和后導(dǎo)空格的問(wèn)題,在Java中同樣給出了解決的方法:trim()所以完整的代碼:String searchform = (searchform).trim().toLowerCase()。//跳轉(zhuǎn)到《Harry Potter Boxed Set》一書(shū)的頁(yè)面} 購(gòu)書(shū)系統(tǒng)的實(shí)現(xiàn)用戶點(diǎn)擊自己喜歡的圖書(shū)頁(yè)面就會(huì)跳轉(zhuǎn)到該書(shū)的詳細(xì)介紹頁(yè)面,其中包括該書(shū)的書(shū)名、ISBN、市場(chǎng)價(jià)格和本網(wǎng)站提供的更加優(yōu)惠的價(jià)格等信息,用戶在這一頁(yè)面就可以實(shí)現(xiàn)購(gòu)書(shū)的具體操作。要實(shí)現(xiàn)購(gòu)書(shū)這一動(dòng)作本系統(tǒng)設(shè)置了一定的權(quán)限,只有注冊(cè)用戶在登陸的狀態(tài)下才有這一權(quán)限。圖10 購(gòu)買圖書(shū)圖圖11 購(gòu)買失敗圖同時(shí)本系統(tǒng)要求用戶必須在數(shù)量這一文本框中填入用戶想購(gòu)買的數(shù)量,如果沒(méi)有填寫(xiě)同樣是一次誤操作。HashMap errtime = (abc,wer)。 (/).forward(request, response)。HashMap errNull = (abc,wer)。 (/).forward(request, response)。//這的getAttribute的名字要和相對(duì)應(yīng)的setAttribute對(duì)應(yīng) if(timeout != null){ String errortimeout = (String)(errortimeout)。 % br FONT color=ff6f02%=errortimeout%/FONT a href=httP://localhost:8080/Thesis/ div align=center img src=pictures//div/abr a href=httP://localhost:8080/Thesis/ div align=center img src=pictures//div/abr % } } HashMap error = (HashMap)(numberformNull)。 if( errorNull != null){ (用戶沒(méi)有填寫(xiě)想購(gòu)買的數(shù)量)。因?yàn)橛械臅r(shí)候書(shū)本的價(jià)格等會(huì)隨時(shí)變動(dòng)那么把書(shū)本的相關(guān)信息以靜態(tài)網(wǎng)頁(yè)形式表現(xiàn)出來(lái)顯然不是很合理并且對(duì)于數(shù)據(jù)維護(hù)人員的后期維護(hù)會(huì)帶來(lái)相當(dāng)麻煩。因?yàn)闀?shū)本的ISBN號(hào)是唯一的且不會(huì)改變,所以只要把書(shū)本的ISBN號(hào)從網(wǎng)頁(yè)中讀到然后從數(shù)據(jù)庫(kù)中讀取書(shū)本信息中跟該ISBN號(hào)匹配的書(shū)本信息就可以實(shí)現(xiàn)了。C0139。ShoppingCart myShoppingCart = (ShoppingCart) (sessionId)。 while(()){ ((bookisbn))。 ((bookprice))。 (book)。圖13 提交購(gòu)物定單圖用戶把相關(guān)信息提供之后點(diǎn)擊“下一步”按狃就完成了本次購(gòu)買。if((transport).equals(mon)){ShoppingCart myShoppingCart = (ShoppingCart)(sessionId)。for (int i = 0。 i++){ ( insert into ShoppingInfo (userName, userAddress, userTelephone, transport, bookName, bookPrice, bookIsbn, bookNumber) values (39。, 39。, 39。, 39。, 39。, 39。, 39。, 39。) )。 Book[] items = ()。 i 。+(username)+39。+(address)+39。+(telephone)+39??爝f39。+items[i].getBookName()+39。+items[i].getBookPrice()+39。+items[i].getBookIsbn()+39。+items[i].getBookNumber()+39。 }}else if((transport).equals(fastest)){ ShoppingCart myShoppingCart = (ShoppingCart)(sessionId)。 for (int i = 0。 i++){ ( insert into ShoppingInfo (userName, userAddress, userTelephone, transport, bookName, bookPrice, bookIsbn, bookNumber) values (39。, 39。, 39。, 39。, 39。, 39。, 39。, 39。) )。5. 關(guān)鍵技術(shù)介紹 Servlet JavaTM servlets是一個(gè)不受平臺(tái)約束的Java小程序,它可以被用來(lái)通過(guò)多種方法擴(kuò)充一個(gè)Web服務(wù)器的功能。Servlet與applets不同的地方是,它不運(yùn)行在Web瀏覽器或其他圖形化的用戶界面上。 客戶端程序,可以是一個(gè)Web瀏覽器,或者是非其他的可以連接上Internet的程序,它會(huì)訪問(wèn)Web服務(wù)器并發(fā)出請(qǐng)求。Servlet通過(guò)HTTP將這個(gè)響應(yīng)轉(zhuǎn)發(fā)到客戶端。 Servlet的解析和載入Servlet引擎解析并載入一個(gè)Servlet,這個(gè)過(guò)程可以發(fā)生在引擎啟動(dòng)時(shí),需要一個(gè)Servlet去響應(yīng)請(qǐng)求時(shí),以及在此之間的任何時(shí)候。 Servlet的初始化Servlet引擎載入Servlet后,Servlet引擎必須對(duì)Servlet進(jìn)行初始化,在這一過(guò)程中,你可以讀取一些固定存儲(chǔ)的數(shù)據(jù)、初始化JDBC的連接以及建立與其他資源的連接。這樣,Servlet可以對(duì)自己進(jìn)行配置。這個(gè)對(duì)象在Servlet引擎中執(zhí)行,并允許Servlet通過(guò)它獲處相關(guān)參數(shù)。在多線程的環(huán)境下,Servlet必須能處理許多同時(shí)發(fā)生的請(qǐng)求。Servlet依照Servlet引擎的映射來(lái)響應(yīng)客戶端的請(qǐng)求。然而,一個(gè)映射可能是由一個(gè)URL和許多Servlet實(shí)例組成,例如:一個(gè)分布式的Servlet引擎可能運(yùn)行在不止一個(gè)的服務(wù)器中,這樣的話,每一個(gè)服務(wù)器中都可能有一個(gè)Servlet實(shí)例,以平衡進(jìn)程的載入。 Servlet的卸載Servlet引擎并不必需保證一個(gè)Servlet在任何時(shí)候或在服務(wù)開(kāi)啟的任何時(shí)候都被載入。因此,我們不能依賴一個(gè)類或?qū)嵗齺?lái)存儲(chǔ)重要的信息。為了完成以上工作,引擎會(huì)調(diào)用Servlet的destroy()方法。當(dāng)一個(gè)Servlet被卸載時(shí),引擎將不能給Servlet發(fā)送任何請(qǐng)求。 Servlet映射技術(shù)作為一個(gè)Servlet引擎的開(kāi)發(fā)者,你必須對(duì)于如何映射客戶端的請(qǐng)求到Servlet有大量的適應(yīng)性。但是,你必須能夠自由地運(yùn)用下面的所有技術(shù):映射一個(gè)Servlet到一個(gè)URL例如,你可以指定一個(gè)特殊的Servlet它僅被來(lái)自/feedback/。但是來(lái)自/catalogtwo 或/。映射一個(gè)Servlet到一個(gè)特殊的URL /servlet/servlet_name。通過(guò)類名調(diào)用Servlet例如,如果Servlet引擎接收了來(lái)自/servlet/,建立實(shí)例,并通過(guò)這個(gè)Servlet來(lái)處理請(qǐng)求。通過(guò)使用這個(gè)對(duì)象,Servlet可以記錄事件、得到資源并得到來(lái)自Servlet引擎的類(例如RequestDispatcher對(duì)象)。如果Servlet引擎支持虛擬主機(jī),每個(gè)虛擬主機(jī)有一個(gè)Servlet環(huán)境。Servlet引擎能夠允許一個(gè)Servlet環(huán)境有它自己的活動(dòng)范圍。在這種情況下,一個(gè)對(duì)getContext方法的調(diào)用會(huì)返回/bank的Servlet環(huán)境。DataConnectivity)技術(shù)的簡(jiǎn)稱,是為各種常用數(shù)據(jù)庫(kù)提供無(wú)縫聯(lián)接的技術(shù)。ODBC(OpenDataConnectivity),稱為開(kāi)放式數(shù)據(jù)庫(kù)互聯(lián)技術(shù),是由Microsoft公司倡導(dǎo)并得到業(yè)界普遍響應(yīng)的一門(mén)數(shù)據(jù)庫(kù)連接技術(shù),如果讀者有使用ODBC編程的經(jīng)驗(yàn),就會(huì)發(fā)現(xiàn)JDBC與ODBC很類似。Query在SQL看來(lái),數(shù)據(jù)庫(kù)就是表的集合,其中包含了行和列。JDBC定義了Java語(yǔ)言同SQL數(shù)據(jù)之間的程序設(shè)計(jì)接口。使用JDBC來(lái)完成對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)包括以下四個(gè)主要組件:Java的應(yīng)用程序、JDBC驅(qū)動(dòng)器管理器、驅(qū)動(dòng)器和數(shù)據(jù)源。API,JDBC  JDBC在Internet中的作用與ODBC在Windows系列中的作用類似。只要系統(tǒng)上安裝了正確的驅(qū)動(dòng)器組,JDBC應(yīng)用程序就可以訪問(wèn)其相關(guān)的數(shù)據(jù)庫(kù)。 獲得Statement或它的子類。 執(zhí)行Statement。 關(guān)閉Statement。 JDBCAPI使開(kāi)發(fā)者不必不斷重寫(xiě)程序而可以建立數(shù)據(jù)庫(kù)前臺(tái)。   為了建立健全獨(dú)立于平臺(tái)的應(yīng)用程序和基于Web的小程序,開(kāi)發(fā)人員應(yīng)考慮用Java開(kāi)發(fā)前臺(tái)連接辦法。   JavaSoft是Sun公司負(fù)責(zé)開(kāi)發(fā)Java產(chǎn)品的業(yè)務(wù)單位,和數(shù)據(jù)庫(kù)與數(shù)據(jù)庫(kù)工具廠家一起建立獨(dú)立于DBMS的機(jī)制,使開(kāi)發(fā)人員不必考慮所用的特定數(shù)據(jù)庫(kù)而編寫(xiě)客戶機(jī)方應(yīng)用程序。API第一版是核心JDK   JDBC向應(yīng)用程序開(kāi)發(fā)者提供了獨(dú)立于數(shù)據(jù)庫(kù)的統(tǒng)一的API。其奧秘是一組由驅(qū)動(dòng)程序?qū)崿F(xiàn)的Java接口。   應(yīng)用程序編寫(xiě)一次并移植到各種驅(qū)動(dòng)程序上。驅(qū)動(dòng)程序可以用于開(kāi)發(fā)多層數(shù)據(jù)庫(kù)設(shè)計(jì)的中間層,也稱中間件(middleware)。JDBC驅(qū)動(dòng)程序必須支持ANSI這些字段可能是ANSI這些字符串的使用是基礎(chǔ)驅(qū)動(dòng)程序的事。但是,JDBC和ODBC都是基于X/開(kāi)放SQL命令層接口(CLI),相同的概念性基礎(chǔ)使API工作進(jìn)展更快,使API的接受更加容易。這個(gè)用本地方法完成的版本很小很有效。API中有兩層接口:應(yīng)用程序?qū)?,開(kāi)發(fā)人員用API通過(guò)SQL調(diào)用數(shù)據(jù)庫(kù)和取得結(jié)果,驅(qū)動(dòng)程序?qū)?,處理與具體驅(qū)動(dòng)程序版本的所有通訊。但驅(qū)動(dòng)程序不必直接聯(lián)到數(shù)據(jù)庫(kù)。API用于連接Java應(yīng)用程序與各種關(guān)系數(shù)據(jù)庫(kù)。以下是使用JDBC的優(yōu)缺點(diǎn)。API與ODBC十分相似,有利于用戶理解。   ,使得程序的可移植性大大加強(qiáng)。      缺點(diǎn)如下:   ,訪問(wèn)數(shù)據(jù)記錄的速度會(huì)受到一定程度的影響。 JavaBean技術(shù) JavaBean概述用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫(kù)訪問(wèn)和其他任何可以用java代碼創(chuàng)造的對(duì)象進(jìn)行打包,
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1