日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

B2C销售网站的设计与实现

發布時間:2024/3/12 编程问答 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 B2C销售网站的设计与实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


摘 要:隨著網絡技術和應用需求的發展許多網站建立了電子商務平臺,網上購物系統是電子商務的一個重要的應用,由于網上購物系統擁有方便快捷、投資小、回收快、不受地理位置影響等一系列優點,它已成為研究與應用的熱點,本系統就是在客戶需求的基礎上建立了蘇寧易購的銷售網站系統。
本系統便是嘗試用JSP在網絡上架構一個動態的電子商務網站,它是在Windows XP下,以Oracle為數據庫開發平臺,Tomcat網絡信息服務作為應用服務器,采用MVC模式開發的網上購物系統。它分前臺部分和后臺部分,前臺主要包括用戶注冊、商品瀏覽、購物車管理、訂單管理、個人資料管理模塊;后臺主要包括商品管理、訂單處理、用戶信息管理模塊。
關鍵詞:Servlet,JSP,MVC,網上購物系統
Design and implementation of Suningyi purchase sales site

Abstract: With the development of network technology and application needs many e-commerce website platform, online shopping system is an important application of e-commerce, the online shopping system has convenient, small investment, quick recovery, less affected by the location and a series of advantages, it has become the hotspot of research and application, the system is based on the needs of the customers established sales website system Suningyi purchase.
The system is the electronic commerce website try in a dynamic network architecture with JSP, which is in Windows XP, with Oracle database development platform, Tomcat network information services as application servers, using MVC online shopping system development model. It is divided into the front part and back part, the onstage mainly includes the user registration, product browsing, shopping cart management, order management, personal information management module; the backstage mainly includes the commodity management, order processing, user information management module.
Keywords: Servlet, JSP, MVC, online shopping system
目錄
TOC 1-3 前言 1
第1章 緒論 2
1.1開發背景 2
1.2 研究目的 3
第2章 相關技術簡介 4
2.1 JSP技術 4
2.2 JDBC技術 5
2.3 MVC模式 6
2.4 MyEclipse簡介 6
2.5 Oracle簡介 7
第3章 總體設計 9
3.1需求分析 9
3.2 功能模塊設計 10
3.2.1前臺功能模塊設計 10
3.2.2后臺功能模塊設計 11
3.3 數據庫設計 12
3.3.1 E-R圖 12
3.3.2數據庫表設計 14
第4章 詳細設計 17
4.1創建與數據庫的連接 17
4.2前臺功能的設計和實現 18
4.2.1用戶管理模塊 18
4.2.2商品管理模塊 22
4.2.3購物車管理模塊 24
4.2.4訂單管理模塊 25
4.3 后臺功能的設計與實現 26
4.3.1管理員登錄模塊 26
4.3.2用戶查詢模塊 27
4.3.3商品管理模塊 28
4.3.4訂單管理模塊 30
第5章 結束語 32
參考文獻 33
致謝 34
前言
隨著計算機網絡技術的發展,Web軟件系統被廣泛地應用。在軟件技術日趨成熟的今天,開發者不再僅僅著力于系統功能的實現,更關注軟件系統的結構。然而,目前的電子商務平臺很多基于傳統的開發技術,動態網頁中會嵌有大量的業務邏輯程序代碼,存在程序可重用程度低、可擴展性差、維護工作煩瑣等缺點。針對以上提出的問題,我們對基于MVC模式的電子商務平臺構造技術進行研究,結合實例采用JSP簡化系統開發,提高系統性能以及可維護性,體現了軟件框架結構和組件技術重用的優越性。
當今社會互聯網成為人們快速獲取、發布和傳遞信息的重要渠道,它在人們政治、經濟、生活等各個方面發揮著重要的作用。其中最具代表性之一的就是網上商店的誕生,網上購物系統向消費者展示出一片新鮮的購物天地,網上購物彌補了傳統購物的一些局限性,成為傳統購物的補充,極大方便了人們的生活。系統采用B/S體系結構,人們通過瀏覽器就可以訪問本網站的主頁。由于MVC模式的簡單高效性,本系統是在MVC模式之下,使用JSP、Servlet、JDBC、Ajax等技術實現的,同時使用JDBC操作數據庫中的表和數據。
本說明書分為5章,第1章介紹了課題的背景以及目的和意義,還有系統設計目標,第2章介紹了開發此系統運用到的一些相關技術JSP、MVC模式等,以及對myeclipse等一些開發工具做了介紹,第3章對此系統進行了總體設計,包括需求分析和數據庫的設計,第4章是對系統的詳細設計,主要講述了系統是如何實現的,包括前后臺兩個模塊,前臺實現了用戶注冊登錄等功能,后臺實現了管理員對系統的管理,如對訂單的管理等,第5章是結束語,主要是對本系統做出評價,指出本系統的優缺點。
第1章 緒論
1.1開發背景
傳統的購物是到商店手把手的挑選商品,和貨主面對面交易,完成商品購買,這種購物方式是有很多缺點的,比如人多的時候要排隊等候、商品種類缺少等。隨著現代消費理念的提高和互聯網的普及,人們已經不再滿足傳統的商務模式,不再滿足面對面地選擇商品而浪費時間,因為電子商務應運而生。電子商務可以指的是利用簡單、快捷、低成本的電子通訊方式,買賣雙方不謀面地進行各種商貿活動。一般能在網上獲得供求信息從而達成交易的行為活動都可以稱之為電子商務,如具體的各類產品的供求信息網站也都可以稱之為電子商務網站。電子商務是因特網爆炸式發展的直接產物,是網絡技術應用的新方向。因特網本身所具有的開放性、全球性、低成本、高效率的特點,也成為電子商務的內在特征,并使得電子商務大大超越了作為一種新的貿易形式所具有的價值[1]。
現在人們對于互聯網技術的要求已不單單是瀏覽一下網頁,收發電子郵件,日益忙碌的人們開始追求足不出戶的利用互聯網這一強大的平臺來實現的網上購物。對于企業來講,無論是企業之間(B to B),還是企業和客戶之間(B to C)的交易,如果能夠實現網上交易將大大提高交易速度、節約交易成本。近幾年,隨著網絡數據庫技術的進一步發展,使得這一設想逐漸成為現實。運用JSP技術和網絡數據庫原理,基于B/S模式用java語言開發了一個網上購物系統。
網上商城”實際上是運行在Web服務器中的一個Web運用程序。網上商店”模擬一般的商店的經營模式。利用頁面、腳本程序來實現網上商城”的進貨管理、銷售管理、庫存管理。互聯網技術提供的不僅僅只是供需雙方間的較低的交易成本,還有較低的選擇費用和更多可供選擇的商品。這些特點促使商家更多地通過使用網站來實現電子商務。本系統是蘇寧易購的銷售網站設計與實現,用戶可以很方便的注冊成為網站會員,對商品進行瀏覽檢索,查看商品的詳細資料,然后根據各人的喜好把心儀的商品放入購物車,按照顧客所填寫的信息提交訂單。系統管理員則可以對現有的商品進行添加和編輯,查詢已注冊的用戶并對提交的訂單進行處理[2]。
1.2 研究目的
網絡購物中心是一種典型的電子商務網站,它的主要功能為企業與客戶提供一個理解的交易平臺,使掌握信息技術和商務規則的企業和個人,系統地利用各種電子工具和網絡,高效率、低成本地從事各種以電子方式實現的商貿活動。網絡購物中心可以將傳統形式的購物活動的全過程在網絡上以電子交易方式實現的商業貿易活動,包括選購商品、處理訂單等。企業通過網絡購物中心可以完成交易的全過程,擴大交易的范圍,提高工作的效率,從而獲取經濟和社會效益。
網上購物不僅改變了公司進行運作的模式,使網上商城成為傳統商務的補充和發展,也使人們改變了消費的觀念和消費習慣。網上購物最大程度地方便了用戶,你可以通過WWW瀏覽器實現WEB購物。自從幾十年前電子計算機的出現,就為網上購物的發展創造了客觀條件。但是它的發展還要借助于網絡,所以其快速發展是在因特網的廣泛應用上,可以預見,網上購物將成為商業普及、貿易的主流,必將影響著千家萬戶的生活和消費行為,并日益成為社會商業貿易活動的重要形式。廉價的網絡資源使得網上商城成本低廉,世界性的互聯網絡帶來無比寬闊的市場,給商家和買家帶來的眾多利益帶來無限需求[3]。
本系統利用現在比較廣泛的JSP+Oracle數據庫的架構實現的,前臺管理是友好的操作界面,供用戶瀏覽、查詢使用。包括瀏覽商品、查詢商品、訂購商品、購物車、用戶維護等功能;后臺管理是提供給管理員的,其中包括商品管理、用戶管理等。使管理員從繁瑣的手工操作中解脫出來,并提高了辦公效率。
第2章 相關技術簡介
2.1 JSP技術
Sun公司為了實現邏輯控制而創建出Servlet語言,但是Servlet語言將程序的邏輯控制代碼和輸出網頁文檔內容混合在一起,使得控制網頁文檔內容的顯示外觀和整體布局很難看,為了彌補Servlet語言這一缺陷,從而推出了JSP技術。它可以在傳統的網頁HTML中插入Java程序段和腳本文件以及JSP標記。用JSP開發的Web應用是跨平臺的。
JSP頁面由Web服務器執行,JSP的運行原理是當客戶端向服務器發送請求時,被請求的JSP頁面首先被Web應用服務器(tomcat)編譯成Servlet(即將”.jsp”檔編譯成Java Class檔)并執行,然后將所產生的結果作為一個HTML文件傳輸給瀏覽器,如果該JSP文件沒有被修改過,當客戶端再次向服務器發送請求時,JSP文件將不會再編譯,而是直接執行已編譯好的Servlet,這使得服務器的響應速度變得非常快,從而加快了訪問速度。
JSP支持對組件的訪問,組件本身體現了封裝和復用的思想,基于組件的開發能有效提高軟件生產效率。多數JSP頁面依靠JavaBeans(相當于一個實體類)及企業級JavaBeans(EJB)組件, 來完成應用所需的復雜處理,并通過頁面中的腳本把具有特定功能的組件集成在一起。現在,由第三方開發的共享組件越來越多,大大簡化了用JSP實現動態網頁的工作。JSP允許開發人員自己定義標簽(tag ),這種標簽一般對應于標簽庫中的Java程序,代表特定的應用功能。JSP使網頁的外觀設計與其動態內容分離,SP頁面中的HTML標簽定義了網頁的外觀,嵌在頁面中的腳本、JavaBeans組件和標簽庫,共同生成與應用邏輯相關的動態內容。
本系統中用到了JSP的的標準標簽庫(JSTL),JSTL提供了能方便定義變量的標簽,比如本系統在商品信息的jsp頁面中中就用到了這個標簽,還用到了標簽,用來執行流程控制,其功能和java中的if功能完全相同。在標簽中配合使用EL了表達式,主要用于查找作用域中的數據,然后對它們執行簡單操作[4]。
本系統中還用到了JSP九大內置對象中的request、response、session、out四個對象,request對象封裝了用戶提交的信息,通過調用該對象相應的方法可以獲取封裝的信息,即使用該對象可以獲取用戶提交的信息,使用getParameter()方法獲取表單提交的信息。當request對象獲取客戶提交的漢字字符時,會出現亂碼問題,必須進行特殊處理,如下設置:request.setCharacterEncoding(utf-8),request對象作用域是一次請求;response對象主要功能是用于服務器對客戶端的回應;session是基于cookie產生的,由tomcat管理的,cookie是通過代碼創建的。session對象指的是客戶端與服務器的一次會話,從客戶連到服務器的一個WebApplication開始,直到客戶端與服務器斷開連接為止,它是HttpSession類的實例。系統中用setAttribute()方法存放用戶名和密碼,out對象時一個輸出流,用來向客戶端輸出數據。out對象用于各種數據的輸出,其常用方法有out.print()用于輸出各種類型數據,out.close()是用于關閉流的。
2.2 JDBC技術
JDBC(Java DataBase Connectivity)是sun公司制定的Java鏈接數據庫技術。在安裝好數據庫后JSP并不能直接與數據庫連接,這里選擇利用第三方JDBC驅動程序連接數據庫。JDBC連接數據庫的方式有四種,分別是JDBC-ODBC橋接驅動、JDBC本地訪問方式、DBC網絡訪問方式、JDBC數據庫協議訪問方式。在項目開發中,如果頻繁在JSP頁面中使用數據庫連接函數,釋放函數進行操作的話,勢必會非常麻煩,而且代碼的冗余量也很大,頁面很多的時候維護也會非常麻煩,頁面上到處都是數據庫連接和釋放代碼。因此,可以利用公共數據庫訪問連接JavaBean的開發。通過將數據庫連接函數代碼,釋放函數代碼等封裝在JavaBean中,可以減少非常多的代碼編程工作,提高代碼可維護性。
SQL(結構化查詢語言),它是一種標準化的關系型數據庫訪問語言。在SQL看來,數據庫就是表的集合,其中包含了行和列。SQL標準雖然也還處在不斷變革之中(任何一門標準如果已一成不變了,那只能說明這門學科已經停止發展了),但其基本內容相對穩定。JDBC定義了Java語言同SQL數據之間的程序設計接口。
本系統中自定義了一個底層數據庫操作類DataBaseOperate,首先進行數據庫連接屬性的配置,在加載了JDBC驅動程序,建立了數據庫的URL后,定義一個配置文件存放路徑,使用getPath()方法,要先對文件是否存在加以判斷,若不存在,先創建一個文件jdbc.xml,若存在,通過調用DriverManager類的getConnection方法與oracle數據庫連接。這樣,在其他的Java文件和頁面中聲明調用或包含了jdbc.xml文件后,都可以對數據庫操作了,最后一定要記得關閉數據庫及相關的對象。
2.3 MVC模式
本系統中使用MVC模式來降低耦合度,實現分層思想。其中Model層實現系統中的業務邏輯,由JavaBean來實現,View層用于與用戶的交互,用JSP來實現,Controller層是M
odel與View之間溝通的橋梁,它可以分派用戶的請求并選擇恰當的視圖以用于顯示,同時它也可以解釋用戶的輸入并將它們映射為模型層可執行的操作,本系統中是用servlet來實現的。
MVC全名是Model View Controller,是模型(model)、視圖(view)、控制器(controll
er)的縮寫,一種軟件設計典范,用于組織代碼,用一種業務邏輯 (?http:?/??/?baike.baidu.com?/?view?/?1642754.htm?)和數據顯示 (?http:?/??/?baike.baidu.com?/?view?/?1309817.htm?)分離的方法,這個方法的假設前提是如果業務邏輯被聚集到一個部件里面,而且界面和用戶圍繞數據 (?http:?/??/?baike.baidu.com?/?view?/?38752.htm?)的交互能被改進和個性化定制而不需要重新編寫業務邏輯,MVC被獨特的發展起來用于映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中[5]。
視圖是用戶看到并與之交互的界面。對老式的Web (?http:?/??/?baike.baidu.com?/?view?/?3912.htm?)應用程序來說 ,視圖就是由HTML (?http:?/??/?baike.baidu.com?/?view?/?692.htm?)元素組成的界面,在新式的Web應用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術已層出不窮,它們包括Adobe Flash (?http:?/??/?baike.baidu.com?/?view?/?1128244.htm?)和象XHTML、XML/XSL、WML (?http:?/??/?baike.baidu.com?/?view?/?160091.htm?)等一些標識語言和Web services (?http:?/??/?baike.baidu.com?/?view?/?1086510.htm?)。MVC好處是它能為應用程序處理很多不同的視圖。在視圖中其實沒有真正的處理發生,不管這些數據是聯機存儲的還是一個雇員列表,作為視圖來講,它只是作為一種輸出數據并允許用戶操縱的方式。
模型表示企業數據和業務規則。在MVC的三個部件中,模型擁有最多的處理任務,例如它可能用像EJBs和ColdFusion Components這樣的構件對象 (?http:?/??/?baike.baidu.com?/?view?/?2387.htm?)來處理數據庫,被模型返回的數據是中立的,就是說模型與數據格式無關,這樣一個模型能為多個視圖提供數據,由于應用于模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復性[6]。 
控制器接受用戶的輸入并調用模型和視圖去完成用戶的需求,所以當單擊Web頁面中的超鏈接和發送HTML表單 (?http:?/??/?baike.baidu.com?/?view?/?3488030.htm?)時,控制器本身不輸出任何東西和做任何處理。它只是接收請求并決定調用哪個模型構件去處理請求,然后再確定用哪個視圖來顯示返回的數據。
2.4 MyEclipse簡介
本系統是在MyEclipse上進行開發的,MyEclipse從本質上講是基于Eclipse的JavaEE方面的插件,是專門為方便JavaEE項目的開發設計的。MyEclipse的功能非常強大,支持也十分廣泛,尤其是對各種開源產品的支持十分不錯。MyEclip目前支持Java Servlet、AJAX、 JSP、JSF、 Struts、Spring、Hibernate、EJB3,JDBC數據庫鏈接工具等多項功能。可以說MyEclipse幾乎囊括了目前所有主流開源產品的專屬eclipse開發工具。本系統用的是Myeclipse8.5版本,Genuitec發布了MyEclipse Enterprise Workbench 5.0,更智能、更快捷、更簡單和更便宜的J2EE工具的新版本的誕生。它的價格對于個人和企業開發人員來說都是非常有吸引力的。這是J2EE IDE市場一個重量級的選手。通過增加UML雙向建模工具、WYSIWYG的JSP/Strutsdesigner、可視化的Hibernate/ORM工具、Spring和Web services支持,以及新的Oracle數據庫 (?http:?/??/?baike.baidu.com?/?view?/?1685727.htm?)開發,MyEclipse 5.0繼續為業界提供全面的產品[7]。
由于MyEclipse自帶的jdk不全面,而且不能更新,所以在oracle官網中下載了jdk1.6.0_23,然后在MyEclipse中配置jdk,點擊window下的Preferences,接著點擊下面Java下的Installed JREs,點擊add,最后還要設定環境變量path,JAVA_HOME。Path變量針對Java的具體含義是系統在任何路徑下都可以識別Java命令需要設置的變量。JAVA_HOME變量就是java的安裝路徑。
2.5 Oracle簡介
本系統使用的數據庫是oracle,采用pl/sql工具建了5張表以及一個序列,該序列名稱是T_SPXX_SPBH,PL/SQL Developer是一個集成開發環境,專門面向Oracle數據庫存儲程序單元的開發。oracle數據庫是一種大型數據庫系統,一般應用于商業,政府部門,它的功能很強大,能夠處理大批量的數據,在網絡方面也用的非常多。不過,一般的中小型企業都比較喜歡用mysql、SQL server等數據庫系統,它的操作很簡單,功能也比較齊全。只是相對于oracle數據庫而言,在處理大量數據方面有些不如,oraclede的穩定性比sqlserver好,安全性也比sqlserver好,獲得最高認證級別ISO的認證,oracle具有開放性,sqlserver只能在windows上運行[8]。
oracle簡稱甲骨文,是僅次于微軟公司的世界第二大軟件公司,該公司名稱就叫oracl
e。oracle數據庫管理系統是一個以關系型和面向對象為中心管理數據的數據庫管理軟件系統,其在管理信息系統、企業數據處理、因特網及電子商務等領域有著非常廣泛的應用。因其在數據安全性與數據完整性控制方面的優越性能,以及跨操作系統、跨硬件平臺的數據互操作能力,使得越來越多的用戶將oracle作為其應用數據的處理系統。oracle數據庫是基于客戶端/服務器”模式結構。客戶端應用程序執行與用戶進行交互的活動。其接收用戶信息,并向服務器端發送請求。服務器系統負責管理數據信息和各種操作數據的活動。
oracle數據庫將權限劃分為系統權限和對象權限兩大類。系統權限是當前用戶對數據庫的操作權限,對象權限是當前用戶對其他用戶創建的數據庫對象的訪問權限。數據庫對象有表、約束、索引、序列、觸發器等等。實際Oracle的數據庫對象是存放在一個叫做”方案”的邏輯空間內的。當前用戶創建的數據庫對象都放在當前用戶的方案下,在用戶創建的時候Oracle數據庫會自動的為該用戶創建一個與用戶名相同的方案名。oracle創建表的規則:表名是由字母、數字、$、#、_組成 ,數字不能開頭,長度不能超過30字符,大小寫不敏感。一般情況下表名用大寫來顯示,不建議使用中文, 不能使用Oracle中的關鍵字。如該系統中的用戶表名是T_YH,要注意的是如果需要訪問其他的oracle數據庫必須要配置tnsnames.ora在oracle的安裝目錄下的NETWORK/ADMIN/下,然后打開tnsnames.ora,把SERVICE_NAME = orcl中的orcl改成你要訪問的那個數據庫名稱。
本系統要能正常使用數據庫的前提是必須把服務(OracleServiceORC)和監聽器(OracleOraDb10g_home1TNSListener)開啟,建議把它們改成手動,這樣不影響開機速度。
第3章 總體設計
3.1 需求分析
商務系統隨著中國經濟的高速發展發生了巨大的變化。專做營銷的中小型企業隨著百姓個人消費水平的增長迅速成長起來,但同時也帶來了這一行業激烈的競爭。如今的網站已經不單單是把企業想要表達的內容拜訪在網站上那么簡單,設計包含了更多的元素,例如css樣式、jsp頁面,給予瀏覽者更多的視覺享受。現在企業營銷商需要用一些更新穎更有效的方式增強競爭力。建設一個宣傳自身商品形象的電子商務營銷模式的網站是一種有效的方法。另外,通過電子商務網站,廣闊自己的營銷方式和市場,能夠幫助企業營銷商從魚龍混雜的市場中脫穎而出,完善企業銷售與服務的環節,最終提升企業的價值與經濟效益。蘇寧也在建立起了屬于自己的購物平臺,本系統就是模擬蘇寧易購網站實現的一個網上購物系統[9]。具有基本以下功能:
1.用戶注冊登陸功能:用戶戶根據注冊模快要求進行郵箱注冊,驗證碼的驗證,手機號是可選填的,注冊后成功后完善自己的信息。
2.商品管理功能:該部分功能包括商品的管理和商品的瀏覽查詢兩大部分,將商品分成了日用、流行、新品、熱銷這4種狀態,商品管理是面向管理員的,分商品增加、修改、查詢,刪除4個部分。面向用戶的主要是商品的搜索,瀏覽功能,這里只支持精確查詢。
3.購物車管理功能:商店用戶在瀏覽商品時,可以根據自己愿意購買的商品加入到購物車,然后可以去結算或者繼續購物,購買方式有兩種,一鍵購和加入購物車,一鍵購是不需要加入購物車的,但是若要繼續瀏覽其他商品可以選擇先加入購物車,當進行結帳上時,購物車變為定單。
4.訂單管理功能:訂單管理分為面向管理員者和面向用戶,管理員可以查詢定單,修改定單以及刪除訂單,但是只能修改商品數量和商品總價格。用戶可以查詢訂單狀態,若此訂單未付款,用戶可以在此付款。
5.用戶管理功能:此功能也分為兩種面向管理員者和面向用戶,用戶可以對自己的信息進行修改,本系統有個默認的admin最大管理員,admin修改用戶信息,注意的是不能修改用戶密碼,同時可以給用戶授管理員權限,管理員可以查詢所有用戶,并有權刪除。admin也可以新增其他管理員。
3.2 功能模塊設計
層次模塊結構是將系統劃分為若干子系統,子系統下再劃分為若干的模塊。而模塊是指具備有輸入輸出、邏輯功能、運行程序和內部數據四種屬性的一組程序。在結構化系統設計中,模塊一般都是按功能劃分的,通常稱為功能模塊。合理的功能模塊的劃分能夠極大限度地減少重復勞動、提高開發工作的效率并增大系統的可維護性[10]。
以前面的需求分析為基礎,將系統分為兩大模塊,即前臺模塊和后臺模塊。本系統的功能結構如圖3-1所示。
圖3-1 系統功能結構圖
3.2.1 前臺功能模塊設計
前臺用戶如需購買商品則需要先注冊,為了系統的安全性考慮,在注冊用戶時要對郵箱格式進行了驗證,還要校驗兩次密碼輸入是否相同,以及驗證碼是否輸入正確,注冊成功之后還要完善信息,完善的信息中包括昵稱、真實姓名、性別、出生年月、證件類型、證件號碼、居住地址。此時也要驗證出生年月的格式和身份證的有效性,注冊成功之后登錄到首頁面中,這時瀏覽商品了,將喜歡的商品選中加入購物車,可以查看購物車,修改商品數量,當總金額大于等于80時是免運費的,如果覺得這個商品不喜歡了可以刪除購物車,購買購物車中的商品,即可以生成訂單,也可以在訂單管理里面查詢到訂單,訂單狀態為0的時候設置為未付款狀態。如果沒有登陸直接去主頁面瀏覽商品的話,是不能加入購物車的,這是通過自己的用戶名和密碼登陸進去可以直接跳到剛剛瀏覽的那個頁面,不需要再重新去查找商品了,這個是比較人性化的設計。為了方便登陸后臺頁面,在前臺首頁上放了一個超鏈接可以連到后臺登陸的界面[11]。前臺具體模塊如圖3-2所示。

