網(wǎng)上售書的電子商務(wù)網(wǎng)站_第1頁
網(wǎng)上售書的電子商務(wù)網(wǎng)站_第2頁
網(wǎng)上售書的電子商務(wù)網(wǎng)站_第3頁
網(wǎng)上售書的電子商務(wù)網(wǎng)站_第4頁
網(wǎng)上售書的電子商務(wù)網(wǎng)站_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘要互聯(lián)網(wǎng)技術(shù)發(fā)展到現(xiàn)在已經(jīng)相當成熟,互聯(lián)網(wǎng)已經(jīng)成為一個全世界最大最全的信息中心,越來越多的人在利用互聯(lián)網(wǎng)來完成他們的工作,同時也有越來越多的人利用互聯(lián)網(wǎng)來解放他們的生活,他們利用互聯(lián)網(wǎng)來完成幾乎所有所有現(xiàn)實生活中的事物。由于所有的領(lǐng)域都在利用互聯(lián)網(wǎng),傳統(tǒng)商業(yè)也是,現(xiàn)在已經(jīng)有越來越多的商家將他們的生意搬上了互聯(lián)網(wǎng),他們小一點的可以開個小的網(wǎng)店。大一點的可以開個網(wǎng)站。本次畢業(yè)設(shè)計的題目就是設(shè)計和實現(xiàn)一個網(wǎng)上售書的電子商務(wù)網(wǎng)站。為一個傳統(tǒng)的書店提供一個網(wǎng)上展覽和銷售的平臺。本系統(tǒng)主要以STRUTS和HIBERNATE加MYSQL為開發(fā)基礎(chǔ),以JSP為前臺表現(xiàn)手段。在功能上面基本實現(xiàn)一個電子商務(wù)網(wǎng)站應(yīng)該有的功能模塊,包括前臺和后臺兩個層面。前臺方面主要功能有用戶注冊,登錄,注銷,添加收貨人信息,修改收貨人信息,刪除收貨人信息,瀏覽商品。添加商品進購物車,修改購物車中商品,刪除購物車中商品,清空購物車,將購物車中商品生成定單,查看定單,查看定單明細。后臺方面主要功能有查看管理員列表,添加管理員,刪除管理員,修改管理員,查看用戶列表,添加用戶,刪除用戶,修改用戶,查看商品列表,添加商品,刪除商品,修改商品,查看定單列表,刪除定單等。關(guān)鍵字STRUTSHIBERNATEB/SABSTRACTINTERNETTECHNOLOGYHASBEENDEVELOPEDTOAMATURE,THEINTERNETHASBECOMEAWORLDWIDELARGESTANDMOSTOFTHEINFORMATIONCENTER,ANINCREASINGNUMBEROFPEOPLEUSINGTHEINTERNETTOCOMPLETETHEIRWORK,ANDALSOMOREANDMOREPEOPLEUSETHEINTERNETTOTHELIBERATIONOFTHEIRLIVESTHEYUSETHEINTERNETTOCOMPLETEALMOSTALLOFALLTHETHINGSINREALLIFESINCEALLTHEFIELDSINTHEUSEOFTHEINTERNET,TRADITIONALBUSINESSISALSONOWAGROWINGNUMBEROFBUSINESSMENWILLBETHEIRBUSINESSONTOTHEINTERNET,THESMALLERTHEYCANOPENASMALLSHOPTHEBIGPOINTCANOPENAWEBSITETHEGRADUATIONPROJECTISTHESUBJECTOFDESIGNANDIMPLEMENTATIONOFANONLINEBOOKSELLERSOFECOMMERCESITESFORATRADITIONALONLINEBOOKSTORETOPROVIDEAPLATFORMFOREXHIBITIONANDSALETHISSYSTEMISMAINLYTOSTRUTSANDHIBERNATEBASISFORTHEDEVELOPMENTANDMYSQLTOJSPFORTHEFUTUREPERFORMANCEOFMEANSINTHEABOVEBASICREALIZATIONOFAFUNCTIONALECOMMERCESITESSHOULDHAVEFUNCTIONALMODULES,INCLUDINGTHEPROSPECTSANDTHEBACKGROUNDLEVELPROSPECTSINTHEMAINFEATURESAREUSERREGISTRATION,SIGNIN,WRITEOFF,ADDTHECONSIGNEE,THECONSIGNEETOAMENDTHEINFORMATION,DELETETHECONSIGNEEINFORMATION,VISITTHEMERCHANDISEADDGOODSINTOTHESHOPPINGCART,SHOPPINGCARTOFGOODSAMENDEDTODELETETHESHOPPINGCARTOFGOODS,EMPTYSHOPPINGCART,THECARTWILLGENERATEGOODSORDERS,VIEWORDERS,ORDERSDETAILSVIEWBACKGROUNDINTHEMAINFEATURESARESHOWTHELISTADMINISTRATORS,MANAGERSADD,DELETEADMINISTRATOR,MODIFYADMINISTRATORTOVIEWTHELISTOFUSERS,ADDUSERS,DELETEUSERS,MODIFYTHEUSERTOVIEWTHELISTOFGOODS,ADDEDCOMMODITIES,COMMODITIESDELETE,MODIFYMERCHANDISE,VIEWORDERSLIST,DELETEANDSOONORDERSKEYWORDSTRUTSHIBERNATEB/S目錄摘要1ABSTRACT2目錄31緒論52開發(fā)環(huán)境及開發(fā)工具的介紹621JAVA語言介紹622JAVABEAN介紹623SERVLET/JSP介紹724ECLIPSE介紹725TOMCAT介紹726MYSQL介紹83開源框架介紹931HIBERNATE介紹9311HIBERNATE的工作方式9312使用HIBERNATE的場合9313HIBERNATE的兩中類型的配置文件1032STRUTS介紹11321模型MODEL11322視圖VIEW11323控制器CONTROLLER114需求分析1341系統(tǒng)主要功能詳細描述1342系統(tǒng)角色及其功能分析135系統(tǒng)總體設(shè)計1451DB層設(shè)計1752DAO層設(shè)計2153SERVICE層設(shè)計2154WEB層設(shè)計21541控制器CONTROLLER21542模型MODEL22543表現(xiàn)VIEW2255系統(tǒng)數(shù)據(jù)流圖產(chǎn)品模塊,定單模塊,購物車模塊226詳細設(shè)計2461系統(tǒng)的數(shù)據(jù)庫設(shè)計24611PRODUCT表24512ORDER表25513ORDERITEM表2552系統(tǒng)模塊的劃分26521產(chǎn)品模塊主要子模塊26532購物車模塊主要子模塊26533定單模塊主要子模塊2653系統(tǒng)模塊的具體實現(xiàn)26531產(chǎn)品模塊主要子模塊265311增加產(chǎn)品26532購物車模塊主要子模塊30533定單模塊主要子模塊33總結(jié)與體會35致謝36參考文獻371緒論近年來,隨著INTERNET的迅速崛起,互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道并進入傳統(tǒng)的流通領(lǐng)域。于是電子商務(wù)開始流行起來,一種全新的購物理念開始形成并逐步發(fā)展。網(wǎng)上購物是一種具有交互功能的商業(yè)信息系統(tǒng)。它向用戶提供靜態(tài)和動態(tài)兩類信息資源。所謂靜態(tài)信息是指那些比經(jīng)常變動或更新的資源,如公司簡介等;動態(tài)信息是指隨時變化的商務(wù),是通過電子化的手段來完成商業(yè)貿(mào)易活動的一種方式。等等。那么究竟什么是電子商務(wù)電子商務(wù),顧名思義是指在互聯(lián)網(wǎng)上進行的電子化的商務(wù)活動。從狹義上看,電子商務(wù)也就是電子交易,主要指利用WEB提供的通信手段在網(wǎng)上進行交易活動,包括通過INTERNET買賣產(chǎn)品和提供服務(wù)。產(chǎn)品可以是實體化的,如汽車、電視,也可以是數(shù)字化的,如新聞、錄像、軟件等基于比特的產(chǎn)品。此外,還可以提供各類服務(wù),如安排旅游、遠程教育等。總之,電子商務(wù)并不僅僅局限于在線買賣,它將從的信息,如商品報價,會議安排和培訓(xùn)信息等。網(wǎng)上購物系統(tǒng)具有強大的交互功能,可使商家和用戶方便的傳遞信息,完成電子貿(mào)易或EDI交易。這種全新的交易方式實現(xiàn)了公司間文檔與資金的無紙化交換。今天,我們已經(jīng)可以確信電子商務(wù)毋庸置疑是未來的發(fā)展方向。但是電子商務(wù)卻還沒有一個標準的定義。INTEL公司認為電子商務(wù)電子市場電子交易電子服務(wù);IBM認為電子商務(wù)WEB;HP公司則說“電子生產(chǎn)到消費各個方面影響進行商務(wù)活動的方式。除了網(wǎng)上購物,電子商務(wù)還大大改變了產(chǎn)品的定制、分配和交換的手段。而對于顧客,查找和購買產(chǎn)品乃至服務(wù)的方式也大為改進。而從廣義上講,電子商務(wù)還包括企業(yè)內(nèi)部商務(wù)活動,如生產(chǎn)、管理、財務(wù)等以及企業(yè)間的商務(wù)活動,它不僅僅是硬件和軟件的結(jié)合,更是把買家、賣家、廠家和合作伙伴在INTERNET、INTRANET和EXTRANET上利用INTERNET技術(shù)與現(xiàn)有的系統(tǒng)結(jié)合起來開展的業(yè)務(wù)活動。從最初的電話、電報到電子郵件以及20多年前開始的EDI,都可以說是電子商務(wù)的某種形式;發(fā)展到今天,人們已提出了包括通過網(wǎng)絡(luò)來實現(xiàn)從原材料的查詢、采購、產(chǎn)品的展示、定購到出品、儲運以及電子支付等一系列貿(mào)易活動在內(nèi)的完整電子商務(wù)的概念。在發(fā)達國家,電子商務(wù)已發(fā)展迅速,通過INTERNET進行交易已成為潮流。2開發(fā)環(huán)境及開發(fā)工具的介紹21JAVA語言介紹JAVA語言是一門高級程序設(shè)計語言它在各個重要的行業(yè)部門得到了廣泛的應(yīng)用,JAVA技術(shù)的通用性、高效性、平臺移植性和安全性,使之成為網(wǎng)絡(luò)計算的理想技術(shù)除上面的技術(shù)之外還有其他的特點JAVA語言是面向?qū)ο蟮恼Z言,主要集中在對象和接口的設(shè)計。JAVA將具有相同特性的數(shù)據(jù)封裝成一個類,實現(xiàn)了對現(xiàn)實實體的抽象,也就是對對象的總體描述;JAVA可以實現(xiàn)模塊化和信息隱藏,JAVA將數(shù)據(jù)和操作數(shù)據(jù)的方法封裝在一起,使得數(shù)據(jù)全都隱藏起來,暴露給外面程序的僅是對數(shù)據(jù)操作的方法;一個類提供了一類對象的原型,通過JAVA的繼承機制,子類可以使用父類所提供的方法,從而實現(xiàn)了代碼的復(fù)用;多態(tài)就是一個實體多種形態(tài),在JAVA中表現(xiàn)的最突出的就是一個類實現(xiàn)了多個接口,從而可以有多個功能。另外JAVA語言是安全的,JAVA不支持指針,一切對內(nèi)存的訪問都必須通過對象的實例變量來實現(xiàn),這樣就防止程序員使用“特洛伊“木馬等欺騙手段訪問對象的私有成員,同時也避免了指針操作中容易產(chǎn)生的錯誤。JAVA程序是可移植的,與平臺無關(guān)的特性使JAVA程序可以方便地被移植到網(wǎng)絡(luò)上的不同機器。同時JAVA的類庫中也實現(xiàn)了與不同平臺的接口,使這些類庫可以移植。另外,JAVA編譯器是由JAVA語言實現(xiàn)的,JAVA運行時系統(tǒng)由標準C實現(xiàn),這使得JAVA系統(tǒng)本身也具有可移植性。JAVA語言和其它解釋執(zhí)行的語言如BASIC不同,JAVA字節(jié)碼的設(shè)計使之能很容易地直接轉(zhuǎn)換成對應(yīng)于特定CPU的機器碼,從而得到較高的性能。22JAVABEAN介紹簡單地說,JAVABEAN是用JAVA語言描述的軟件組件模型,其實際上是一個類。這些類遵循一個接口格式,以便于使函數(shù)命名、底層行為以及繼承或?qū)崿F(xiàn)的行為,可以把類看作標準的JAVABEAN組件進行構(gòu)造和應(yīng)用。JAVABEAN有以下特點易于維護、使用、編寫??蓪崿F(xiàn)代碼的重用性??梢浦残詮姡珒H限于JAVA工作平臺。便于傳輸,不限于本地還是網(wǎng)絡(luò)??梢砸云渌考哪J竭M行工作。JAVA程序中往往有重復(fù)使用的段落,JAVABEAN就是為了能夠重復(fù)使用而設(shè)計的程序段落,而且這些段落并不只服務(wù)于某一個程序,而且每個JAVABEAN都具有特定功能,當需要這個功能的時候就可以調(diào)用相應(yīng)的JAVABEAN。從這個意義上來講,JAVABEAN大大簡化了程序的設(shè)計過程,也方便了其他程序的重復(fù)使用。23SERVLET/JSP介紹JSP(JAVASERVERPAGE)是在普通HTML中嵌入了JAVA代碼的一個腳本,在這一點上,它與其它的腳本語言一樣,但它與其它語言不同的是其它腳本語言由服務(wù)器直接解釋這個腳本,而JSP則由JSP容器(如TOMCAT)首先將其轉(zhuǎn)化為SERVLET,然后再調(diào)用JAVAC將SERVLET編譯為CLASS文件最終,服務(wù)器解釋的是CLASS文件那么什么是SERVLET呢SERVLET其實是一個特殊的JAVA類,SERVLET類一般從HTTPSERVLET類繼承而來,在這個類中至少要實現(xiàn)DOGET或者DOPOST函數(shù),在這兩個函數(shù)中處理來自客戶的請求,然后將結(jié)果返回24ECLIPSE介紹ECLIPSE是一種可擴展的開放源代碼IDE,業(yè)界廠商合作創(chuàng)建了ECLIPSE平臺ECLIPSE允許在同一IDE中集成來自不同供應(yīng)商的工具,并實現(xiàn)了工具之間的互操作性,從而顯著改變了項目工作流程,使開發(fā)者可以專注在實際的業(yè)務(wù)上利用ECLIPSE,我們可以將高級設(shè)計也許是采用UML與低級開發(fā)工具如應(yīng)用調(diào)試器等結(jié)合在一起如果這些互相補充的獨立工具采用ECLIPSE擴展點彼此連接,那么當我們用調(diào)試器逐一檢查應(yīng)用時,UML對話框可以突出顯示我們正在關(guān)注的器件事實上,由于ECLIPSE并不了解開發(fā)語言,所以無論JAVA語言調(diào)試器、C/C調(diào)試器還是匯編調(diào)試器都是有效的,并可以在相同的框架內(nèi)同時瞄準不同的進程或節(jié)點ECLIPSE的最大特點是它能接受由JAVA開發(fā)者自己編寫的開放源代碼插件,這類似于微軟公司的VISUALSTUDIO和SUN微系統(tǒng)公司的NETBEANS平臺ECLIPSE為工具開發(fā)商提供了更好的靈活性,使他們能更好地控制自己的軟件技術(shù)。25TOMCAT介紹TOMCAT是一個免費的開源的SERLVET容器,是一個開源的服務(wù)器,里面可以裝載WAR的類似于JAR的壓縮文件,這個文件按一定目錄結(jié)構(gòu)來組織通常其根目錄下包含有HTML和JSP文件或者包含這兩種文件的目錄,另外還會有一個WEBINF目錄,這個目錄很重要通常在WEBINF目錄下有一個WEBXML文件和一個CLASSES目錄,WEBXML是這個應(yīng)用的配置文件,而CLASSES目錄下則包含編譯好的SERVLET類和JSP或SERVLET所依賴的其它類(如JAVABEAN)在TOMCAT中,應(yīng)用程序的部署很簡單,你只需將你的WAR放到TOMCAT的WEBAPP目錄下,TOMCAT會自動檢測到這個文件,并將其解壓你在瀏覽器中訪問這個應(yīng)用的JSP時,通常第一次會很慢,因為TOMCAT要將JSP轉(zhuǎn)化為SERVLET文件,然后編譯編譯以后,訪問將會很快26MYSQL介紹MYSQL是一個真正的多用戶、多線程SQL數(shù)據(jù)庫服務(wù)器,它是一個客戶機/服務(wù)器結(jié)構(gòu)的實現(xiàn)。MYSQL是現(xiàn)在流行的關(guān)系數(shù)據(jù)庫中其中的一種,相比其它的數(shù)據(jù)庫管理系統(tǒng)(DBMS)來說,MYSQL具有小巧、功能齊全、查詢迅捷等優(yōu)點。MYSQL主要目標是快速、健壯和易用。關(guān)鍵的是它是免費的,可以在INTERNET上免費下載到,并可免費使用。MYSQL對于一般中小型,甚至大型應(yīng)用都能夠勝任。MYSQL是開源的,開源意味著任何人都可以使用和修改該軟件,任何人都可以從INTERNET上下載和使用MYSQL而不需要支付任何費用如果你愿意,你可以研究其源代碼,并根據(jù)你的需要修改它3開源框架介紹31HIBERNATE介紹311HIBERNATE的工作方式使用HIBERNATE惟一需要做的就是創(chuàng)建一份XML“映射文檔”,告訴HIBERNATE希望保存在數(shù)據(jù)庫中的類,以及它們?nèi)绾侮P(guān)聯(lián)到該數(shù)據(jù)庫中的表和列,然后就可以要求HIBERNATE以對象的形式獲取數(shù)據(jù),或者把對象保存為數(shù)據(jù)HIBERNATE在運行時,HIBERNATE首先讀取映射文檔,然后動態(tài)構(gòu)建JAVA類,以便管理數(shù)據(jù)庫與JAVA之間的轉(zhuǎn)換在HIBERNATE中有一個簡單而直觀的API,用于對數(shù)據(jù)庫所表示的對象執(zhí)行查詢要修改這些對象,(一般情況下)只需在程序中與它們進行交互,然后告訴HIBERNATE保存修改即可類似地,創(chuàng)建新對象也很簡單;只需以常規(guī)方式創(chuàng)建它們,然后告訴HIBERNATE有關(guān)它們的信息,這樣就能在數(shù)據(jù)庫中保存它們HIBERNATEAPI學(xué)習(xí)起來很簡單,而且它與程序流的交互相當自然在適當?shù)奈恢谜{(diào)用它,就可以達成目的它帶來了很多自動化和代碼節(jié)省方面的好處,所以花一點時間學(xué)習(xí)它是值得的而且還可以獲得另一個好處,即代碼不用關(guān)心要使用的數(shù)據(jù)庫種類借助于HIBERNATE,只需要簡單地修改HIBERNATE配置文件即可312使用HIBERNATE的場合如果應(yīng)用對于數(shù)據(jù)存儲的需要十分簡單例如,您只想管理一組用戶優(yōu)先選擇就根本不需要數(shù)據(jù)庫,更不用說一個優(yōu)秀的對象關(guān)系映射系統(tǒng)了對于熟悉使用關(guān)系數(shù)據(jù)庫和了解如何執(zhí)行完美的SQL查詢與企業(yè)數(shù)據(jù)庫交互的人來說,HIBERNATE似乎有些礙手礙腳,這就像帶有動力和自動排擋的快艇車會使注重性能的賽車駕駛員不耐煩一樣如果您屬于這種人,如果您所在的項目團隊擁有一個強大的DBA,或者有一些存儲過程要處理,您可能想研究一下IBATIS當然,還有其他的外部原因會導(dǎo)致采用另外的方法比如,在一個企業(yè)環(huán)境中,必須使用成熟的EJB架構(gòu)(或者其他的一些非普通對象映射系統(tǒng))可以為提供自己的數(shù)據(jù)存儲工具的平臺量身定做代碼,比如MACOSXSCOREDATA使用的可能是像XMLDTD這樣的存儲規(guī)范,而它根本不涉及關(guān)系數(shù)據(jù)庫但是,如果您使用的是富對象模型,而且想要靈活、輕松且高效地保存它,那么HIBERNATE很可能就是您理想的選擇您可能會驚訝于節(jié)省的時間之多,以及您將會多么地喜歡使用它313HIBERNATE的兩中類型的配置文件首先創(chuàng)建系統(tǒng)的HIBERNATE配置文件HIBERNATECFGXML,該文件中存放著數(shù)據(jù)庫連接驅(qū)動程序類、登錄數(shù)據(jù)庫的用戶名/密碼、映射持久化類配置文件的位置等,HIBERNATE初始化時會自動在CLASSES路徑中尋找這個文件,并讀取其中的配置信息,為后期數(shù)據(jù)庫操作做準備,其完整代碼如下。COMMICROSOFTJDBCSQLSERVERSQLSERVERDRIVERJDBCMICROSOFTSQLSERVER/1270011433DATABASENAMEDB_MATERIALSATRUE創(chuàng)建持久化類的映射文件32STRUTS介紹STRUTS是一個基于SUNJ2EE平臺的MVC框架,主要是采用SERVLET和JSP技術(shù)來實現(xiàn)的由于STRUTS能充分滿足應(yīng)用開發(fā)的需求,簡單易用,敏捷迅速,在過去的這段時間里STRUTS把SERVLET、JSP、自定義標簽和信息資源MESSAGERESOURCES整合到一個統(tǒng)一的框架中,開發(fā)人員利用其進行開發(fā)時不用再自己編碼實現(xiàn)全套MVC模式,極大的節(jié)省了時間,所以說STRUTS是一個非常不錯的應(yīng)用框架STRUTS主要有三個部分組成,首先是支持MVC模式的的三個部分,其次是關(guān)于STRUTS的配置文件STRUTSCONFIGXML。下面來介紹下他們。321模型MODEL本質(zhì)上來說在STRUTS中MODEL是一個ACTION類這個會在后面詳細討論,開發(fā)者通過其實現(xiàn)商業(yè)邏輯,同時用戶請求通過控制器CONTROLLER向ACTION的轉(zhuǎn)發(fā)過程是基于由STRUTSCONFIGXML文件描述的配置信息的322視圖VIEWVIEW是由與控制器SERVLET配合工作的一整套JSP定制標簽庫構(gòu)成,利用她們我們可以快速建立應(yīng)用系統(tǒng)的界面323控制器CONTROLLER本質(zhì)上是一個SERVLET,將客戶端請求轉(zhuǎn)發(fā)到相應(yīng)的ACTION類STRUTSCONFIGXML配置文件是整個框架的主心骨WEBXML文件定義了一個請求到來應(yīng)向何處轉(zhuǎn)發(fā)后,后面的工作就全權(quán)由STRUTSCONFIGXML管理控制了可以說STRUTSCONFIGXML就是整個STRUTS框架的核心,只有它清楚所有請求與動作的映射關(guān)系。如今的應(yīng)用系統(tǒng),XML形式的配置文件越來越多,如果整個系統(tǒng)只使用一個這樣的配置文件的話,那么保持整個系統(tǒng)的模塊化和可維護性都非常的輕松使用配置文件來描述請求動作的控制過程和相互關(guān)系,而不是在代碼中將對象之間的調(diào)用關(guān)系寫死,那么當應(yīng)用系統(tǒng)有變動時,我們只用修改配置文件就行了,而不是再重新編譯發(fā)布程序了CONTROLLER通過STRUTSCONFIGXML文件的配置信息確定當有請求時應(yīng)該調(diào)用那個對象來處理,從效率的角度出發(fā),這些信息都是在系統(tǒng)啟動時讀入并存在內(nèi)存中的4需求分析41系統(tǒng)主要功能詳細描述用戶可以注冊,登錄。登錄用戶可以查看用戶資料,修改密碼,添加收貨人,刪除收貨人。1所有用戶可以瀏覽商品列表及每個商品的詳細信息。2所有用戶可以進行查詢本站所擁有的自己需要的物品。3所有用戶可以查看用戶留言列表,登錄用戶可以留言。3登錄用戶可以進行購物,并會像超市的購物車一樣放入自己需要的物品以便后面的下單。登錄用戶可以對自己的購物車進行相關(guān)操作。4登錄用戶可以在進行購物后,進行下單,網(wǎng)站可以對定單進行處理。5用戶只能查看自己已經(jīng)有的定單,并能看到每個定單的詳細信息。6后臺管理員可以對用戶進行添加,刪除,修改和查詢操作。6后臺管理員可以對商品進行添加,刪除,修改和查詢操作。7后臺管理員可以查看所有的用戶對應(yīng)的定單。并能對每個定單進行刪除操作。6后臺管理員可以對用戶留言進行刪除操作。42系統(tǒng)角色及其功能分析系統(tǒng)主要用戶有三類游客,登陸用戶,管理員。游客主要可以用的功能是查看所有商品,搜索商品,查看商品詳細信息,查看用戶留言列表。登錄用戶主要可以用的功能查看修改自己的資料,查看所有商品,搜索商品,查看商品詳細信息,購買商品,下定單,查看定單,查看用戶留言列表,留言。管理員主要功能操作普通管理員信息,操作用戶信息,操作產(chǎn)品信息,操作定單信息,操作用戶留言信息。5系統(tǒng)總體設(shè)計網(wǎng)上書城系統(tǒng)是基于B/S架構(gòu)。實現(xiàn)網(wǎng)上售書的電子商務(wù)網(wǎng)站。系統(tǒng)使用JAVA語言開發(fā),利用到HIBERNATE和STRUTS等開源框架,整個系統(tǒng)分成多層,有效實現(xiàn)了系統(tǒng)各部分的低偶合整個系統(tǒng)主要有表現(xiàn)層業(yè)務(wù)層數(shù)據(jù)訪問層。利用軟件分層把系統(tǒng)偶合度降低。在數(shù)據(jù)訪問層,使用接口和和實現(xiàn)分離。上層的服務(wù)只依賴于底層的接口,底層的實現(xiàn)方式改變不會影響到上層的服務(wù)。這樣就會最大程度的降低了軟件各部分之間的偶合。便于以后修改底層的實現(xiàn)。在分層的基礎(chǔ)上。有將軟件分模塊,從而使系統(tǒng)橫向上面分模塊,縱向上面分層次。整個軟件的層次是表現(xiàn)層業(yè)務(wù)層數(shù)據(jù)訪問層DB整個軟件根據(jù)系統(tǒng)需求分析,可得出系統(tǒng)兩種用戶的業(yè)務(wù)流程圖。前臺用戶操作業(yè)務(wù)流程為開始瀏覽用戶留言信息覽商品列表登錄瀏覽商品詳細信息登錄NN登錄YY添加商品進購物車用戶留言購物車生成定單退出結(jié)束在用戶業(yè)務(wù)流里面,首先用戶連接到主界面,主界面顯示所有商品,并且提供商品的搜索服務(wù),在主界面可以直接連接到用戶留言列表界面,在主界面還可以連接到用戶登錄界面。用戶在主界面可以瀏覽所有的商品,也可以查看商品的詳細信息,在用戶主界面和商品詳細信息界面,用戶可以將商品添加進購物車,此操作只有登錄用戶可以使用,非登錄用戶選自添加進購物車會被攔截到未登錄界面。用戶在留言主界面可以進行留言。非登錄用戶不能留言。用戶可以點擊購物車,進入購物車界面,在購物車界面,用戶可以對購物車里的商品進行刪除操作,也可以將購物車中的商品修改數(shù)量,還可以清空購物車。也可以在購物車界面選擇繼續(xù)購物,連接到主界面繼續(xù)選擇商品。用戶還可以在購物車界面進行下單操作。將購物車里的商品生成定單。生成定單后,用戶可以查看自己的定單。后臺管理員的業(yè)務(wù)流程為開始登錄管理員主界面有權(quán)限N權(quán)限出錯頁面Y管理員管理用戶管理產(chǎn)品管理定單管理留言管理退出結(jié)束在后臺中,管理員可以直接進入管理員入口登錄管理員管理界面。在管理員管理的主界面顯示的是管理員所有的操作。管理員可直接選擇操作進入不同的管理界面,對管理員管理主要有超級管理員來實現(xiàn),其他管理員沒有此操作。用戶管理界面直接顯示所有用戶的列表,在用戶管理界面。管理員可以選擇添加和刪除用戶,在產(chǎn)品管理界面,管理員可以添加和刪除產(chǎn)品。定單管理界面。管理員可以刪除定單。留言管理界面。管理員可以刪除留言。51DB層設(shè)計DB主要是保存實體及實體之間關(guān)系的,這里只些關(guān)于此次系統(tǒng)中作者設(shè)計的幾個模塊的ER圖441USER于ORDER關(guān)系圖CREATETIMEORDERITEMSORDERSTATEPAYINFOTOTALPRICEORDERIDUSERUSERITEMORDERNHAVE1USERUSERIDUSERNAMECREATETIMESTATEORDERSROLEPASSWORDUSERITEMS用戶與定單之間是一對多的關(guān)系,每個用戶可以同時有多個定單,每個定單卻只能屬于一個用戶。這樣在定單的實體類中就會有一個對用戶的引用,在用戶的實體類中就會有一個集合用來保存用戶當前所有的定單。在數(shù)據(jù)庫中,用戶和定單是兩張表,定單表中的外鍵是用戶表中的主鍵,在這里要注意一點。在查找用戶的時候會同時把用戶所有的定單都拿到,所以要在用戶實體類的HIBERNATE配置文件中將定單集合的延遲加載設(shè)置為FALSE這樣就能在查出的用戶中直接拿到用戶所有的定單442ORDER與ORDERITEMCREATETIMEORDERITEMSORDERSTATEPAYINFOTOTALPRICEORDERIDUSERUSERITEMORDER1ORDERBYNORDERITEMORDERORDER_ITEM_IDPRODUCTQUALITY定單與定單條目之間是一對多的關(guān)系,每個定單可以同時有多個定單條目,每個定單條目卻只能屬于一個定單。這樣在定單條目的實體類中就會有一個對定單的引用,在定單的實體類中就會有一個集合用來保存用戶當前所有的定單條目。在數(shù)據(jù)庫中,定單和定單條目是兩張表,定單條目表中的外鍵是定單表中的主鍵,在這里要注意一點。在查找定單的時候要同時把定單所有的定單條目都拿到,所以要在定單實體類的HIBERNATE配置文件中將定單條目集合的延遲加載設(shè)置為FALSE這樣就能在查出的定單時直接拿到定單所有的定單條目443ORDERITEM與PRODUCTNAMEORDERITEMSPRICEOTHERSPRODUCT1HASNORDERITEMORDERORDER_ITEM_IDPRODUCTQUALITY產(chǎn)品與定單條目之間是一對多的關(guān)系,每個定單條目只包含一中產(chǎn)品。每個產(chǎn)品對應(yīng)多個定單條目,這里多個定單條目不是屬于同一個定單。這樣在定單條目大實體類中就會有喲個屬性用來保存產(chǎn)品的引用,產(chǎn)品中也相應(yīng)的有一個結(jié)合來保存所有包含此產(chǎn)品的定單條目。在數(shù)據(jù)庫中,產(chǎn)品和定單條目是兩張表,定單條目表中的外鍵是產(chǎn)品表中的主鍵。這里不需要在得到產(chǎn)品的時候就拿到定單條目的集合,所以使用默認的HIBERNATE配置就可以了。444ORDER與USERITEMCREATETIMEORDERITEMSORDERSTATEPAYINFOTOTALPRICEORDERIDUSERUSERITEMORDERNTO1USERITEMUSER_ITEM_IDUSERITEM_NAMEORDERSITEM_ADDRESS收貨人與定單之間是一對多的關(guān)系,每個收貨人可以同時有多個定單,每個定單卻只能屬于一個收貨人。這樣在定單的實體類中就會有一個對收貨人的引用,在收貨人的實體類中就會有一個集合用來保存用戶當前所有的定單。在數(shù)據(jù)庫中,收貨人和定單是兩張表,定單表中的外鍵是定收貨人表中的主鍵。52DAO層設(shè)計在數(shù)據(jù)訪問層,將全部使用接口和實現(xiàn)分離,這樣便于以后更換數(shù)據(jù)庫等工作。在這層中,主要是對數(shù)據(jù)庫的表操作。我們利用的是HIBERNATE技術(shù)。這是一種ORM技術(shù),可以將關(guān)系數(shù)據(jù)庫中存的每條記錄都對應(yīng)成一個實體,由于所有數(shù)據(jù)庫中的表都只通過DAO來訪問,所以在DAO中要有每個表的入口。因此,要為每和實體類對應(yīng)一個DAO。53SERVICE層設(shè)計SERVICE主要是系統(tǒng)的業(yè)務(wù)邏輯,也就是系統(tǒng)的實際的業(yè)務(wù)邏輯活動,是系統(tǒng)的真正的核心,這一層主要都是一些業(yè)務(wù)。同時這一層中應(yīng)該加上事務(wù),因為,對數(shù)據(jù)庫的操作可能出現(xiàn)異常,而SERVICE完全依賴于DAO,所以當數(shù)據(jù)庫出現(xiàn)異常后,這里可以對未完成的事務(wù)進行回滾。54WEB層設(shè)計WEB層主要是用來接收用戶請求,并通過請求的不同選擇相應(yīng)的服務(wù)來處理請求,再把結(jié)果表現(xiàn)給用戶。這樣在WEB中把請求,服務(wù)和表現(xiàn)分開。我們在JAVA的開源框架中選擇STRUTS來做WEB層,我們首先利用ACTION來接收請求,在ACTION中有不同的方法來處理不同的請求,再在ACTION中調(diào)用相應(yīng)的SERVICE來處理請求。對執(zhí)行結(jié)果進行判斷后,選擇不同的JSP來進行表現(xiàn)。STRUTS中這種開發(fā)我們成為MVC模式,下面是MVC模式的圖解,以及在本系統(tǒng)中的具體作用C控制層ACTIONNEWREQUESTRETURNM模型層瀏覽器FORWARD/REDIRECTRESPONSEV視圖層JSP541控制器CONTROLLERCONTROLLER是這個框架中扮演“交通警察”的角色,當客戶端與服務(wù)器有交互動作時,都由她來控制CONTROLLER將HTTP請求封包并轉(zhuǎn)發(fā)到框架中相應(yīng)的對象,這些對象可能是一個JSP頁面或一個ACTIONCONTROLLER在WEBXML中設(shè)置為ORGAPACHESTRUTSACTIONACTIONSERVLET的一個實例。在一個完整的控制過程中,也就是處理一個HTTP請求時,在控制過程之初,這個SERVLET會從求情的路徑中解析出具體的STRUTS的路徑,再從配置文件STRUTSCONFIGXML中獲取請求與控制動作向?qū)?yīng)的配置信息,CONTROLLER通過這些配置信息來決定HTTP請求該往何處轉(zhuǎn)發(fā),而這些ACTION在接收到轉(zhuǎn)發(fā)來的請求后,再實現(xiàn)真正的商業(yè)邏輯。542模型MODEL所謂MODEL就是在對用戶請求的整個控制過程中,真正處理用戶請求并保存處理結(jié)果的對象,在整個過程中,我們一般利用JAVABEAN來把一些信息保存起來以便在各個對象之間傳遞因為在框架中,MODEL對象是真正處理商業(yè)邏輯功能的對象,因此也就是框架中應(yīng)用需求實現(xiàn)相關(guān)性最大的部分在STRUTS的實現(xiàn)里,MODEL的具體表現(xiàn)形式就是ACTIONFORM對象和與其對應(yīng)的ACTION對象了對用戶提交表單的數(shù)據(jù)進行校驗,甚至對數(shù)據(jù)進行預(yù)處理都能在ACTIONFORM中完成通常的應(yīng)用中,一般是一個MODEL對象和一個請求頁面對應(yīng)的關(guān)系,但也可以一個MODEL對象對應(yīng)多個頁面請求如果STRUTSCONFIGXML配置文件沒有指定一個MODEL對象對應(yīng)的ACTION,那么控制器將直接把通過MODEL對象完成數(shù)據(jù)封裝的請求轉(zhuǎn)到一個VIEW對象543表現(xiàn)VIEWVIEW只是用來向用戶表現(xiàn)信息。不進行業(yè)務(wù)處理。這里主要是一些JSP頁面55系統(tǒng)數(shù)據(jù)流圖產(chǎn)品模塊,定單模塊,購物車模塊登陸網(wǎng)站訪問數(shù)據(jù)庫用戶和管理員購物系統(tǒng)數(shù)據(jù)庫中的顯示信息返回結(jié)果各種資源0層圖數(shù)據(jù)庫中的定單定單模塊表及定單條目表用戶購物車模塊數(shù)據(jù)庫中的產(chǎn)品模塊產(chǎn)品表1層圖數(shù)據(jù)庫中的定單定單管理表及定單條目表管理員數(shù)據(jù)庫中的產(chǎn)品管理產(chǎn)品表1層圖6詳細設(shè)計61系統(tǒng)的數(shù)據(jù)庫設(shè)計611PRODUCT表PRODUCT表是用來存儲產(chǎn)品信息的應(yīng)有的字段是PRODUCTIDNUMBERNAMEVARCHARISBNVARCHARPRINTERVARCHARAUTHORVARCHARPRICENUMBERBOOKNUMVARCHARDESCRIPTIONVARCHARIMAGEPATHVARCHARCETATETIMEDATESTATENUMBERCATALOGFIDNUMBERPRODUCT表的建表語句為CREATETABLEE_PRODUCTPRODUCTIDINT10NOTNULLAUTO_INCREMENT,NAMEVARCHAR50NOTNULL,ISBNVARCHAR100DEFAULTNULL,PRINTERVARCHAR50DEFAULTNULL,AUTHORVARCHAR50DEFAULTNULL,PRICEDOUBLEDEFAULTNULL,BOOKNUMINT4DEFAULTNULL,CATALOGIDINT10NOTNULL,DESCRIPTIONVARCHAR1000DEFAULTNULL,IMAGEPATHVARCHAR100DEFAULTNULL,CREATETIMEDATEDEFAULTNULL,STATEINT2DEFAULT0,PRIMARYKEYPRODUCTID,KEYCATALOGIDCATALOGIDDEFAULTCHARACTERSETUTF8612ORDER表ORDER表主要用來存儲定單的一些信息主要有下面一些字段ORDERIDNUMBERTOTALPRICENUMBERORDERSTATENUMBERPAYINFONUMBERCREATETIMEDATEUSERNUMBERUSERITEMNUMBERORDER對應(yīng)表的建表語句為CREATETABLEE_ORDERORDERIDINT11NOTNULLAUTO_INCREMENT,TOTALPRICEDOUBLEDEFAULT0,ORDERSTATEINT11DEFAULT0,PAYINFOINT11DEFAULTNULL,CREATETIMEDATEDEFAULTNULL,USERIDINT11NOTNULL,USER_ITEM_IDINT11NOTNULL,PRIMARYKEYORDERID,KEYUSER_ITEM_IDUSER_ITEM_ID,KEYUSERIDUSERIDDEFAULTCHARACTERSETUTF8613ORDERITEM表ORDERITEM表主要記錄定單條目信息,有兩個外鍵分別是ORDERID和PRODUCTID,具體字段為ORDER_ITEM_IDNUMBERQUALITYNUMBERPRODUCTNUMBERORDERNUMBERORDERITEM對應(yīng)表的建表語句是CREATETABLEE_ORDER_ITEMORDER_ITEM_IDINT11NOTNULLAUTO_INCREMENT,PRODUCTIDINT11NOTNULL,ORDERIDINT11NOTNULL,QUALITYINT11NOTNULL,PRIMARYKEYORDER_ITEM_ID,KEYPRODUCTIDPRODUCTID,KEYORDERIDORDERIDDEFAULTCHARACTERSETUTF862系統(tǒng)模塊的劃分621產(chǎn)品模塊主要子模塊產(chǎn)品模塊主要子模塊有1增加產(chǎn)品;2刪除產(chǎn)品;3修改產(chǎn)品4查看產(chǎn)品列表;5查看產(chǎn)品詳細信息622購物車模塊主要子模塊購物車模塊主要子模塊有1生成購物車;2刪除購物車;3刪除購物車中的商品;4清空購物車中的商品;5修改購物車中商品數(shù)量;6向購物車中添加商品;623定單模塊主要子模塊定單模塊主要子模塊有1創(chuàng)建定單;2刪除定單;3查看定單列表;4查看定單中的詳細條目;63系統(tǒng)模塊的具體實現(xiàn)631產(chǎn)品模塊主要子模塊6311增加產(chǎn)品添加產(chǎn)品只能有管理員來操作,管理員由瀏覽器輸入產(chǎn)品信息,通過REQUEST的參數(shù)形式,傳到服務(wù)器端,瀏覽器端和服務(wù)器端主要代碼有JSP中接收用戶輸入的代碼段是/ADMIN/ADDPRODUCTDO“METHOD“POST“【書名】ACTION中主要用來接收用戶信息來進行業(yè)務(wù)操作,主要代碼為PUBLICACTIONFORWARDADDPRODUCTACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONACTIONFORWARDFORWARDMAPPINGFINDFORWARD“ERROR“TRYSTRINGNAMEREQUESTGETPARAMETER“NAME“/省略部分定義幾個用來接收用戶輸入的變量CATALOGCATALOGPRODUCTSERVICEGETCATALOGCATALOGIDPRODUCTPRODUCTNEWPRODUCTPRODUCTSETCATALOGCATALOG/省略部分將接收到的信息包裝成一個PRODUCTPRODUCTSETSTATE0PRODUCTSERVICEADDPRODUCTPRODUCT/將PRODUCT保存到DB中COLLECTIONPRODUCTSPRODUCTSERVICEGETPRODUCTSREQUESTGETSESSIONSETATTRIBUTE“PRODUCTS“,PRODUCTS/查找產(chǎn)品生成集合再將集合放到SESSION中;INTSIZEPRODUCTSSIZEREQUESTSETATTRIBUTE“SIZE“,SIZEREQUESTSETATTRIBUTE“PRODUCTS“,PRODUCTSFORWARDMAPPINGFINDFORWARD“SUCCESS“CATCHEXCEPTIONEEPRINTSTACKTRACERETURNFORWARD在此ACTION中,調(diào)用了服務(wù)層的PRODUCTSERVICE的ADDPRODUCT方法ADDPRODUCT方法有調(diào)用DAO層的ADDPRODUCT方法在SERVICE層中加了事物處理在DAO層有對數(shù)據(jù)庫的操作;對數(shù)據(jù)庫的操作如下PUBLICVOIDADDPRODUCTPRODUCTPRODUCTSESSIONSESSIONNULLTRYSESSIONHBNUTILGETSESSIONSESSIONSAVEPRODUCTCATCHEXCEPTIONEXTHROWNEWSTOREEXCEPTIONEX這里直接對數(shù)據(jù)庫操作,直接調(diào)用SESSION的SAVE方法6312刪除產(chǎn)品;刪除產(chǎn)品只能由管理員倆進行,管理員選擇要刪除的產(chǎn)品,然后由REQUEST參數(shù)的形式將PRODUCTID傳給服務(wù)器,在服務(wù)器端將產(chǎn)品刪除,JSP主要代碼有在服務(wù)器端,ACTION接收到的CHOCHBOX的STRING數(shù)組,利用循環(huán)將數(shù)組中的PRODUCTID拿到并且根據(jù)PRODUCTID來刪除PRODUCT,代碼為STRINGPRODUCTIDSREQUESTGETPARAMETERVALUES“CHECKBOX“IFPRODUCTIDSNULLRETURNFORWARDMAPPINGFINDFORWARD“SUCCESS“FORINTI0I/ADMIN/GETPRODUCTDOPRODUCTIDPRODUCTPRODUCTID“修改/這里就是通過這個連接來修改產(chǎn)品的在服務(wù)器端接收到GET請求后,拿到PRODUCTID在從數(shù)據(jù)庫里查出此PRODUCT放入REQUEST中,轉(zhuǎn)向修改頁面,修改各屬性后,在通過FORM表單的形式將參數(shù)傳給服務(wù)器,在服務(wù)器端,先拿到各屬性值,在通過PRODUCTID在數(shù)據(jù)庫中將PRODUCT查出,再將得到的各屬性放到查出的PRODUCT中在將PRODUCT保存入數(shù)據(jù)庫這里ACTION中的代碼斷為STRINGNAMEREQUESTGETPARAMETER“NAME“INTCATALOGIDINTEGERVALUEOFREQUESTGETPARAMETER“CATALOG“/上面省略部分為獲得請求中參數(shù)的過程CATALOGCATALOGPRODUCTSERVICEGETCATALOGCATALOGIDINTEGERPRODUCTIDINTEGERVALUEOFREQUESTGETPARAMETER“PRODUCTID“PRODUCTPRODUCTPRODUCTSERVICEGETPRODUCTBYIDPRODUCTID/通過PRODUCTID來從數(shù)據(jù)庫中得到PRODUCTPRODUCTSETCATALOGCATALOGPRODUCTSETIMAGEPATHIMAGEPATH/上面省略將屬性值放入PRODUCT中的部分代碼PRODUCTSERVICEMODIFYPRODUCTPRODUCT/將PRODUCT放入數(shù)據(jù)庫6314查看產(chǎn)品列表;查看產(chǎn)品列表是所有的用戶都可以作的一向操作;用戶在登陸首頁后就可看到所有產(chǎn)品的列表,此請求先對數(shù)據(jù)庫進行查詢;將查詢到的產(chǎn)品生成一個COLLECT,在將COLLECT傳給JSP去進行表現(xiàn)這里主要有一個實現(xiàn)分頁查詢的方法INTPAGE1TRY/第一次因為沒有設(shè)置PAGE屬性,所以會拋個空指針異常,捕獲之后將PAGE設(shè)置為1PAGEINTEGERPARSEINTREQUESTGETPARAMETER“PAGE“CATCHEXCEPTIONEXPAGE1PAGEHELPERPAGEHELPERNEWPAGEHELPER/這里PAGEHELPER為一個輔助PAGEHELPERSETPAGESIZEGLOBALSPAGE_SIZE/類用來實現(xiàn)分頁PAGEHELPERSETCURRENTPAGEPAGEPAGEHELPERSETMAXCOUNTPRODUCTSERVICEGETPROUDCTCOUNTCOLLECTIONPRODUCTSPRODUCTSERVICEGETPRODUCTSBYPAGESPAGEREQUESTSETATTRIBUTE“NAVIGATION“,PAGEHELPERSHOWNAVIGATION“LISTALL“REQUESTSETATTRIBUTE“PRODUCTS“,PRODUCTS在此過程的DAO中用到了HIBERNATE的分頁查詢LISTPRODUCTSNEWARRAYLISTSESSIONSESSIONNULLTRYSESSIONHBNUTILGETSESSIONPRODUCTSSESSIONCREATEQUERY“FROMPRODUCTPORDERBYPPRODUCTID“SETFIRSTRESULTPAGE1GLOBALSPAGE_SIZESETMAXRESULTSGLOBALSPAGE_SIZELISTRETURNPRODUCTSCATCHEXCEPTIONEXTHROWNEWSTOREEXCEPTIONEX這里首先設(shè)置了從什么地方開始放到結(jié)果集中,在設(shè)置了結(jié)果集的長度從而實現(xiàn)了分頁查詢;6315查看產(chǎn)品詳細信息;此操作也是用戶可以操作而且不需要登陸的情況下就可以查看了,用戶只需要在首頁點下查看詳細信息的超連接,就可以看到產(chǎn)品的詳細信息了在JSP中有這樣的一個連接/PAGE/PRODUCTDOMETHODLISTDETAILCARTCARTNEWCARTSESSIONSETATTRIBUTE“CART“,CART這個方法在SESSION被創(chuàng)建時自動執(zhí)行,這個方法是將創(chuàng)建的SESSION中放入一個空的購物車第二個用到的地方是在清空購物車后,再加商品進購物車時,SESSION中沒有CART,從而創(chuàng)建一個新的購物車此過程在ACTION中實現(xiàn)CARTCARTCARTSESSIONGETATTRIBUTE“CART“IFCARTNULLCARTNEWCART6232刪除購物車;在SESSION被銷毀的時候,既用戶推出時,或者SESSION過期時候,有監(jiān)聽器自動實現(xiàn)PUBLICVOIDSESSIONDESTROYEDHTTPSESSIONEVENTARG0HTTPSESSIONSESSIONARG0GETSESSIONCARTCARTCARTSESSIONGETATTRIBUTE“CART“SESSIONREMOVEATTRIBUTE“CART“CARTNULLUSERUSERUSERSESSIONGETATTRIBUTE“USER“SESSIONREMOVEATTRIBUTE“USER“USERNULL6323刪除購物車中的商品;此操作需要登陸用戶才可操作,登陸用戶在對購物車主界面中點擊刪除按鈕/BIZ/CARTDOMETHODREMOVE“在服務(wù)器端拿到要刪除的商品的PRODICTID,進行刪除;此操作不進行數(shù)據(jù)庫的操作所以不用調(diào)DAO;在ACTION中直接對CART對象操作;ACTION中代碼片段為HTTPSESSIONSESSIONREQUESTGETSESSIONINTEGERPRODUCTID

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論