![網(wǎng)上購物系統(tǒng)學位論文_第1頁](http://file4.renrendoc.com/view/b0228667e810a917927af1dd54095dcf/b0228667e810a917927af1dd54095dcf1.gif)
![網(wǎng)上購物系統(tǒng)學位論文_第2頁](http://file4.renrendoc.com/view/b0228667e810a917927af1dd54095dcf/b0228667e810a917927af1dd54095dcf2.gif)
![網(wǎng)上購物系統(tǒng)學位論文_第3頁](http://file4.renrendoc.com/view/b0228667e810a917927af1dd54095dcf/b0228667e810a917927af1dd54095dcf3.gif)
![網(wǎng)上購物系統(tǒng)學位論文_第4頁](http://file4.renrendoc.com/view/b0228667e810a917927af1dd54095dcf/b0228667e810a917927af1dd54095dcf4.gif)
![網(wǎng)上購物系統(tǒng)學位論文_第5頁](http://file4.renrendoc.com/view/b0228667e810a917927af1dd54095dcf/b0228667e810a917927af1dd54095dcf5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
摘要隨著Internet的不斷普及,人們對于互聯(lián)網(wǎng)技術(shù)的要求已不單單是瀏覽一下網(wǎng)頁,收發(fā)電子郵件,日益忙碌的人們開始追求足不出戶的利用互聯(lián)網(wǎng)這一強大的平臺來實現(xiàn)的網(wǎng)上購物。對于企業(yè)來講,無論是企業(yè)之間(BtoB),還是企業(yè)和客戶之間(BtoC)的交易,如果能夠?qū)崿F(xiàn)網(wǎng)上交易將大大提高交易速度節(jié)約交易成本。近幾年,隨著網(wǎng)絡數(shù)據(jù)庫技術(shù)的進一步發(fā)展,使得這一設(shè)想逐漸成為現(xiàn)實。運用ASP技術(shù)和網(wǎng)絡數(shù)據(jù)庫原理,基于B/S模式我開發(fā)了一個網(wǎng)上購物系統(tǒng)。在我的系統(tǒng)中,顧客可以很方便的注冊成為會員,對商品進行瀏覽檢索,查看商品的詳細資料,然后根據(jù)各人的喜好購買心儀的商品。系統(tǒng)會自動為顧客生成訂單,按照顧客所填寫的信息提交訂單并發(fā)貨。系統(tǒng)管理員則可以對現(xiàn)有的商品進行添加和編輯,審查已注冊的用戶并對提交的訂單進行處理。關(guān)鍵詞:B/S模式;ASP;電子商務;網(wǎng)絡數(shù)據(jù)庫
AbstractAlongwiththeInternetofcontinuouslyuniversal,peoplearefortherequestoftechniqueInternetthealreadyandnotonlysingleisaviewoncewebpage,receiveanddispatchtheE-mail,increasinglybusypeoplestartpursuingtheexploitationInternetthatkeepthehousethisathemightyplatformcomethenetthatrealizesontheshopping.Speakforthebusinessenterprise,andwhetheristhebusinessenterprise's(BtoB),orbusinessenterprisewiththecustomer'sbargainfor(BtoC),ifcanrealizethenetuptradeandwillconsumedlyincreasethebargainspeedtheeconomytotradethecost.Inthelastfewyears,alongwiththetechnique'sfurtherdevelopmentofnetworkdatabase,makethisonconceivingtograduallybecometheactuality.ApplicationASPtechniqueiswiththenetworkdatabaseprinciple,accordingtoB/SmodeIdevelopedanetontheshoppingsystem.Inmysystem,customercanverytheconvenientregistrationbecomethemember,andproceedstomerchandiseviewindex,lookintofavorthatthemerchandise'sdetaileddata,thenpurchasetheadoringmerchandiseaccordingtotheeveryone.Systemwouldtheautoisabornorderofcustomer,andhandovertheordertoeruptgoodsaccordingtotheinformationforfillinningofcustomer.Systemmanagercanthenproceedstoincreasewiththeorderthatedit,investigatealreadytheregisteredcustomercombinerighthandovertoproceedstohandletocurrentmerchandise.Keywords:B/Smode;ASP;electroniccommerce;networkdatabase1.緒論1.1問題的提出對于基于Web平臺的網(wǎng)上購物系統(tǒng),存在著一個前臺應用和后臺管理的問題。而無論前臺還是后臺,都要對數(shù)據(jù)庫進行調(diào)用和操作。因此如何創(chuàng)建網(wǎng)絡數(shù)據(jù)庫,以及客戶端如何調(diào)用服務器端的數(shù)據(jù)庫成為實現(xiàn)網(wǎng)上購物的一個關(guān)鍵性問題。計算機技術(shù)的發(fā)展與普及,已經(jīng)改變了我們的生活方式,計算機應用已逐漸滲透到社會發(fā)展的各個領(lǐng)域。隨著計算機技術(shù)和通信技術(shù)的迅猛發(fā)展,社會資源的信息化、數(shù)據(jù)的分布處理、各種計算機資源共享等應用需求推動計算機技術(shù)朝著群體化方向發(fā)展,促使計算機技術(shù)與通信技術(shù)緊密結(jié)合。Internet是目前世界上覆蓋范圍最大的計算機網(wǎng)絡群體。Internet是在通信網(wǎng)絡的基礎(chǔ)上,以TCP/IP協(xié)議為基準、以域名地址和IP地址為標識、以網(wǎng)關(guān)和路由器為轉(zhuǎn)換協(xié)議工具構(gòu)成的網(wǎng)絡的集合。Internet實質(zhì)上是由遍布全球的各種計算機網(wǎng)絡互連而形成的網(wǎng)絡。Internet的出現(xiàn)不僅使得通信和資源共享的地理范圍擴展至全球,而且隨著其服務內(nèi)容和應用領(lǐng)域的拓寬,正在改變?nèi)藗兊臅r空觀。以微電子、計算機、通信和網(wǎng)絡技術(shù)為代表的現(xiàn)代信息技術(shù)在經(jīng)濟領(lǐng)域的廣泛應用,使得交易成本急劇下降,從而導致信息替代了資本在經(jīng)濟發(fā)展中的主導地位。作為重要的生產(chǎn)要素和戰(zhàn)略資源,通過互聯(lián)網(wǎng)傳遞的大量信息使得現(xiàn)有的社會資源獲得高效配置,社會勞動生產(chǎn)率大幅度提高,并推動經(jīng)濟結(jié)構(gòu)革新和產(chǎn)業(yè)結(jié)構(gòu)的升級。
電子商務是互聯(lián)網(wǎng)發(fā)展日臻成熟的直接后果,是網(wǎng)絡技術(shù)應用新的發(fā)展方向?;ヂ?lián)網(wǎng)自身所具有的開放性、全球性、低成本、高效率的特點,已成為電子商務的內(nèi)在特征,并使得電子商務大大超越了作為一種新的貿(mào)易形式所具有的價值。電子商務對于社會生產(chǎn)力的推動作用突出表現(xiàn)在四個方面:
(1)大幅度降低信息成本,提高信息使用效率。作為一個極為重要的商務信息載體和運送平臺,電子商務降低了信息來源成本;突破行業(yè)和產(chǎn)品物理特性的限制,使交易范圍急劇放大;彌補信息的不對稱性,實現(xiàn)交易信息互換和交易行為的虛擬市場化。從目前市場情況看,電子商城、網(wǎng)上書店和網(wǎng)上拍賣等交易行為,無不體現(xiàn)與傳統(tǒng)交易相比的信息成本優(yōu)勢。信息成本的低廉形成了對電子商務生存的最有力的支撐。
(2)大量減少中間環(huán)節(jié),降低銷售成本和購買成本。電子商務為買賣雙方在網(wǎng)上直接交易提供了現(xiàn)實可能性,縮短了供求之間的距離。繞過傳統(tǒng)的經(jīng)銷商而直接與客戶溝通,企業(yè)可以將需求直接轉(zhuǎn)化為企業(yè)的生產(chǎn)指令,減少了許多中間環(huán)節(jié),使得零庫存生產(chǎn)成為可能。在批發(fā)領(lǐng)域,電子商務可以在很大程度上取代傳統(tǒng)商業(yè)在商品流通渠道中的批發(fā)職能,使批發(fā)商的作用大大削弱。除了農(nóng)業(yè)生產(chǎn)資料要面對眾多零星的農(nóng)戶以外,大多數(shù)生產(chǎn)消費者都有可能直接上網(wǎng)采購生產(chǎn)資料。而對于普通消費者,則可以通過網(wǎng)絡購買降低購物成本。
(3)有利于形成高效流通、交換體制。電子商務構(gòu)成了虛擬社會中的整個商品交易龐大網(wǎng)絡,實體社會中商品的盲目實物移動轉(zhuǎn)變?yōu)橛心繕说膶嵨镆苿?。借助于電子商務的信息溝通和需求預測,企業(yè)可以組織有效生產(chǎn),形成高效流通、交換體制。政府則可以通過電子商務,將市場、企業(yè)和個人聯(lián)接起來,方便地進行宏觀調(diào)控和微觀調(diào)控。
(4)有利于第三產(chǎn)業(yè)的發(fā)展。電子商務大量運用最先進的信息技術(shù),必將推動產(chǎn)業(yè)結(jié)構(gòu)的優(yōu)化和升級,特別是促進了現(xiàn)代第三產(chǎn)業(yè)的發(fā)展,增強了經(jīng)濟結(jié)構(gòu)自身的穩(wěn)定性。電子商務以新供給創(chuàng)造了新需求,又以新需求推動了新供給,促進了社會總供求的良性互動,推動了經(jīng)濟的持續(xù)穩(wěn)定增長,從而延長了經(jīng)濟擴張期,減小了經(jīng)濟波動的幅度。1.2問題的解決在這里,我采用B/S模式來實現(xiàn)客戶端對服務器端的調(diào)用,所謂B/S模式即瀏覽器/服務器模式,是一種從傳統(tǒng)的二層C/S模式發(fā)展起來的新的網(wǎng)絡結(jié)構(gòu)模式。在B/S模式中,客戶端運行瀏覽器軟件。瀏覽器以超文本形式向Web服務器提出訪問數(shù)據(jù)庫的要求,Web服務器接受客戶端請求后,將這個請求轉(zhuǎn)化為SQL語法,并交給數(shù)據(jù)庫服務器,數(shù)據(jù)庫服務器得到請求后,驗證其合法性,并進行數(shù)據(jù)處理,然后將處理后的結(jié)果返回給Web服務器,Web服務器再一次將得到的所有結(jié)果進行轉(zhuǎn)化,變成HTML文檔形式,轉(zhuǎn)發(fā)給客戶端瀏覽器以友好的Web頁面形式顯示出來。而對于網(wǎng)絡數(shù)據(jù)庫的創(chuàng)建,則是利用ASP技術(shù)來解決。ASP(ActiveServerPages動態(tài)網(wǎng)頁)是微軟公司推出的一種用以取代CGI(CommonGatewayInterface通用網(wǎng)關(guān)接口)的技術(shù)。目前,Internet上的許多基于Windows平臺的Web站點已開始應用ASP來替換CGI。簡單地講,ASP是一個位于服務器端的腳本運行環(huán)境,通過這種環(huán)境,用戶可以創(chuàng)建和運行動態(tài)的交互式Web服務器應用程序,如交互式動態(tài)網(wǎng)頁,包括使用HTML表單收集和處理信息,上傳與下載等等。在電子商務中,對用戶而言,進行網(wǎng)上信息查詢的目的是尋找自己需要的產(chǎn)品或服務,而對于商品或服務提供者來說,其目的則是向用戶推銷自己的產(chǎn)品或服務。因此,讓用戶通過瀏覽器查詢服務器的后端數(shù)據(jù)庫是許多Web服務提供者必需有的服務,ASP通過內(nèi)置的ADODB組件來實現(xiàn)這一功能??梢允褂肁DO去編寫緊湊簡明的腳本以便連接到ODBC兼容的數(shù)據(jù)庫和OLEDB兼容的數(shù)據(jù)源。至于實現(xiàn)的細節(jié),在后續(xù)部分的網(wǎng)絡數(shù)據(jù)庫章節(jié)中有詳細介紹。
2.背景知識——ASP技術(shù)2.1ASP簡介ASP(Activeserverpages)是一種類似HTML(HypertextMarkupLanguage超文本標識語言)、Script與CGI(CommonGAtewayInterface通用網(wǎng)關(guān)接口)的結(jié)合體,但是其運行效率卻比CGI更高、程序編制也比HTML更方便且更有靈活性,程序安全及保密性也比Script好。HTML(HypertextMarkupLanguage)是一種超文本標識語言,文件通過這種格式可以在互連網(wǎng)上載送瀏覽,用戶只要使用網(wǎng)頁瀏覽器工具就可以瀏覽這些文件,目前比較常用的工具包括MicrosoftInternetExplorer,NetscapeCommunicator等,由于HTML文件都是由標簽(tag)所組成,因此它比較適合制作靜態(tài)網(wǎng)頁,再者,由于先天上的限制HTML是無法直接存取數(shù)據(jù)庫的,所以存取數(shù)據(jù)庫的工作大多是依靠CGI來處理。ASP不但可以包含HTML標簽,也可以直接存取數(shù)據(jù)庫及使用無限擴充的ActiveX控件,因此在程序編制上要比HTML方便而且更富有靈活性。ASP以HTML為基礎(chǔ),主體還是HTML代碼,只是在需要ASP動態(tài)產(chǎn)生的地方加入ASP代碼。ASP的最終顯示結(jié)果也是HTML代碼,可準確控制ASP的輸出結(jié)果。Script(腳本)是由一組可以在WEB服務器或客戶端瀏覽器運行的命令組合而成,目前在網(wǎng)頁編制上比較流行的腳本語言包括VBScript,JavaScript。這些腳本大都是在客戶端運行,因此,客戶端可以很清楚的取得腳本的內(nèi)容。所以,就安全性而言,這些客戶端的腳本語言的確有危險。ASP雖然具有腳本語言的方便性,但由于他是在WEB服務器端運行,運行后再將運行結(jié)果以HTML格式傳送至客戶端的瀏覽器。因此ASP與一般的腳本語言相比,要安全的多。2.2ASP特點ASP可以和HTML或其它腳本語言(VBScript,JavaScript)相互嵌套。ASP是一種在WEB服務器端運行的腳本語言,程序代碼安全保密。ASP以對象為基礎(chǔ),因此可以使用ActiveX控件繼續(xù)擴充其功能。ASP內(nèi)置ADO組件,因此可以輕松的存取各種數(shù)據(jù)庫。ASP可以將運行結(jié)果以HTML的格式傳送至客戶端瀏覽器,因而可以適用與各種瀏覽器。2.3ASP工作原理如果瀏覽器向IIS/PWS請求的是.HTM文件,那么IIS/PWS會直接把文件的內(nèi)容傳給瀏覽器.但如果瀏覽器向IIS/PWS請求的是.ASP文件,則IIS/PWS會首先解釋文件.IIS/PWS解釋.ASP文件的過程中,遇到HTML標記或一般文字時會直接把讀區(qū)的內(nèi)容傳給瀏覽器.但如果遇到<%%>的標記,則會把其中的內(nèi)容視為程序,然后解釋執(zhí)行,但程序經(jīng)過IIS/PWS解釋執(zhí)行后,其源程序代碼不會傳給瀏覽器,而只是把可顯示的運行結(jié)果傳給了瀏覽器ActiveServerPage技術(shù)為應用開發(fā)商提供了基于腳本的直觀、快速、高效的應用開發(fā)手段,極大地提高了開發(fā)的效果。ASP腳本是采用明文(plaintext)方式來編寫的。ASP腳本是一系列按特定語法(目前支持vbscript和jscript兩種腳本語言)編寫的,與標準HTML頁面混合在一起的腳本所構(gòu)成的文本格式的文件。當客戶端的最終用戶用WEB瀏覽器通過INTERNET來訪問基于ASP腳本的應用時,WEB瀏覽器將向WEB服務器發(fā)出HTTP請求。WEB服務器分析、判斷出該請求是ASP腳本的應用后,自動通過ISAPI接口調(diào)用ASP腳本的解釋運行引擎(ASP.DLL)。ASP.DLL將從文件系統(tǒng)或內(nèi)部緩沖區(qū)獲取指定的ASP腳本文件,接著就進行語法分析并解釋執(zhí)行。最終的處理結(jié)果將形成HTML格式的內(nèi)容,通過WEB服務器"原路"返回給WEB瀏覽器,由WEB瀏覽器在客戶端形成最終的結(jié)果呈現(xiàn)。這樣就完成了一次完整的ASP腳本調(diào)用。若干個有機的ASP腳本調(diào)用就組成了一個完整的ASP腳本應用。
3.系統(tǒng)概述3.1系統(tǒng)設(shè)計思想整個系統(tǒng)是以ASP技術(shù)來開發(fā),數(shù)據(jù)庫的創(chuàng)建使用MicrosoftAccess2000,對數(shù)據(jù)庫的查詢和調(diào)用是通過ASP內(nèi)置的ADODB組件來實現(xiàn)的。為了便于編程,前臺的操作頁面和后臺的數(shù)據(jù)庫管理頁面的設(shè)計我是分別進行的。在整個程序編寫完之后,在將后臺的數(shù)據(jù)庫管理頁面通過管理員在前臺的登錄來調(diào)用,這樣就把前臺和后臺有機的連接起來,使操作更加方便。當用戶以會員身份登錄調(diào)用執(zhí)行的是前臺的操作頁面,而當以管理員身份登錄時,則進入后臺管理頁面來對數(shù)據(jù)庫進行操作。而對于前臺購物操作中的核心部分——購物籃的實現(xiàn),這將在后面的功能模塊設(shè)計章節(jié)中做詳細闡述。3.2系統(tǒng)總體結(jié)構(gòu)圖ASP實現(xiàn)訪問界面ASP實現(xiàn)訪問界面Internet瀏覽器瀏覽器瀏覽器瀏覽器Internet信息服務器圖3-2系統(tǒng)總體結(jié)構(gòu)圖由圖可以看出,系統(tǒng)是基于B/S模式開發(fā)的。3.3系統(tǒng)功能描述網(wǎng)上購物系統(tǒng)分為前臺管理和后臺管理。前臺管理包括瀏覽商品、查詢商品、訂購商品、購物車、用戶信息維護等功能。后臺管理包括公告管理、商品管理、訂單管理、投訴管理和用戶管理等模塊。后臺管理具體描述如下:(1)公告管理◆添加公告,包括公告標題和公告內(nèi)容等;◆修改公告;◆刪除公告。(2)商品管理◆添加商品類別;◆修改商品類別;◆刪除商品類別?!籼砑由唐沸畔?,包括商品類別、名稱、編號、所屬公司等信息;◆商品圖片的上傳、修改和刪除;◆修改商品信息;◆刪除商品信息;◆查看商品信息。(3)訂單管理◆處理訂單;◆辦理發(fā)貨;◆辦理結(jié)帳;◆刪除訂單。(4)投訴管理◆錄入投訴的解決方法;◆刪除已解決的投訴;◆查看投訴用戶。(5)顧客用戶管理功能◆注冊顧客用戶,包括用戶名、密碼等信息;◆修改顧客用戶信息;◆刪除顧客用戶信息。(6)系統(tǒng)用戶管理功能◆添加系統(tǒng)用戶,包括用戶名、密碼等信息;◆修改系統(tǒng)用戶信息;◆刪除系統(tǒng)用戶信息。3.4功能模塊劃分從功能描述的內(nèi)容可以看到,本系統(tǒng)可以實現(xiàn)六個完整的功能。根據(jù)這些功能,設(shè)計出系統(tǒng)的功能模塊,如圖:網(wǎng)上購物商城系統(tǒng)網(wǎng)上購物商城系統(tǒng)前臺管理用戶注冊瀏覽公告瀏覽商品查詢商品購買商品后臺管理公告管理訂單管理商品管理系統(tǒng)管理投訴管理圖3-4-1網(wǎng)上購物系統(tǒng)功能模塊示意圖在本系統(tǒng)中,用戶管理模塊的功能比較簡單。在系統(tǒng)初始化時,有一個默認的“系統(tǒng)管理員”用戶Admin,由程序設(shè)計人員手動地添加到數(shù)據(jù)庫中。Admin用戶可以創(chuàng)建其他的管理員信息;普通用戶則可以修改自己注冊信息和密碼。用戶管理功能模塊的關(guān)系如圖:普通用戶普通用戶Admi用戶系統(tǒng)用戶信息管理修改自身的密碼創(chuàng)建、修改和刪除管理員信息刪除用戶信息修改自身的密碼創(chuàng)建、修改自身的信息圖3-4-2用戶管理功能模塊關(guān)系圖3.5系統(tǒng)流程分析前臺客戶購物流程如圖:瀏覽商品瀏覽商品選擇商品訂購商品去購物車去收銀臺未注冊用戶已登錄注冊用戶未登錄注冊用戶注冊登錄提交訂購單圖3-5-1前臺客戶購物流程圖后臺訂單處理流程如圖:用戶訂單用戶訂單訂單處理訂單發(fā)貨訂單結(jié)帳訂單刪除圖3-5-2后臺訂單處理流程圖多用戶系統(tǒng)的工作流程都是從用戶登錄模塊開始的,之后,對用戶的身份進行認證,確認用戶是否是有效的注冊用戶以決定用戶的操作權(quán)限,從而決定用戶的工作界面。3.6系統(tǒng)功能模塊圖用戶進入用戶進入查看商品以會員身份登錄購買商品請先登錄,若未注冊請注冊成為會員會員注冊商品查詢訂單查詢以管理員身份登錄商品添加商品審查處理訂單發(fā)貨查詢會員審查管理員添加管理員審查管理員退出購買商品圖3-6系統(tǒng)功能模塊圖3.7系統(tǒng)開發(fā)工具開發(fā)環(huán)境:WindowsXPProfessional IIS5.0(InternetInformationServer5.0) InternetExplorer6.0腳本語言:JavaScript、VBScript數(shù)據(jù)庫工具:MicrosoftAccess2000ASP開發(fā)工具:MicrosoftVisualInterDev6.0網(wǎng)頁設(shè)計:MacromediaDreamweaverMX
4.系統(tǒng)網(wǎng)絡數(shù)據(jù)庫的建立4.1系統(tǒng)數(shù)據(jù)源的設(shè)置使用ADO去編寫緊湊簡明的腳本以便連接到ODBC兼容的數(shù)據(jù)庫和OLEDB兼容的數(shù)據(jù)源。具體的操作步驟可以歸納為以下幾步:①創(chuàng)建數(shù)據(jù)庫源名(DSN)ADODB通過ODBC工作,因此要在ODBC中設(shè)置DSN(數(shù)據(jù)源名)。打開Windows的"控制面板",雙擊"ODBC"的圖標,然后選擇"文件DSN"的屬性頁,單擊<添加>,選擇數(shù)據(jù)庫驅(qū)動程序,然后單擊"下一步",按照屏幕的指示鍵入數(shù)據(jù)源文件的名稱,然后單擊“下一步",再單擊"完成"創(chuàng)建數(shù)據(jù)源。②創(chuàng)建數(shù)據(jù)庫鏈接鏈接用以保持一些關(guān)于正在訪問的數(shù)據(jù)的動態(tài)信息,以及鏈接者信息。利用ADODB的成員函數(shù)Open和先前設(shè)定的DSN與數(shù)據(jù)庫連接,其語法如下:SetConnect=Server.CreateObject("ADODB.Connection")//創(chuàng)建了鏈接對象Connect。Connect.Open("DSN=dsnname;UID=userID;PWD=password")//打開鏈接。dsnname為數(shù)據(jù)源名;userID為用戶名;password為用戶口令。③創(chuàng)建數(shù)據(jù)對象ADO中的數(shù)據(jù)對象通常保存的是查詢結(jié)果。RecordSet是ADO中最復雜的對象,有許多屬性和方法,靈活運用,可以達到許多好的效果。其創(chuàng)建方法如下:SetRecordSet=Connect.Execute(sqtStr),創(chuàng)建并打開了對象RecordSet,sqtStr是一個串,代表一條標準的SQL語句。例如:sqlStr="SELECT*FROMb1"SetRecordSet=Connect.Execute(sqlStr)這條語句執(zhí)行后,對象RecordSet中就保存了b1中的所有記錄。④操作數(shù)據(jù)庫,可利用Execute方便地執(zhí)行數(shù)據(jù)的插入、修改、刪除等操作。如執(zhí)行插入操作:sqlStr="InsertIntob1Values(1,2)"Connect.Execute(sqlStr)⑤關(guān)閉數(shù)據(jù)對象和鏈接在使用了ADO對象之后,一定要關(guān)閉數(shù)據(jù)對象和鏈接。在ASP中通過調(diào)用方法close實現(xiàn)關(guān)閉。關(guān)閉創(chuàng)建的數(shù)據(jù)對象:RecordSet.closeSetRecordSet=Nothing關(guān)閉創(chuàng)建的鏈接對象:Connect.closeSetConnect=Nothing完整的程序片段:SetConnect=Server.CreateObject("ADODB.Connection")//產(chǎn)生組件實例Connect.Open("DSN=dsnname;UID=userID;PWD=password")//連接數(shù)據(jù)庫SQL=select*fromtablenameSetRS=Connect.Execute(SQL)//執(zhí)行查詢DoWhileNotRS.EOF//顯示結(jié)果<%=RS(fieldname)%><%Rs.MoveNextLoop%>上述是用ASP訪問數(shù)據(jù)庫的全過程,由于應用面向?qū)ο笏枷耄胁僮鞫急容^簡單,用戶需要注意的僅是對數(shù)據(jù)結(jié)構(gòu)的了解、當前所操作的對象及對象的屬性等等,只要對這些有了清晰的認識,再加上ASP強大功能,在網(wǎng)絡上使用數(shù)據(jù)庫,實現(xiàn)用戶與頁面間交換信息,就再也不是什么難事了。4.2表、關(guān)系模型和數(shù)據(jù)庫的概述一個數(shù)據(jù)庫的信息通常組織和存儲在表的形式中,各個表具有行和列。這樣由行和列組成對象的項目稱為數(shù)據(jù)項(又稱為字段),所有數(shù)據(jù)項組成一個記錄,若干個同類記錄構(gòu)成表文件。若干個同類記錄構(gòu)成表文件。若干個表以及它們的關(guān)系等用來管理數(shù)據(jù),也叫做數(shù)據(jù)庫文件。數(shù)據(jù)庫加上相應的操作和管理數(shù)據(jù)庫的軟件,即為一個數(shù)據(jù)庫管理系統(tǒng)(dbms),它能合理地組織和存儲大量數(shù)據(jù),并支持對于數(shù)據(jù)庫表中數(shù)據(jù)的各種操作,如:更新、排序、索引、查詢、列表、打印等。數(shù)據(jù)庫系統(tǒng)是實現(xiàn)有組織地、動態(tài)地存儲大量的相關(guān)數(shù)據(jù),方便用戶訪問的計算機軟件、硬件資源組成的系統(tǒng),它由數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫以及支撐數(shù)據(jù)庫管理系統(tǒng)的軟、硬件構(gòu)成。數(shù)據(jù)庫離不開數(shù)據(jù)模型。數(shù)據(jù)模型是對現(xiàn)實世界客觀事物及其聯(lián)系的描述,它反映數(shù)據(jù)項之間和記錄之間的聯(lián)系,在數(shù)據(jù)庫技術(shù)中使用模型的概念描述數(shù)據(jù)庫的結(jié)構(gòu)與語義。常用的三種數(shù)據(jù)模型:層次模型、網(wǎng)狀模型和關(guān)系模型。此外,還有面向?qū)ο竽P偷?。關(guān)系模型把數(shù)據(jù)之間的關(guān)系看成是一個二維表關(guān)系,因為二維表關(guān)系建立在集合代數(shù)關(guān)系理論基礎(chǔ)上的,所以,把這種建立模型基礎(chǔ)上的數(shù)據(jù)庫稱為關(guān)系數(shù)據(jù)庫。數(shù)據(jù)庫與文件系統(tǒng)不同,其數(shù)據(jù)獨立于程序而存在,并可以提供給不同的用戶共享使用,其基本思想是對所有的數(shù)據(jù)實行統(tǒng)一的、集中的、獨立于程序的管理。關(guān)系數(shù)據(jù)庫管理系統(tǒng)很好地實現(xiàn)了這一基本思想。4.3范式與建表的規(guī)范化在關(guān)系模型中,一個數(shù)據(jù)庫模式是關(guān)系模式的集合。在建立書店數(shù)據(jù)庫時,要按關(guān)系能好的關(guān)系模式的集合作為數(shù)據(jù)庫模式,關(guān)系模式的優(yōu)劣,可以用模式的范式(normalforms,簡記為NF)。第一范式(1NF)如果關(guān)系模式R的每個關(guān)系r的屬性值都是不可分的原子值,那么稱R是第一范式(1NF)的模式,r是規(guī)范化關(guān)系。例如教師模式R(NAME,ADDRESS,PHONE),如果一個教師家中裝了兩部電話,那么關(guān)系中至少要出現(xiàn)兩個元組,以便存儲兩個號碼。1NF的模式是關(guān)系數(shù)據(jù)庫最基本的要求,遠不是理想模式。第二范式(2NF)FD函數(shù)依賴(functionaldependency)定義:設(shè)有關(guān)系模式R(U),X和Y是屬性集U的子集,F(xiàn)D是開為XY的一個命題,只要r是R的關(guān)系,對r中的任意兩個元組都有“X值相等蘊涵Y值相等”,那么FDXY在關(guān)系模式中成立。“XY”讀作“X函數(shù)決定Y”或“Y函數(shù)依賴于X”。XY反映了屬性集X和Y之間的聯(lián)系,對于每一個X值,只有唯一的Y值與之對應。我們把關(guān)系模式R的屬性分為兩類:一類是鍵的屬性,稱為主屬性;另一類是不屬于任何鍵的屬性,稱為非主屬性。我們把FD分成完全FD和局部FD兩類。如果XY成立,對X的任何真子集x都有xY不成立,則稱XY是完全FD,否則稱XY是局部FD。若關(guān)系模式R是1NF,且每個非主屬性完全函數(shù)依賴于候選鍵,那么稱R是2NF模式。第三范式(3NF)如果XY和YA成立,并且有YX不成立,A不屬于Y,那么稱XA是傳遞FD(A傳遞依賴于X)。若關(guān)系模式R是1NF,且每個非主屬性都不傳遞依賴于候選鍵,那么稱R是3NF模式。在3NF模式中排除了非主屬性對鍵的傳遞依賴。3NF的模式必定是2NF的模式。局部依賴和傳遞依賴是產(chǎn)生冗余和異常的兩個重要原因。由于3NF模式中不存在非主屬性對候選鍵的局部依賴和傳遞依賴,因此消除了很大一部分存儲異常,具有較好的性能。而對于非3NF的1NF、2NF甚至非1NF的關(guān)系模式,由于它們性能上的弱點,一般不宜作為數(shù)據(jù)庫模式,通常需要將它們變換成3NF或更高級的范式(即關(guān)系的規(guī)范化處理)。BC范式(Boyce-CoddNF,簡稱BCNF)若關(guān)系模式R是1NF,且每個屬性都不傳遞依賴于的R的候選鍵,那么稱R是BCNF模式。此時排除了任何屬性對鍵的傳遞依賴。在設(shè)計數(shù)據(jù)庫關(guān)系模式時,應作權(quán)衡,盡可能使數(shù)據(jù)庫模式保持最優(yōu)的特性,一般盡可能設(shè)計成BCNF模式集,如果設(shè)計成BCNF模式集的同時達不到保持FD的目標,那只能降低要求,設(shè)計成3NF模式集,而同時又達到無損害聯(lián)接和保持FD的目標。抓住以上規(guī)則后,就能使用MicrosoftAccess設(shè)計出性能良好的數(shù)據(jù)庫了。4.4系統(tǒng)數(shù)據(jù)庫的詳細建立建立數(shù)據(jù)庫表(SuperMarket_Data.mdb)4.4.1用戶信息數(shù)據(jù)表(RegUser)表4-4-1用戶信息數(shù)據(jù)表數(shù)據(jù)類型字段大小字段說明UserID文本20會員帳號Name文本30會員姓名PassWD文本30用戶密碼WtPass文本30密碼提示問題DaPass文本30密碼提示答案Sex文本10性別Email文本30電子信箱Phone文本30聯(lián)系電話Address文本50聯(lián)系地址Zip文本20郵編RegTime日期/時間默認值Now()注冊時間4.4.2管理員信息表(Manage_User)表4-4-2管理員信息數(shù)據(jù)表字段名數(shù)據(jù)類型字段大小字段說明Id自動編號長整型管理員編號UserName文本20管理員帳號PassWord文本20管理員密碼4.4.3商品大類表(Class_1)表4-4-3商品大類表字段名數(shù)據(jù)類型字段大小字段說明ID長整型自動大類編號Class_1_Name文本30大類名稱Class_1_RegTime日期/時間默認值Now()添加時間4.4.4商品小類表(Class_2)表4-4-4商品小類表字段名數(shù)據(jù)類型字段大小字段說明 ID長整型自動小類編號 Class_2_Name文本30小類名稱 Class_1_Name文本30所屬大類名稱 Class_2_RegTime日期/時間默認值Now()添加時間4.4.5商品表(Product)表4-4-5商品表字段名數(shù)據(jù)類型字段大小字段說明 Product_Id長整型10商品編號 Product_Name文本30商品名稱 Class_1文本30所屬大類Class_2文本30所屬小類Product_Intro文本50商品說明Product_Show文本50商品簡介P_NewPrice貨幣自動會員價格P_OldPrice貨幣自動市場價格P_Pic文本50商品微縮圖P_Full_Pic文本50商品全景圖RegTime日期/時間默認值Now()商品錄入時間Look_Count長整型自動商品瀏覽次數(shù)4.4.6購物籃表(ShopList)表4-4-6購物籃表字段名數(shù)據(jù)類型字段大小字段說明Product_Id長整型10商品編號Form_Id長整型自動所屬訂單號Product_Name文本30商品名稱Number文本255購物數(shù)量P_NewPrice貨幣自動會員價格RegTime日期/時間默認值Now()購物時間4.4.7訂單表(OrderList)表4-4-7訂單表字段名數(shù)據(jù)類型字段大小字段說明 Form_ID長整型自動訂單號User_ID文本20會員帳戶名Name文本20會員姓名Zip文本20郵編Phone文本30聯(lián)系電話 Email文本30電子信箱 Address文本50聯(lián)系地址 Pays文本20付款方式 RegTime日期/時間默認值Now()訂貨時間 Flag文本20標記 Remark文本255備注說明:所建立的數(shù)據(jù)庫文件(SuperMarket_Data.mdb)保存在文件夾market_database下,為防止別人隨意篡改數(shù)據(jù)庫,我將其后綴名改為.asp來調(diào)用。
5.系統(tǒng)功能模塊設(shè)計5.1客戶端5.1.1購物籃在設(shè)計購物籃中,首先要考慮到的是購物籃中商品信息的存儲,而且在整個的商品購買中沒有改變,這里就要用到ASP中的內(nèi)置Session組件,它是訪問者從的到達某個特定主頁到離開為止的那段時間,服務器端給他分配一個用來儲存信息的全局變量的集合,這些變量可以自動生成,也可以是程序人員在服務器端腳本程序中定義的。Session可以用來存儲訪問者的特定信息,創(chuàng)建訪問者信息容器。我們使用它來作為虛擬購物籃,無論什么時候用戶在我網(wǎng)站中選擇了一種商品,那么這種商品就會進入購物籃,當用戶準備離開時,就可以立即進行以上所有選擇的商品的訂購。這些購物信息可以保存在Session中。用戶在Web應用程序中訪問同一頁面時,Session變量始終存在,當用戶在應用程序的頁之間跳轉(zhuǎn)時,存儲在Session對象中的變量也不會清除。在建立購物籃中,其實是對全局變量的操作。在這里我定義了一個全局變量:ProductList=Session("ProductList"),將購物信息保存到此全局變量中。另外還定義了一個全局變量Products,通過函數(shù)PutToShopBag()將ProductList的值賦給Products,使用函數(shù)Split()將讀取到的字符串進行分割,以得到購物信息:Products=Split(Request("cpbm"),",")。購物籃界面如下圖所示:圖5-1-1-1購物籃界面圖在我的購物籃中可操作的事件為:確認更改:在數(shù)量項目文本框中可以更改數(shù)目,該事件是用以更新購物籃中的商品數(shù)量;繼續(xù)購物:該事件是關(guān)閉窗口;訂單取消:該事件清空購物籃;去收銀臺:該事件是用來關(guān)閉窗口并重新打開新的窗口。除了購物籃中的可視化操作外,還有就是商品購入事件(即在網(wǎng)上商店的點擊購買的事件)?,F(xiàn)在我們稱這些事件是用來觸發(fā)購物籃中的工作模式,在每次的觸發(fā)模式時,都有一個傳遞的數(shù)值變量通過來判斷觸發(fā)的是哪個工作模塊。下面詳細介紹購物籃(check.asp)各工作模式的具體實現(xiàn):Add模式(購買添加)用戶點擊他想購買的商品的“訂購”鏈接時,通過調(diào)用函數(shù)OpenBag()來打開頁面check.asp,“訂購”鏈接把有關(guān)商品信息的資料字符傳到check.asp。對購物車執(zhí)行了這次添加后,大部分其余的ASP代碼就不再執(zhí)行,因為它應用于其他的工作模式,模式的選擇都是采用IF語句來實現(xiàn)的,而每次check.asp只會在一個模式下工作的。Record模式(更新數(shù)量)該模式用于顧客項購買多件貨物時,自動重新計算所需的貨物總價格。用戶以用它馬上看到改過的數(shù)量后的結(jié)果。在輸入文本框中時,該程序?qū)ζ漭斎氲闹颠M行判斷,是否是數(shù)字的字符,以避免存儲出錯,造成不必要的麻煩。其判斷函數(shù)如下(采用Javascript腳本語言編寫)://功能介紹:檢查是否為數(shù)字//參數(shù)說明:要檢查的數(shù)字//返回值:1為是數(shù)字,0為不是數(shù)字預先判斷的處理方式,很大的程度解決了非法輸入對后面的存儲所帶來的問題。DelAll模式(清空購物籃) 這個是對購物籃的商品進行清空的處理,其實就是對全局變量ProductList賦空值(Session("ProductList")="")。通過調(diào)用函數(shù)clean()來執(zhí)行clear.asp.LinkTo模式(去收銀臺)該模式通過點擊觸發(fā)事件onclick來調(diào)用并執(zhí)行PayMent.asp,并關(guān)閉當前購物籃。該事件不能對所購買的商品數(shù)量的更改而更改,只能通過確認更改來實現(xiàn)。繼續(xù)購物該摸塊也是調(diào)用Window對象中的window.close()函數(shù),它回自動的關(guān)閉購物籃的窗口,該事件也不能對所購買的商品數(shù)量的更改而更改。說明:在這里會出現(xiàn)一種情況,就是說如果未購買任何商品的話,則將返回一提示信息。圖5-1-1-2未購物提示界面圖5.1.2會員注冊圖5-1-2-1會員注冊界面圖在會員注冊中,首先是檢查該顧客所申請的用戶名是否以被人申請了,若已被人申請了該用戶名,則系統(tǒng)將提示給用戶“該用戶名已存在”的信息。查找數(shù)據(jù)庫,檢查用戶名是否已經(jīng)注冊過之后進入用戶詳細資料登記的頁面(Reg_User_OK.asp)圖5-1-2-2用戶資料登記界面圖另外還將調(diào)用頁面Reg_User_2.asp,它將使用大量的Javascript的語言開發(fā)的程序,用來檢查用戶填入字符的正確性。其主要的程序看后面源程序代碼,詳細的介紹各程序單元所完成的功能和作用。圖5-1-2-3用戶資料登記后界面圖在用戶登記個人的詳細資料時,仍然使用ASP中的Recordset的對象,對數(shù)據(jù)庫進行添加的操作,申請成功后進入提示界面,告訴用戶已經(jīng)申請成功。圖5-1-2-4注冊信息界面圖5.1.3商品查詢首先在主頁面default.asp中實現(xiàn)以商品大類方式的查詢?nèi)绻谖谋据斎肟蛑休斎肓松唐访Q,則調(diào)用執(zhí)行ProductSearch.asp5.1.4訂單查詢查詢成功的頁面:圖5-1-4-1查詢成功界面圖在這里,如果查詢的不是屬于當前用戶自己的訂單,則返回出錯信息:圖5-1-4-2不能查詢界面圖response.redirect"messagebox.asp?msg=您不能查看不屬于您的訂單,請重新輸入您自己的訂單號!"5.2后臺管理端后臺管理的功能主要包括:商品的添加、商品的審查、訂單的處理、發(fā)或的查詢、會員的審查以及管理員的添加和審查。5.2.1商品的添加商品的添加功能是通過三個步驟來實現(xiàn)的:商品大類添加、商品小類的添加、商品的添加。大類添加functionFORM1_onsubmit(){ if(document.FORM1.class_name.value.length<1){alert("您必須輸入商品大類名稱!");document.FORM1.class_name.focus();returnfalse;}sqltext="select*fromClass_1whereClass_1_name='"&request.form("class_name")&"'"rs.opensqltext,conn,1,1'查找數(shù)據(jù)庫,檢查商品大類是否已經(jīng)存在ifrs.recordcount>=1thenifrs("Class_1_name")=request.form("class_name")thenResponse.Redirect"messagebox.asp?msg=此商品大類已經(jīng)存在,請選用其它名稱!"response.endrs.closeendifendifsetrs=server.createobject("adodb.recordset")sqltext="select*fromClass_1"rs.opensqltext,conn,3,3'添加一個商品大類到數(shù)據(jù)庫rs.addnewrs("Class_1_name")=request.form("class_name")rs.update<%setrs_detail=server.createobject("adodb.recordset")sqltext2="select*fromClass_1whereClass_1_name='"&request.form("class_name")&"'"rs_detail.opensqltext2,conn,1,1%>大類添加頁面:圖5-2-1-1大類添加界面圖小類添加functionFORM1_onsubmit(){ if(document.FORM1.class_2_name.value.length<1){alert("您必須輸入商品小類名稱!");document.FORM1.class_2_name.focus();returnfalse;}setrs=server.createobject("adodb.recordset")sqltext="select*fromClass_2whereClass_2_name='"&request.form("class_2_name")&"'andClass_1_name='"&request.form("class_1_name")&"'"rs.opensqltext,conn,1,1'查找數(shù)據(jù)庫,檢查商品小類是否已經(jīng)存在ifrs.recordcount>=1thenifrs("Class_2_name")=request.form("class_2_name")thenResponse.Redirect"messagebox.asp?msg=此商品小類已經(jīng)存在,請選用其它名稱!"response.endrs.closeendifendifsetrs=server.createobject("adodb.recordset")sqltext="select*fromClass_2"rs.opensqltext,conn,3,3'添加一個商品小類到數(shù)據(jù)庫rs.addnewrs("Class_2_name")=request.form("class_2_name")rs("Class_1_name")=request.form("class_1_name")rs.updatesetrs_detail=server.createobject("adodb.recordset")sqltext2="select*fromClass_2whereClass_2_name='"&request.form("class_2_name")&"'andClass_1_name='"&request.form("class_1_name")&"'"rs_detail.opensqltext2,conn,1,1小類添加頁面:圖5-2-1-2小類添加界面圖商品的添加//所屬大類<%setrs=server.createobject("adodb.recordset")sqltext2="select*fromClass_1"rs.opensqltext2,conn,1,1%>//所屬小類<%setrs=server.createobject("adodb.recordset")sqltext2="select*fromClass_2whereClass_1_name='"&request.form("class_1_name")&"'"rs.opensqltext2,conn,1,1%>//函數(shù)名:fucCheckNUM//功能介紹:檢查是否為數(shù)字//參數(shù)說明:要檢查的數(shù)字//返回值:1為是數(shù)字,0為不是數(shù)字functionfucCheckNUM(NUM){ vari,j,strTemp; strTemp="0123456789."; if(NUM.length==0) return0 for(i=0;i<NUM.length;i++) { j=strTemp.indexOf(NUM.charAt(i)); if(j==-1) { //說明有字符不是數(shù)字 return0; } } //說明是數(shù)字 return1;}setrs=server.createobject("adodb.recordset")sqltext="select*fromProductwhereProduct_name='"&request.form("p_name")&"'"rs.opensqltext,conn,1,1'查找數(shù)據(jù)庫,檢查商品是否已經(jīng)存在ifrs.recordcount>=1thenifrs("Product_name")=request.form("p_name")thenResponse.Redirect"messagebox.asp?msg=此商品已經(jīng)存在,請?zhí)砑悠渌唐?"response.endrs.closeendifendifsetrs=server.createobject("adodb.recordset")sqltext="select*fromProduct"rs.opensqltext,conn,3,3'添加一個商品到數(shù)據(jù)庫rs.addnewrs("Class_2")=request.form("class_2_name")rs("Class_1")=request.form("class_1_name")rs("Product_name")=request.form("p_name")rs("Product_intro")=request.form("p_intro")rs("Product_show")=request.form("p_show")rs("P_newprice")=request.form("newprice")rs("P_oldprice")=request.form("oldprice")rs("P_pic")=request.form("p_pic")rs("P_Full_pic")=request.form("p_full_pic")rs.updatesetrs_detail=server.createobject("adodb.recordset")sqltext2="select*fromProductwhereProduct_name='"&request.form("p_name")&"'"rs_detail.opensqltext2,conn,1,1商品添加的頁面:圖5-2-1-3商品添加一界面圖圖5-2-1-4商品添加二界面圖圖5-2-1-5商品添加三界面圖 5.2.2商品的審查<%setrs=server.createobject("adodb.recordset")sqltext="select*fromProduct"rs.opensqltext,conn,1,1dimMaxPerPageMaxPerPage=20'假如沒有數(shù)據(jù)時Ifrs.eofandrs.bofthencallshowpagesresponse.write"<palign='center'><fontcolor='#ff0000'>還沒任何商品資料</font></p>"response.endEndif商品審查頁面:圖5-2-2商品審查界面圖商品審查包括對商品的編輯和對商品的刪除操作。(1)商品編輯:編輯操作是調(diào)用Product_Modify.asp頁面對商品信息進行編輯修改,然后調(diào)用Product_Mod
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年實木類家具項目立項申請報告模式
- 2025年跨境電商產(chǎn)業(yè)園項目提案報告模范
- 2025年中介促成的辦公室租賃合同示例
- 2025年公司員工福利與激勵咨詢協(xié)議
- 市政綠化工程申請實施協(xié)議
- 2025年公路護欄維護保養(yǎng)合同范本
- 2025年倉儲調(diào)度員勞動合同范文
- 2025年供熱網(wǎng)絡運營維護服務合同示范文本
- 2025年農(nóng)藥使用與安全管理技術(shù)合作協(xié)議
- 2025年勞務派遣合同分析
- 廣州2025年第一次廣東廣州市白云區(qū)政務服務和數(shù)據(jù)管理局政府雇員招聘筆試歷年參考題庫附帶答案詳解
- 2025年四川中煙工業(yè)有限責任公司招聘筆試參考題庫含答案解析
- 【市質(zhì)檢】泉州市2025屆高中畢業(yè)班質(zhì)量監(jiān)測(二) 生物試卷(含答案解析)
- 六年級2025寒假特色作業(yè)
- DCS-應急預案演練方案
- 2025年江蘇轄區(qū)農(nóng)村商業(yè)銀行招聘筆試參考題庫含答案解析
- 2025年中華財險湖南分公司招聘筆試參考題庫含答案解析
- 人教版六年級數(shù)學下冊完整版教案及反思
- 少兒財商教育講座課件
- 2025年中國科協(xié)所屬單位招聘15名社會在職人員歷年高頻重點提升(共500題)附帶答案詳解
- 2025藥劑科工作人員工作計劃
評論
0/150
提交評論