圖3-2 前臺功能結構圖
3.2.2 后臺功能模塊設計
臺后臺管理員不能注冊只能由默認的admin管理員新增,首先要對管理員賬號和密碼進行驗證,登陸進去之后可以將所有的用戶查詢出來,這里支持模糊查詢,可以修改用戶信息,給用戶設置是否有管理員權限,后臺查詢商品可以根據商品編號查詢,也可以根據商品編號和商品名稱同時查詢,可以修改商品信息,刪除掉的商品將在后臺商品信息表中的商品狀態置為0,還可以去查詢訂單,如果生成的訂單沒有付款則訂單狀態置為0,付款成功后置為1[12]。后臺具體模塊如圖3-3所示。
圖3-3 后臺功能結構圖
3.3 數據庫設計
在建設網站系統之前,必須對系統所用到的數據進行大致的分類和具體的結構設計,既要做到清晰明了,又要能適應系統各項功能的調用,而不至于產生結構上的邏輯混亂,保證關鍵數據在意外情況下不會被破壞,可以說數據庫是系統的重中之重。數據庫的核心思想是構造數據庫,建立數據庫及相關的系統,滿足各種需求。首先在設計數據庫時要分離各個實體和表,一個實體對應一個表;同時要明確各實體間的關系,明確各實體的屬性,以便確定它的字段[13]。
3.3.1 E-R圖
數據模型是現實世界中數據特征的抽象。數據模型應該滿足三個方面要求,能夠比較真實的模擬現實世界,容易為人所理解,便于計算及實現。E-R圖為實體關系圖,提供了表現實體型、屬性和聯系的方法,用來描述現實世界的概念模型。構成E-R圖的基本要素是實體型、屬性和聯系。用矩形表示實體型,矩形 (?http:?/??/?baike.baidu.com?/?view?/?150124.htm?)框內寫明實體名;用橢圓 (?http:?/??/?baike.baidu.com?/?view?/?36981.htm?)表示實體的屬性,并用無向邊將其與相應的實體型連接起來;用菱形表示實體型之間的聯系,在菱形 (?http:?/??/?baike.baidu.com?/?view?/?133728.htm?)框內寫明聯系名,并用無向邊分別與有關實體型連接起來[14]。
本系統中包括用戶、管理員、商品、訂單這幾個實體。實體產生的行為有用戶注冊和登陸、用戶資料修改、用戶購買商品、商品的增刪改查、訂單的增刪改查、管理員對用戶的刪除、修改。
商品實體具有商品編號、商品名稱、尺碼、商品狀態、商品描述、商品類型、日用狀態、熱銷狀態、新品狀態、流行狀態、顏色、商品價格、商品數量、圖片路徑這些屬性,商品信息實體圖如圖3-4所示。
圖3-4 商品信息實體圖
訂單實體具有訂單狀態、訂單編碼、配送方式、收貨人、手機號碼、電話、用戶名、下單時間、結算金額、收貨地址這些屬性。它的實體圖如3-5所示。
圖3-5 訂單明細實體圖
3.3.2 數據庫表設計
本系統數據庫采用Oracle數據庫,共包含用戶表、用戶信息表、商品信息表、訂單主表和訂單明細表這5張表。
用戶表主要存放用戶注冊后而為進行完善信息的時候的數據的存放,用于前臺注冊。該表主要字段有用戶名、密碼、是否是管理員、用戶狀態,主鍵是用戶名,用0和1作為判斷,0代表不是管理員,不是用戶,1代表是管理員,是用戶[15]。如表3-1所示。
表3-1 用戶表
列名 數據類型 是否為空 是否為主鍵 描述
yhm Varchar2(50) 否 √ 用戶名
mm Varchar2(50) 否 密碼
sfsgly Number 否 是否是管理員
yhzt Number 否 用戶狀態
用戶信息表主要存放用戶信息完善后的數據的存放,用于前臺登記,后臺用戶管理。該表主要字段有用戶名、郵箱、昵稱、姓名、性別、出生年月、證件類型、證件號碼、居住地址,主鍵是用戶名,該表與用戶表是以用戶名關聯的。如表3-2所示。
表3-2 用戶信息表
列名 數據類型 是否為空 是否為主鍵 描述
yhm Varchar2(50) 否 √ 用戶名
email Varchar2(50) 否 郵箱
nc Varchar2(50) 否 昵稱
xb Varchar2(50) 否 姓名
xm Varchar(250) 否 性別
csny Date 否 出生年月
zjlx Varchar2(50) 否 證件類型
zjhm Varchar2(50) 否 證件號碼
jzdz Varchar2(50) 否 居住地址
訂單主表用于前臺用戶提交訂單后的訂單信息。該表主要字段有訂單編碼、商品名稱、購買數量、商品總金額、訂單狀態、下單時間,其中訂單編碼是主鍵,訂單狀態用0和1表示,0表示該訂單還未付款,1表示付款成功。如表3-3所示。
表3-3 訂單主表
列名 數據類型 是否為空 是否為主鍵 描述
ddbm Varchar2(50) 否 √ 訂單編碼
spbh Varchar2(50) 否 商品名稱
spsl Number 否 購買數量
spzje Number 否 商品總金額
spzt Number 否 訂單狀態
xdsj Date 否 下單時間
商品信息表用于前臺商品詳細信息的顯示,用于后臺商品信息的修改和刪除。該表主要字段有商品編號、商品名稱、商品價格、商品數量、顏色、尺碼、款式、商品描述、熱銷狀態、新品狀態、流行狀態、日用狀態、商品狀態、圖片路徑、商品類型,通過建立一個序列來生成商品編號,商品狀態用0和1表示,0表示商品無效,當商品被刪除是商品狀態就為0。如表3-4所示。
訂單明細表是與訂單主表相關聯的,該表用于后臺管理員對訂單的查詢的數據的顯示。該表主要字段有訂單編碼、配送方式、收貨人、用戶名、手機號碼、電話、收貨地址、訂單狀態、結算金額、下單時間。其中訂單編碼是主鍵。如表3-5所示。
表3-4 商品信息表
列名 數據類型 是否為空 是否為主鍵 描述
spbh Varchar2(50) 否 √ 商品編號
spmc Varchar2(50) 否 商品名稱
spjg Number(10,2) 否 商品價格
spsl Integer 否 商品數量
ys Varchar2(50) 否 顏色
cm Varchar2(50) 否 尺碼
ks Varchar2(50) 否 款式
spms Varchar2(500) 否 商品描述
rxzt Number 否 熱銷狀態
xpzt Number 否 新品狀態
lxzt Number 否 流行狀態
ryzt Number 否 日用狀態
spzt Number 否 商品狀態
tplj Varchar2(100) 否 圖片路徑
splx Varchar2(50) 否 商品類型
表3-5 訂單明細表
列名 數據類型 是否為空 是否為主鍵 描述
ddbm Varchar2(50) 否 √ 訂單編碼
psfs Varchar2(50) 否 配送方式
shr Varchar2(50) 否 收貨人
yhm Varchar2(50) 否 用戶名
sjhm Number 否 手機號碼
dh Number 否 電話
shdz Varchar2(100) 否 收貨地址
ddzt Number 否 訂單狀態
xdsj Date 否 結算金額
jsje Number 否 下單時間
第4章 詳細設計
將系統分成前臺和后臺分成兩個模塊,各模塊雖然是獨立的,但又統一于同一數據庫中,便于管理員管理維護數據庫,同時也便于用戶的操作。通過數據庫連接,對后臺數據進項增刪改查,并把數據顯示到前臺頁面上[16]。
4.1 創建與數據庫的連接
在JSP中可以使用Java的JDBC技術,實現對數據庫中表記錄的查詢、修改和刪除等操作。JDBC技術在JSP中占有很重要的位置。JDBC(Java DataBase Connectivity)是Java數據庫連接API。JDBC能完成三件事,第一是與一個數據庫建立連接,第二是向數據庫發送SQL語句,第三是處理數據庫返回的結果。要先配置數據庫連接的屬性配置,配置驅動private String driver=oracle.jdbc.driver.OracleDriver,配置url路徑private String url = jdbc:oracle:thin:@localhost:1521:ORCL,配置數據庫的用戶名private String user = scott,配置數據庫的密碼private String password = niit,定義配置文件存放路徑private File pFile = new File(DataBaseOperate.class.getResource(/).getPath().
replaceAll(/classes, /conf)+ jdbc.xml),再定義一個全局連接的變量private Connection con = null和全局通道的變量private Statement state = null,通過Class.forName(driver)加載驅動,通過con = DriverManager.getConnection(url, user, password)建立連接,最后通過state = con.createStatement()創建通道[17]。
4.2 前臺功能的設計和實現
前臺主要實現了用戶注冊、用戶登錄、商品展示、購物車管理、生成訂單等功能,采用ajax進行在js中向web服務器請求傳遞數據并接受數據[18]。
4.2.1 用戶管理模塊
用戶在購買商品前一定要先登錄,如果沒有注冊過則需先注冊用戶,然后才能瀏覽、購
買商品。注冊時要驗證郵箱地址,兩次密碼是否輸入相同,驗證碼是否正確,還對密碼強度進行了判斷,手機號碼是可選填的,使用了正則表達式[19]來驗證郵箱格式和密碼強度和手機號碼,如果驗證碼看不清可以點擊換一張,就是通過一個click事件,綁定一個事件處理函數,使用attr()方法設置被選元素的屬性值。對這一系列的驗證增強了系統的安全性,合理性。
用戶注冊界面如圖4-1所示。
圖4-1用戶注冊圖
點擊注冊頁面的提交注冊按鈕之后,會觸發一個click事件,通過該按鈕的id找到它綁定的函數,點擊提交按鈕之后要先把所有提示信息清空,然后進行一系列驗證,定義了一個falg變量,設為true,如果flag等于true,則使用ajax的post方法請求后臺servlet 類if(flag==true){$.post(/SNYG/servlet/registServlet,{yxdz: $(#yxdz).val(),mm:
$(#szmm).val(),sjhm: $(#sjhm).val(),yzm: $(#yzm).val()},post向指定的資源提交要處理的數據。該servlet中創建了一個用戶的對象RegistUser ru=new RegistUser(),
調用了RegistUser用戶類中的ru.saveUserInfo(yxdz, mm,telephone)方法,執行sql語句String sql=insert into t_yh(yhm,mm,sfsgly,yhzt) values(+email+,+password+
,0,1)將數據插入到后臺數據庫表中,定義一個funciton(data){}的函數,如果data等于0表示用戶名存在,等于1表示驗證碼錯誤,等于2表示驗證通過,然后根據if判斷,根據id從頁面中取得對應元素,將text的文本內容設置到該元素中。
頁面中的驗證碼是定義了一個圖形處理類YanZhengMaServlet 來處理的,首先設置http頭信息,讓頁面知道這是一幅圖片response.setContentType(image/jpeg),然后取消圖片的緩存response.setHeader(Pargma, No-cache),接著再在內存中創建圖片的緩沖區BufferedImage image=new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB
),定義一個畫筆Graphics g=image.getGraphics(),最后定義一系列的畫邊框、背景、隨機線、數字的方法,記得的數字放在session中存儲以便登陸的時候驗證HttpSession session = request.getSession(),session.setAttribute(yzm, srand),接著調用dispose()方法結束繪畫,最后借助于圖形輸出接口將內存中畫的圖片通過response中的輸出通道向客戶端頁面輸出ServletOutputStream responseOutputStream = response.getOutputStream(),
ImageIO.write(image, JPEG, responseOutputStream)。
跳到注冊成功之后的頁面,點擊點此完善超鏈接到完善信息的(addInformation.jsp)頁面,該頁面中要對出生日期格式和身份證進行驗證,信息完善頁面設計如圖4-2所示。
圖4-2 用戶信息完善圖
通過EL表達式${yxdz}取得注冊的郵箱地址值,將它顯示在信息完善頁面中,是不可以修改的,然后同樣采用上面的請求方式跳轉到增加信息的Servlet,先通過request獲取參數
值,判斷身份證是否有效,定義一個變量flag,flag=0說明身份證號碼正確,然后連接數據
庫,執行Update更新語句String sql=update t_yhxx set nc=+nc+,xm=+xm+,xb=
+xb+,csny=to_date(+csny+,yyyy-mm-dd),zjlx=+zjlx+,zjhm=+zjhm+,jzdz=+jzdz+where yhm=+yhm+。
信息完善之后就可以登錄了,前臺登錄使用submit這個點擊登錄按鈕觸發的事件進行驗證,用ajax的post方法請求后臺checkLogin這個servlet,獲取定義servlet中了兩個變量flag和number,flag設為0,表示用戶名不存在,1表示用戶名存在密碼錯誤,2表示驗證通過3表示驗證碼錯誤,number設為0,0表示用戶名不存在,1表示用戶名存在密碼錯誤,2表示驗證通過,調用checkUser里面的find()方法,執行selcet語句,通過用戶名查詢數據庫中對應的用戶對象,通過驗證獲得num的值,返回到checkLogin,在進行if判斷,得到flag的值。用戶登錄,登陸界面如圖4-3所示。
圖4-3 用戶登陸圖
前臺登錄使用submit這個點擊登錄按鈕觸發的事件,用ajax的post方法請求后臺登陸檢查checkLogin這個servlet,定義servlet中了兩個變量flag和number,String flag=0,int number=0,flag設為0,表示用戶名不存在,1表示用戶名存在密碼錯誤,2表示驗證通過3表示驗證碼錯誤,number設為0,0表示用戶名不存在,1表示用戶名存在密碼錯誤,2表示驗證通過,調用檢查用戶checkUser類里面的find()方法,執行selcet查詢語句,查詢出來的結果以結果集返回,然后遍歷結果集while(rs1.next()){num=2;}通過用戶名查詢數據庫中對應的用戶對象,通過驗證獲得num的值,返回到checkLogin,在進行if判斷,得到flag的值。
number=checkUser.find(yhm, mm);
if(!yzm1.equals(yzm2)){
flag=3;
}else if(yzm1.equals(yzm2) && number==0){
flag=0;
}else if(yzm1.equals(yzm2) && number==1){
flag=1;
}else if(yzm1.equals(yzm2) && number==2){
flag=2;
}
然后創建一個session,把用戶明和密碼放入session中,以備下一個頁面進行提取應用HttpSession session=request.getSession(),session.setAttribute(yhm,yhm),sess
ion.setAttribute(mm,mm)。
4.2.2 商品管理模塊
進入主頁面后,用戶可以根據自己喜好瀏覽頁面上的商品,通過

  • 無序列表實現了頁面上的菜單功能,還可以根據商品名稱進行搜索。商品顯示頁面如圖4-4所示。
    圖4-4 商品顯示圖
    前臺頁面qt_main.jsp中沒有任何數據,是通過qt_main.js中的ajax獲得數據的,$.getJSON(/SNYG/servlet/zYMTuP,null,function(data)跳到主頁面圖片的Servlet中,該類中定義一個map,里面放了四種商品,value是四種商品的list集合。
    Map > map=new HashMap>();
    map.put(rxsp,tup.getRxlist());
    map.put(xpsp,tup.getXplist());
    map.put(lxsp,tup.getLxlist());
    map.put(rysp,tup.getRylist());
    Gson gson=new Gson();//將map以json的格式返回到頁面
    out.print(gson.toJson(map));
    通過ZYMTuPCl類中getRxlist()方法跳轉的對應的熱銷產品的實現類中,再通過sql語句select * from t_spxx where rxzt=1 and rownum<=5查找到商品,然后循環遍歷商品,把商品再放到list中。最后通過ajax循環變量商品信息并將商品輸出到頁面中。
    for(var item in data){
    if(item==rxsp){
    var rxsp=data[item];
    for(var i=0;ivar str= title=+rxsp[i].spmc+:+rxsp[i].spjg+元/>;
    $(#rxsp).append(str);}
    將商品顯示到主頁面后,可以點擊商品通過商品編號顯示商品的具體信息,商品信息如圖4-5所示。
    圖4-5 商品信息圖
    具體商品顯示頁面中的值是在js中取的,先定義一個臨時商品變量tmpspbh,用ajax的get方式請求,當進入頁面是加載ShowSpService這個Servlet,先獲得從商品顯示頁面ShowSp.jsp傳遞過來的商品編號,根據商品編號從后臺商品信息表中查詢到這個商品編號的商品,創建一個商品的對象sp,把遍歷的商品放入這個new的新對像中,先判斷結果集是否為空,如果為空先遍歷結果集rs.next(),再判斷傳遞過來的商品是否為空,不為空的話將tmpspbh和sp進行比較,再把tmpspbh賦值給sp,最后將它以json格式輸出到jsp頁面中。$.get(/SNYG/Servlet/showSpService,{spbh:tmpspbh},function(json){ $(#tplj).attr(src,json.tplj);$(.spms).html(json.spms);$(#hidden_spbh).val(json.spbh);$(#spjg).html(json.spjg);$(#text_spsl).val(1);$(#spks).html(json.Spks)$
    (#spys).html(json.spys);$(#spmc).html(json.spmc);$(#splx).html(json.splx
    );},json)
    4.2.3 購物車管理模塊
    將商品具體信息顯示出來之后就可以將商品加入購物車了,也可以選擇一鍵購買,購物車頁面如圖4-6所示。
    圖4-6 購物車圖
    購物車原理是用session實現的,session里面放了一個list。加入購物車的流程是:先在showSp.js中用val()方法獲取元素的值,定義一個String類型的變量var str =/SNYG/servlet/newAddSpCart?spbh=+spbh+&spsl=+spsl+&spjg=+spjg+&spys=+
    spys;設置它的屬性$(#yjgm).attr(href,str);跳轉到加入購物車的那個Servlet,用request獲取從頁面傳遞過來的參數值,新建一個session,定義一個購物車cart,將其放入session中,將其轉換成ShoopingCart。刪除購物車要調用購物車實體類ShoopingCart里面的remoreSp()方法,若要展示購物車,先判斷購物車是否為空,如果不為空則遍歷返回的list。
    HttpSession session = request.getSession(false);
    //將cart轉換成ShoopingCart類型
    ShoopingCart cart = (ShoopingCart) session.getAttribute(cart);
    if(cart!=null && delete.equals(action)){//刪除購物車
    cart.remoreSp(spbh);
    if(cart.getCartList().size()==0){
    session.removeAttribute(cart);
    }else{
    session.setAttribute(cart, cart);}
    //使用重定向技術跳轉跳到購物車頁面
    response.sendRedirect(/SNYG/huang/ShoopingCart.jsp);
    return;}
    如果在沒有登陸的前提下先瀏覽了商品,然后直接點擊一鍵購買,是不能實現的,一般登陸之后就需要重新挑選商品,本系統中使用了一個action標志,來標記剛瀏覽過的商品,跳到登陸頁面登陸之后會直接跳到剛剛瀏覽到的頁面,不需要重新瀏覽了。var str=/SNYG/huang/BuySp.jsp?spbh=+$(#hidden_spbh).val()+&spsl=+spsl+&spjg=+spjg+&spys=+spys+&action=yjgm; 根據id獲取到一鍵購買,然后對此元素的屬性進行設置$(#yjgm).attr(href,str)。
    4.2.4 訂單管理模塊
    將商品加入購物車之后去結算,提交用戶的一些信息,就可以提交訂單將數據插入到后臺訂單明細表中,之后生成訂單,訂單頁面如果4-7所示。
    圖4-7 訂單查詢圖
    點擊刪選按鈕時,觸發一個click事件,跳轉到訂單查詢的那個servlet,獲取頁面傳遞過來的data2=$(#sp).val()==商品名稱/定單號?:$(#sp).val()值,根據商品名稱或者訂單編號進行精確刪選,首先從session中獲得登錄用戶名,并將其轉換為String類型,
    if(request.getSession()!=null){yhm=(String)request.getSession().getAttribute(yhm);然后判斷它是否存在,調用訂單處理類里面的getIsGLY()方法判斷是否是管理員,int isgly=ddcl.getIsGLY(yhm);然后判斷該用戶名是否是管理員,如果isgly等于0,說明使用戶,則是前臺訂單查詢。然后調用訂單操作實現類里面的ddCxFy()方法,執行sql語句,遍歷結果集,將訂單放到list當中,最后匹配list當中的每一個元素,來執行function函數,判斷該訂單是否已經付款。
    $.each(data.list,function(i,item){
    var ddzt =;
    var cz = ;
    if(item.ddzt==1){
    ddzt=已經付款;
    cz =評價;
    }else if(item.ddzt==0){
    ddzt=等待付款;
    cz =付款;
    }
    4.3 后臺功能的設計與實現
    后臺只有管理員才能登陸,管理員登陸進去之后對系統進行維護,管理員是不能注冊的,只能由默認的admin新增。管理可以進行用戶管理,商品管理和訂單管理[20]。
    4.3.1 管理員登錄模塊
    每一個系統都是有后臺的,是由后臺管理員管理的,通過sql語句進行對后臺數據庫進行增刪改查操作,后臺管理員可以對系統的各個模塊進行管理,后臺管理員登陸頁面如圖4-8所示。
    圖4-8 管理員登陸圖
    后臺登陸使用form表單提交的方式跳轉到登陸控制的那個serverLoginControl類中,,頁面初始化時,調用init()方法,將焦點定位到帳號$(yhm).focus();賬號,密碼都不能為空,驗證原理同前臺是一樣的。
    4.3.2 用戶查詢模塊
    前臺注冊的用戶可以在后臺顯示顯示出來,管理可以對其進行查詢、修改、刪除,查詢可以根據用戶名查詢,查詢用戶頁面如圖4-9所示。
    圖4-9 用戶查詢圖
    點擊用戶查詢超鏈接時通過form表單進行提交,跳轉到queryYH_ByYhmControl這個servlet, ,在servlet中,用List list= queryYHService.QueryYH()獲取用戶對象的list,request.setAttribute(list,list)再將list設置成一個元素,然后跳轉到jsp頁面,request.getRequestDispatcher(/ht_yhgl/QueryYH.jsp),將元素list值返回頁面forward(request,response)。
    調用queryYHService中的QueryYH()查詢方法,連接到后臺數據庫,執行sql語句select t_yhxx.*,t_yh.yhzt from t_yhxx,t_yh where t_yhxx.yhm=t_yh.yhm(+) and t_yh.YHZT=1,獲取所有用戶對象,放入list中,再通過request.setAttribute()方法放入名為list的變量中,通過request轉發跳轉到QueryYH.jsp頁面中,,用JSTL標簽進行用戶list的遍歷。
    4.3.3 商品管理模塊
    要想實現購買必須前臺要有商品才行,通過后臺添加商品,把商品信息插入到后臺數據庫表中,商品添加的頁面如圖4-10所示。
    圖4-10 商品添加圖
    使是用JSTL標簽添加商品,跳轉到addSpglServlet中,從頁面上取到尺碼、款式、商品描述的值,通過addSp()放入商品的對象中。
    scope=request>
    String cm = request.getParameter(cm);
    String ks = request.getParameter(ks);
    String spms = request.getParameter(spms);
    Spxx sp = new Spxx();
    sp.setSpmc(spmc);
    boolean flag = spgl.addSp(sp);
    request.setAttribute(flag, flag);
    request.getRequestDispatcher(/spgl/spxxresult.jsp).forward(request,respon
    se);
    添加成功之后跳轉到querySpglServlet,從數據庫查詢相關商品信息,放入list中進行遍歷。
    商品添加成功之后跳出一個jsp頁面,有兩個超鏈接,點擊查看商品,商品查詢頁面如圖4-11所示。
    圖4-11 商品查詢圖
    點擊查詢按鈕時觸發click事件,先判斷商品編號不為空,調用函數跳轉到商品查詢的servlet,再調用商品信息實現類里面的fingSpxxById()方法,執行sql語句select * from T_SPXX where spzt =1 order by spbh查詢到商品,根據商品狀態和商品編號進行升序查詢,把查詢到的sql以參數返回到結果集中,遍歷結果集,將商品放入一個list中,最后以json的格式返回到頁面。
    $(#cx).click(function(){
    if($(#spbh).val()!=null&&$(#spbh).val()!=){
    $.getJSON(/SNYG/servlet/querySpglSpxxServlet,
    {spbh:$(#spbh).val()},
    function(json){//回調
    $(#datatable).remove(); //將表格移除
    $(#spzj).remove();
    $(body).append(
    ? 商品信息序號商品編號商品名稱商品價格商品數量顏色尺碼款式熱銷狀態新品狀態>流行狀態日用狀態圖片路徑商品類型商品描述操作
    );
    $(#datatable).append(+1++json.spbh++json.spmc++json.spjg++json.spsl++json.spsl++json.cm++json.ks++json.rxzt++json.xpzt++json.lxzt++json.ryzt++json.tplj++json.splx++json.spms+修改??vlet?spbh=+json.spbh+>刪除);
    $(body).append(繼續商品增加);});}
    else{
    alert(商品編號為空,請重新輸入);
    $(#spbh).focus(); }
    4.3.4 訂單管理模塊
    前臺生成訂單之后可以在后臺查詢出來,如果已付款,這里的訂單狀態為1,否則為0,如果刪除訂單,刪除之后訂單狀態改為2,可以根據商品名稱或者訂單編號進行模糊查詢,訂單查詢的頁面如圖4-12所示。
    圖4-12 訂單查詢圖
    進入js觸發篩選的click事件,使用$.getJSON(/SNYG/servlet/dDCX,{data1: data1,data2:data2}跳轉到訂單查詢的servlet,用request獲取從頁面轉遞過來的值,調用訂單操作類里面的ddCxFy()方法執行sql語句,從后臺數據庫表中查詢數據,遍歷結果集,最后把數據以json的格式返回。
    while(rs.next()) {
    DingD dingD=new DingD();
    dingD.setDdbh(rs.getString(ddbm));
    dingD.setSpmc(rs.getString(spmc));
    dingD.setDdzt(rs.getInt(ddzt));
    list.add(dingD);
    }
    第5章 結束語
    本系統前臺主要實現了用戶注冊登錄、根據不同的分類瀏覽商品,將自己看中的商品放進購物車,可以對購物車里面的商品數量進行修改,也可以刪除購物車。后臺主要實現了后臺管理員登陸,商品管理、用戶的管理、訂單管理四大主要功能模塊,可以及時對商品、客戶信息進行查詢修改添加刪除。
    本系統的優點是簡潔明了,運行快捷,人性化的操作流程使管理員能夠快速掌握本后臺管理的操作上手容易,方便使用。運用MVC模式實現了網上購物功能,基本可以滿足廣大上網購物用戶的需求。MVC開發模式中的三層各司其職,其中一層發生變化不會影響其他層,而且有利于責任分工,因此運用此模式開發相關系統可以提高工作效率。采用javabean技術減少了代碼的重用,并且對每個操作后臺系統會做出相應的判斷,防止誤操作的現象發生,保證了后臺數據的安全性,確保了系統的安全性、合理性。另外還做了一些比較人性化的操作,比如用戶未登錄時查看的商品可以在用戶登陸之后會直接顯示出來,而不需要重新瀏覽,在購物車模塊使用了金額大于等于80的時候是免運費的,還對購物的時間進行了設置,如果夜深了會提醒用戶。
    本系統主要缺點是界面不完美,過于簡單了,系統還有一些功能不夠完善。比如用戶信息修改,應該先把用戶的所有信息返回到修改頁面上,然后去需要修改的地方進行修改即可。比如刪除商品是做好有個提示框,提示是否刪除以免刪除錯誤。本系統雖然可以為用戶及管理員提供一定的方便使用,但是由于現階段的條件還不是很成熟,離實際應用還具有一定的差距,功能方面還有一些需要完善的地方,這些都是今后繼續學習的目標,爭取能夠完善已經有的功能,增加新的功能,使本系統的發展更加成熟和完善。
    參考文獻
    [1] 鄔妍. 一個網上購物系統的設計與實現[D]. 華中科技大學, 2009.
    [2] 劉海林. 網上購物系統的設計與實現[D]. 電子科技大學, 2010.
    [3] 奚嘉敏. 基于J2EE的網上購物系統的設計與實現[D]. 復旦大學, 2012.
    [4] 梁元棟. 基于JSP技術的電子商務網站設計與實現[D]. 華南理工大學, 2010.
    [5] 郝赫. 基于MVC模式的電子商城的設計與實現[D]. 吉林大學, 2010.
    [6] 李國娟. 基于JavaEE架構的網上購物系統的設計與實現[D]. 河北工業大學, 2011.
    [7] 林行健. Oracle 10g數據庫管理、應用與開發[M]. 清華大學出版社, 2005.
    [8] 顧春華, 張雪芹, 付歌. Web程序設計[M]. 華東理工大學出版社, 2006.
    [9] 葉佳麗. 中國電子商務發展現狀及其面臨的問題[J]. 商業經濟, 2010.
    [10] 周建儒. JSP中自定義標簽的實現與部署[J]. 科技信息(科學教研), 2008.
    [11] 羅幼平. 基于MVC模式的Web應用程序結構分析[J]. 軟件導刊, 2009.
    [12] 胡雯. 利用JSON實現Ajax中數據傳遞[J]. 科技信息, 2009.
    [13] 周建儒. JSP中自定義標簽的實現與部署[J]. 科技信息(科學教研), 2008.
    [14] 廖彥華,羅小亮. 基于JSP技術的網上購物系統[J]. 電腦知識與技術, 2007.
    [15]徐衛英. 基于JavaScript的驗證表單通用方案的設計與應用[J]. 計算機時代, 2010.
    [16] 熊亮春. PL/SQL在ORACLE數據庫應用程序中的應用[J]. 江西廣播電視大學學報, 2008.
    [17] 史建成,李萍,王君霞,鄭健. JavaBean在JSP開發中的兩個典型運用[J]. 福建電腦, 2008.
    [18] 伍德雁. Tomcat應用系統亂碼問題研究[J]. 電腦知識與技術, 2008.
    [19] Georges-Louis Baron,Eric Bruillard. ICT, educational technology and educational instruments. Will what has worked work again elsewhere in the future?[J] .2007.
    [20] Cassidy A. Information systems strategic planning[J]. Bocaraton.Flrida. St.
    Luicepress, 2008.
    致謝
    畢業設計是我們在大學期間最后的課程,是四年學習的一個總結,也是我們學習成果的具體體現。所以我們做畢業設計必須有一個良好的態度,認真地對待,只有這樣才可以學到更多的專業知識,為將來的工作做好各個方面準備。
    首先要感謝帶我畢業設計的XXXX老師,我學的很多編程方面的知識都是他無私傳授的。在畢業設計中遇到的問題,都能得到老師的悉心指導和幫助,常常在吃飯和下班的時間,老師繼續為我們留在學校指導畢業設計。通過這次畢業設計我不但更深地掌握了軟件工程方面的知識,更為重要地是也學到了做人做事應該所必要的素質,那就是余小軍老師那種治學嚴謹、平易近人、無私奉獻的精神。
    其次要感謝我的同學和同事,感謝他們在畢業設計的過程中給我的幫助。沒有他們的幫助,我也不可能很好地完成本次設計任務。同時感謝從我進入大學以來,學校所有在學習和生活方面對我關心的老師。
    JIANGSU UNIVERSITY OF TECHNOLOGY

    本科畢業設計(論文)
    網站
    前臺
    后臺
    后臺
    搜索商品
    管理員新增
    注冊
    登錄
    購物車
    生成訂單
    用戶管理
    商品管理
    訂單管理
    前臺
    修改資料
    購物車
    訂單查詢
    注冊
    商品瀏覽
    登錄
    管理員新增
    用戶管理
    修改用戶
    用戶查詢
    刪除用戶
    添加商品
    后臺
    商品查詢
    商品管理
    商品修改
    商品刪除
    訂單查詢
    訂單修改
    訂單管理
    訂單刪除
    商品信息
    圖片路徑
    商品數量
    商品價格
    顏色
    新品狀態
    熱銷狀態
    日用狀態
    商品類型
    商品描述
    尺碼
    商品名稱
    商品編號
    流行狀態
    商品狀態
    訂單信息
    訂單狀態
    訂單編碼
    結算金額
    收貨地址
    收貨人
    配送方式
    下單時間
    用戶名
    電話
    手機號碼
    ?

總結

以上是生活随笔為你收集整理的B2C销售网站的设计与实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。