最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【計算機(jī)畢業(yè)設(shè)計】基于JSP的網(wǎng)上購物系統(tǒng)的設(shè)計與實(shí)現(xiàn)

2022-12-04 20:28 作者:ChatGPT云炬學(xué)長  | 我要投稿

分類號:TP315?U?D?C:D10621-408-(2007)5883-0

密 級:公 開?編 號:2003214012

學(xué)位論文

基于JSP的網(wǎng)上購物系統(tǒng)的設(shè)計與實(shí)現(xiàn)

基于JSP的網(wǎng)上購物系統(tǒng)的設(shè)計與實(shí)現(xiàn)

摘 要

近年來,隨著Internet的迅速崛起,互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道并逐步進(jìn)入傳統(tǒng)的流通領(lǐng)域。于是電子商務(wù)開始流行起來,越來越多的商家在網(wǎng)上建起在線商店,向消費(fèi)者展示出一種新穎的購物理念,本購物系統(tǒng)基于B/S模式,實(shí)現(xiàn)了當(dāng)前購物網(wǎng)站的基本功能。

本論文就此購物系統(tǒng)進(jìn)行了詳細(xì)全面的論述。系統(tǒng)中用戶的主要功能有:用戶登錄、注冊、商品瀏覽、商品購買、訂單管理以及個人信息管理。管理員的主要功能有:商品管理、用戶管理以及訂單信息管理。

全文共分為五個部分,第一部分是介紹相關(guān)理論知識;第二部分介紹系統(tǒng)總體設(shè)計;第三部分介紹系統(tǒng)具體實(shí)現(xiàn)過程;第四部分是測試工作。最后是結(jié)論。

關(guān)鍵詞:電子商務(wù);購物系統(tǒng);JSP;數(shù)據(jù)庫

The Design and Realization of shopping Online System Based on JSP

Abstract

In recent years, Internet has become the best channel for collection of information and entered the traditional field of circulation with the rapid rising. E-commerce has been popular, and more and more online stores are established on the Internet, displaying a new idea of shopping. This Shopping system based on B/S mode, realize the base function of the current Shopping site.

This paper introduces the Shopping system in detail. The main functions of people in system include login, registration, view and purchasing of goods, management of the Orders and customers. The main functions of administrator include management of the goods, users and Orders.

There are five sections in this paper, the first is introduction of Related theoretical knowledge; the second is introduction of the design of system; the third is introduction of the process of realization; the forth is test; and the conclusion in the end.

Key words:?E-commerce; Shopping System; JSP; Database

目 錄

論文總頁數(shù):22頁

1.引言11

1.1網(wǎng)上購物系統(tǒng)的發(fā)展11

1.2網(wǎng)上購物的現(xiàn)狀11

1.3網(wǎng)上購物系統(tǒng)的構(gòu)建11

2.相關(guān)理論基礎(chǔ)22

2.1JSP技術(shù)22

2.1.1JSP的簡介22

2.1.2JSP的優(yōu)點(diǎn)22

2.1.3JSP的工作原理22

2.2數(shù)據(jù)庫及相關(guān)技術(shù)簡介33

2.2.1SQL語言簡介33

2.2.2Microsoft SQL Server 簡介33

2.2.3JAVA技術(shù)簡介44

2.2.4TOMCAT簡介44

3.系統(tǒng)總體設(shè)計44

3.1系統(tǒng)設(shè)計44

3.1.1系統(tǒng)功能分析44

3.1.2系統(tǒng)體系結(jié)構(gòu)55

3.1.3系統(tǒng)流程66

3.2數(shù)據(jù)庫設(shè)計66

3.2.1數(shù)據(jù)庫需求分析66

3.2.2數(shù)據(jù)庫的邏輯結(jié)構(gòu)分析77

3.2.3數(shù)據(jù)庫表的設(shè)計77

3.2.4數(shù)據(jù)庫的連接88

4.具體設(shè)計分析99

4.1系統(tǒng)首頁99

4.2具體模塊實(shí)現(xiàn)99

4.2.1商品查看99

4.2.2購物車1111

4.2.3訂單管理1212

4.2.4用戶個人信息管理1313

4.2.5用戶控件1616

4.2.6商品管理1616

4.2.7管理用戶1717

5.系統(tǒng)測試1818

5.1前臺測試1818

5.2后臺測試1919

結(jié) 論2020

參考文獻(xiàn)2020

致 謝2121

聲 明2222

  1. 引言

    1. 網(wǎng)上購物系統(tǒng)的發(fā)展
      近年來,隨著Internet的迅速崛起,互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道并逐步進(jìn)入傳統(tǒng)的流通領(lǐng)域。于是電子商務(wù)開始流行起來,越來越多的商家在網(wǎng)上建起在線商店,向消費(fèi)者展示出一種新穎的購物理念。
      網(wǎng)上訂購系統(tǒng)作為B2B,B2C,C2C電子商務(wù)的前端商務(wù)平臺,在其商務(wù)活動全過程中起著舉足輕重的作用。本文旨在討論如何建設(shè)B2C的網(wǎng)上購物系統(tǒng)。網(wǎng)上購物是一種具有交互功能的商業(yè)信息系統(tǒng)。它向用戶提供靜態(tài)和動態(tài)兩類信息資源。所謂靜態(tài)信息是指那些比經(jīng)常變動或更新的資源,如公司簡介、管理規(guī)范和公司制度等等;動態(tài)信息是指隨時變化的信息,如商品報價,會議安排和培訓(xùn)信息等。網(wǎng)上購物系統(tǒng)具有強(qiáng)大的交互功能,可使商家和用戶方便的傳遞信息,完成電子貿(mào)易或EDI交易。這種全新的交易方式實(shí)現(xiàn)了公司間文檔與資金的無紙化交換。

    2. 網(wǎng)上購物的現(xiàn)狀
      在美、日等信息化程度較高的國家和地區(qū),網(wǎng)絡(luò)商店發(fā)展速度迅猛,美國的世界級超一流的零售商,如沃爾瑪凱瑪特,家庭倉儲、科羅格、J.C培尼等紛紛擠身于網(wǎng)絡(luò)經(jīng)商的行列。調(diào)查表明:美國的家庭已越來越習(xí)慣于在家中從網(wǎng)上購物。
      在我國,網(wǎng)上購物從無到有也不過短短幾年時間。我國第一家網(wǎng)上購物發(fā)生在1996年,燕莎友誼商場首次通過網(wǎng)上商城售出一個景泰藍(lán),雖然貨款的支付不是在網(wǎng)上進(jìn)行的,但這畢竟為我國零售業(yè)奏出了網(wǎng)上購物的先聲。根據(jù)CNNIC的統(tǒng)計結(jié)果,截止2006中國有互聯(lián)網(wǎng)用戶6962萬人,而又有40.7%以上的網(wǎng)民在過去的一年里有過網(wǎng)上購物經(jīng)歷,并且這一數(shù)字還在以17%左右的速度增長,這說明在中國發(fā)展網(wǎng)上購物具有良好的群眾基礎(chǔ),網(wǎng)上購物方式日趨被大家所接受。

    3. 網(wǎng)上購物系統(tǒng)的構(gòu)建
      現(xiàn)在流行的網(wǎng)上購物系統(tǒng)不僅要有漂亮的網(wǎng)頁,更要有嚴(yán)謹(jǐn)?shù)囊?guī)劃。每一個細(xì)小的環(huán)節(jié)都很重要。這樣才能使得在電子交易時避免不必要錯誤發(fā)生。我將使用HTML、JSP等技術(shù)來編輯網(wǎng)頁,傳統(tǒng)的管理信息系統(tǒng)的信息獲取方法是由專業(yè)文字錄入人員將信息輸入到管理系統(tǒng)的數(shù)據(jù)庫中,這種方法在數(shù)據(jù)量不大時有很多的應(yīng)用場合。當(dāng)數(shù)據(jù)量比較大,并且有較強(qiáng)的專業(yè)性時,錄入的費(fèi)用和出錯的可能性都相應(yīng)上升。本系統(tǒng)通過運(yùn)用JSP技術(shù)把數(shù)據(jù)庫和動態(tài)網(wǎng)頁連接,得出錯和成本都相應(yīng)的降低。
      本文在實(shí)際應(yīng)用開發(fā)中解決方案是建立網(wǎng)站, 以及自己的數(shù)據(jù)庫,使得所需商品信息可以及時的保存、更新,以更好的及時了解商品買賣的情況。


  1. 相關(guān)理論基礎(chǔ)

    1. JSP技術(shù)
      JSP的簡介
      JSP是JAVA SERVER PAGES的縮寫,由SUN公司倡導(dǎo),于1999年推出,正日益成為開發(fā)WEB動態(tài)網(wǎng)站的重要而快速有效的開發(fā)技術(shù)。
      JSP充分利用了JAVA技術(shù)的優(yōu)勢,具有極強(qiáng)的擴(kuò)展能力和良好的收縮性,與開發(fā)平臺無關(guān),這源于JAVA的“一次編寫,到處運(yùn)行”的特點(diǎn),同時也是一項(xiàng)安全的技術(shù)。它具有良好的動態(tài)頁面與靜態(tài)頁面分離的能力,編譯后運(yùn)行,因而正逐漸成為internet開發(fā)的主流技術(shù)。
      JSP的優(yōu)點(diǎn)
      (1)對于用戶界面的更新,其實(shí)就是由Web Server進(jìn)行的,所以給人的感覺更新很快。
      (2)所有的應(yīng)用都是基于服務(wù)器的,所以它們可以時刻保持最新版本。
      (3)客戶端的接口不是很繁瑣,對于各種應(yīng)用易于部署、維護(hù)和修改。
      JSP的工作原理
      在一個JSP文件第一次被請求時,JSP引擎把該JSP文件轉(zhuǎn)換成為一個servlet。而這個引擎本身也是一個servlet,在JSWDK或WEBLOGIC中,它就是JspServlet。 JSP引擎先把該JSP文件轉(zhuǎn)換成一個Java源文件,在轉(zhuǎn)換時如果發(fā)現(xiàn)jsp文件有任何語法錯誤,轉(zhuǎn)換過程將中斷,并向服務(wù)端和客戶端輸出出錯信息;如果轉(zhuǎn)換成功, JSP引擎用javac把該Java源文件編譯成相應(yīng)的class文件。然后創(chuàng)建一個該SERVLET的實(shí)例,該SERVLET的jspInit()方法被執(zhí)行,jspInit()方法在servlet的生命周期中只被執(zhí)行一次。然后jspService()方法被調(diào)用來處理客戶端的請求。對每一個請求,JSP引擎創(chuàng)建一個新的線程來處理該請求。如果有servlet從內(nèi)存中移去。當(dāng)這種情況發(fā)生時jspDestroy()方法首先被調(diào)用, 然后servlet實(shí)例便被標(biāo)記加入"垃圾收集"處理。 jspInit()及j多個客戶端同時請求該JSP文件,則JSP引擎會創(chuàng)建多個線程。每個客戶端請求對應(yīng)一個線程。以多線程方式執(zhí)行可大大降低對系統(tǒng)的資源需求,提高系統(tǒng)的并發(fā)量及響應(yīng)時間.但應(yīng)該注意多線程的編程限制,由于該servlet始終駐于內(nèi)存,所以響應(yīng)是非??斓摹?如果.jsp文件被修改了,服務(wù)器將根據(jù)設(shè)置決定是否對該文件重新編譯,如果需要重新編譯,則將編譯結(jié)果取代內(nèi)存中的servlet,并繼續(xù)上述處理過程。 雖然JSP效率很高,但在第一次調(diào)用時由于需要轉(zhuǎn)換和編譯而有一些輕微的延遲。 此外,如果在任何時候如果由于系統(tǒng)資源不足的原因,JSP引擎將以某種不確定的方式將spDestory()格式如下:可在jspInit()中進(jìn)行一些初始化工作,如建立與數(shù)據(jù)庫的連接,或建立網(wǎng)絡(luò)連接,從配置文件中取一些參數(shù)等,在jspDestory()中釋放相應(yīng)的資源。

    2. 數(shù)據(jù)庫及相關(guān)技術(shù)簡介
      SQL語言簡介
      SQL是英文Structured Query Language的縮寫,意思為結(jié)構(gòu)化查詢語言。
      SQL語言的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進(jìn)行溝通。按照ANSI(美國國家標(biāo)準(zhǔn)協(xié)會)的規(guī)定,SQL被作為關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言。SQL語句可以用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫中的數(shù)據(jù),從數(shù)據(jù)庫中提取數(shù)據(jù)等。
      目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),如Oracle、 Sybase、 Microsoft SQL Server、 Access等都采用了SQL語言標(biāo)準(zhǔn)。雖然很多數(shù)據(jù)庫都對SQL語句進(jìn)行了再開發(fā)和擴(kuò)展,但是包括Select、 Insert、 Update、 Delete、 Create 以及Drop在內(nèi)的標(biāo)準(zhǔn)的SQL命令仍然可以被用來完成幾乎所有的數(shù)據(jù)庫操作。
      在眾多的SQL命令中,select語句應(yīng)該算是使用最頻繁的。select語句主要被用來對數(shù)據(jù)庫進(jìn)行查詢并返回符合用戶查詢標(biāo)準(zhǔn)的結(jié)果數(shù)據(jù)。select語句中位于select關(guān)鍵詞之后的列名用來決定哪些列將作為查詢結(jié)果返回。用戶可以按照自己的需要選擇任意列,還可以使用通配符“*”來設(shè)定返回表格中的所有列。select語句中位于from關(guān)鍵詞之后的表格名稱用來決定將要進(jìn)行查詢操作的目標(biāo)表格。
      除了上面所提到的運(yùn)算符外,LIKE運(yùn)算符在where條件從句中也非常重要。LIKE運(yùn)算符的功能非常強(qiáng)大,通過使用LIKE運(yùn)算符可以設(shè)定只選擇與用戶規(guī)定格式相同的記錄。
      Microsoft SQL Server 簡介
      SQL Server 2000 是建立在SQL Server 7.0 在可伸縮性、可用性、可管理性和數(shù)據(jù)倉庫成功的基礎(chǔ)上,并且引入了針對電子商務(wù)的重要新功能。
      在高性能和企業(yè)級可伸縮性領(lǐng)域,SQL Server 2000 設(shè)計成利用Windows2000 對更多處理器、更大的系統(tǒng)內(nèi)存的支持,最終達(dá)到支持64 位硬件平臺。
      在不斷提升可用性的努力過程中,SQL Server 2000 采用Windows 2000 四路群集,提供了大大改進(jìn)的群集支持。SQL Server 7.0 已經(jīng)在可管理性和易用性方面在行業(yè)內(nèi)領(lǐng)先,SQL Server 2000 通過與Windows 2000 活動目錄緊密結(jié)合進(jìn)一步改進(jìn)了這些功能。而且,SQL Server 2000 還包含對現(xiàn)有管理工具和實(shí)用程序的重大改進(jìn),并引入更具自我調(diào)節(jié)和自我管理的引擎功能。
      SQL Server 2000 按照設(shè)計可以為部署和維護(hù)強(qiáng)大的、易于管理、支持商務(wù)活動的Web 站點(diǎn)提供最好的性能,這些站點(diǎn)可以從事商家和商家之間或商家與客戶之間的交易。在尋求一個支持您的電子商務(wù)解決方案的數(shù)據(jù)庫時,需要考慮的項(xiàng)目包括:可用性、性能、可管理性和價格。
      JAVA技術(shù)簡介
      JSP程序開發(fā)就離不開JAVA語言,這里簡單介紹下JAVA語言的特點(diǎn):
      Java是一種跨平臺,適合于分布式計算環(huán)境的面向?qū)ο缶幊陶Z言。具體來說,它具有如下特性:
      (1)簡單性、面向?qū)ο蟆?br>(2)分布式、解釋型。
      (3)可靠、安全、平臺無關(guān)。
      (4)可移植、高性能、多線程、動態(tài)性等。
      TOMCAT簡介
      Tomcat是一個免費(fèi)的開源的Serlvet容器,它是Apache基金會的Jakarta項(xiàng)目中的一個核心項(xiàng)目,由Apache,Sun和其它一些公司及個人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和Jsp規(guī)范總能在Tomcat中得到體現(xiàn)。由于Java的跨平臺特性,基于Java的Tomcat也具有跨平臺性。
      本系統(tǒng)采用tomcat作為服務(wù)器,在tomcat5.0環(huán)境下對系統(tǒng)進(jìn)行測試。


  1. 系統(tǒng)總體設(shè)計

    1. 系統(tǒng)設(shè)計

      1. 系統(tǒng)功能分析
        一個典型的B2C電子商務(wù)網(wǎng)上訂購系統(tǒng)主要功能有:
        (1)為客戶提供24小時方便快捷的在線訂購服務(wù)。
        (2)商品信息的維護(hù)與管理,包括價格的調(diào)整、現(xiàn)有商品信息的修改、新商品信息的加入、過時商品信息的刪除等。
        (3)高效的商品數(shù)據(jù)方案,對商品信息進(jìn)行科學(xué)、靈活地分類、存儲,方便客戶迅速從少則幾萬,多則幾十萬甚至上百萬種商品中找出自己所需商品。
        (4)強(qiáng)大、方便、快捷的查詢功能。提供關(guān)鍵字查詢(如:查找所有商品)。
        (5)訂單號模塊所謂訂單號模塊,就是客戶購買完商品后,系統(tǒng)自動分配一個購物號碼給客戶,以方便客戶隨時查詢賬單處理情況。了解現(xiàn)在貨物的狀態(tài)。
        (6)訂單管理。為分銷商的EPR系統(tǒng)提供數(shù)據(jù)接口。管理員可以查看歷史記錄、訂單狀態(tài),并且能夠在最短的時間內(nèi)通知用戶。

      2. 系統(tǒng)體系結(jié)構(gòu)


圖3-1系統(tǒng)功能模塊圖
根據(jù)體系結(jié)構(gòu)可將系統(tǒng)分為用戶和管理兩個角色:
(1)用戶:用戶通過注冊以后成為合法登錄用戶。登錄以后可以查看修改個人信息在線購買商品查看定單狀態(tài)。
(2)管理員:系統(tǒng)管理員可以管理整個系統(tǒng),包括查看用戶定單并修改相應(yīng)信息查看用戶信息,對不信任用戶也可以對他進(jìn)行刪除。查看商品信息,可以刪除不需要的商品。添加商品信息。

  1. 系統(tǒng)流程
    圖3-2系統(tǒng)流程圖


  1. 數(shù)據(jù)庫設(shè)計

    1. 數(shù)據(jù)庫需求分析
      (1)商品數(shù)據(jù)的準(zhǔn)備。首先要搜集分銷商的所有商品數(shù)據(jù)。這些商品數(shù)據(jù)可以分為三類:紙面記錄、電子數(shù)據(jù)(XML、Access、Excel等文件)、網(wǎng)上數(shù)據(jù)。無論對于哪一種數(shù)據(jù),都要對其進(jìn)行檢查,修正有問題的數(shù)據(jù),刪除重復(fù)和過期的記錄。在檢查的同時,還要對這些數(shù)據(jù)進(jìn)行分析,為制定商品目錄方案做準(zhǔn)備。
      (2)商品數(shù)據(jù)方案的制定。商品數(shù)據(jù)方案制定的目的在于:
      ①對商品進(jìn)行科學(xué)、靈活地分類,方便客戶迅速從少則幾萬,多則幾十萬甚至上百萬種商品中找出所需商品。
      ②使系統(tǒng)支持強(qiáng)大、方便、快捷的查詢功能,實(shí)現(xiàn)模糊查詢和智能查詢。
      ③高效的商品數(shù)據(jù)方案能提高數(shù)據(jù)庫性能,提高網(wǎng)頁瀏覽速度。
      (3)客戶信息表的制定。客戶信息表內(nèi)保存著在線商店中所有客戶個人所擁有的個人信息和資料,是在線商店的后臺管理人員進(jìn)行商品銷售的設(shè)計規(guī)劃和進(jìn)行決策的依據(jù)和參考??蛻鬒D則是客戶個人身份證明的依據(jù)。

    2. 數(shù)據(jù)庫的邏輯結(jié)構(gòu)分析
      對于系統(tǒng)用戶信息數(shù)據(jù)庫,有以下數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):
      用戶信息:用戶ID(自動編號)、用戶姓名、電話號碼、Email、地址、郵編。
      對于系統(tǒng)的商品信息系統(tǒng),有以下數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):
      商品記錄信息:商品的ID(自動編號)、商品名稱、商品單價、商品數(shù)量、商品所屬類別。
      而網(wǎng)上購物系統(tǒng)就是基于以上各個數(shù)據(jù)庫的連接和綜合,把各個獨(dú)立的數(shù)據(jù)庫通過內(nèi)在的關(guān)聯(lián)性統(tǒng)一到一個主頁面里,從而方便客戶的訪問和購買,實(shí)現(xiàn)了一對一的交互。
      用戶在購買商品前可以先看看商品目錄,看看有沒自己需要的商品,在商品的目錄里有各個商品的具體的介紹,比如說商品的名稱,數(shù)量,價格等,用戶在看好自己的商品后,在商品的搜索中,你可以選擇你所需的商品,用戶在選擇自己的商品時,系統(tǒng)則連接到后臺關(guān)于此商品信息的數(shù)據(jù)庫中,找到適合客戶需求的信息。
      客戶將選購的商品放入系統(tǒng)所提供的購物籃里,此時顧客可以繼續(xù)選購另外的商品,或者刪除原先購買的商品,并可對商品進(jìn)行名稱和數(shù)量上的修改和添加。點(diǎn)擊“繼續(xù)購買”,重復(fù)以上進(jìn)行的購買活動。直到顧客滿意。購物結(jié)束后,進(jìn)行提交,點(diǎn)擊“提交”,完成購物。

    3. 數(shù)據(jù)庫表的設(shè)計
      分別建立以下的表以滿足需要:
      本系統(tǒng)需要建立4個數(shù)據(jù)表,他們分別是:
      管理員表(my_goodsadminuser):存放管理員用戶名,管理員密碼信息。
      用戶表(my_users):存放用戶編號,用戶名,用戶密碼,真實(shí)姓名,性別,電話,email等信息。
      商品信息表(my_goods):存放商品編號,商品名,銷售員,類別,提供商,價格以及數(shù)量等信息。
      定單表(my_indentlist):存放定單編號,用戶,總價,是否付款,是否發(fā)貨,用戶備注等信息。
      各表具體信息見下圖:
      表3-1 my_goodsadminuser表中字段

字段名數(shù)據(jù)類型字段描述adminuser文本管理員用戶名adminpass文本管理員密碼

表3-2 my_users表中字段

字段名數(shù)據(jù)類型字段描述id數(shù)字用戶主鍵username文本用戶名passwd文本用戶密碼Names文本真實(shí)姓名Sex文本性別Address文本地址Phone文本電話Post文本郵編Email文本Email地址

表3-3 my_goods表中字段

字段名數(shù)據(jù)類型字段描述ID數(shù)字商品編號Goodsname文本名稱Goodsclass數(shù)字類別Seller數(shù)字銷售員Provider文本提供商Price數(shù)字價格Amount文本數(shù)量Content文本說明

表3-4 my_indentlist表中字段

字段名數(shù)據(jù)類型字段描述ID數(shù)字組IDusername文本商品購買用戶Price文本定單價格ispayoff文本是否付款issales文本是否發(fā)貨content文本備注

  1. 數(shù)據(jù)庫的連接
    在本系統(tǒng)中,系統(tǒng)會頻繁的訪問數(shù)據(jù)庫。本系統(tǒng)采用JSP的JDBC-ODBC驅(qū)動程序。數(shù)據(jù)庫的連接代碼是通用的。代碼如下:
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    String url="jdbc:microsoft:sqlserver://localhost:1433;
    DatabaseName=biye";
    String strUser = "sa";
    String strPassword = "417929";
    Connection con = DriverManager.getConnection(url, strUser, strPassword);
    Statement st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    ………



  1. 具體設(shè)計分析

    1. 系統(tǒng)首頁


圖4-1 網(wǎng)上購物系統(tǒng)首頁
此功能模塊由index1.jsp來實(shí)現(xiàn),并提供了本系統(tǒng)絕大多數(shù)功能的入口,例如:會員注冊、登錄,管理員登錄,查詢等。
會員登錄主要是將用戶輸入的用戶名和密碼與數(shù)據(jù)庫中my_users表中的已有的信息進(jìn)行比對,如果完全一樣,則是合法用戶,可以成功登錄,如果不一樣,則登錄失敗。
查詢功能是通過輸入商品名稱關(guān)鍵字和下拉菜單中商品類別進(jìn)行查詢提交查詢信息以后由find.Jsp顯示查詢結(jié)果。此功能未注冊用戶也可用,但是所查詢商品不提供購買功能。

  1. 具體模塊實(shí)現(xiàn)

    1. 商品查看
      此功能模塊由buy.jsp來實(shí)現(xiàn)。
      當(dāng)用戶進(jìn)入購物中心以后,系統(tǒng)會顯示所有的商品基本信息。但在商品數(shù)量過于龐大以后則不容易查看所需商品,所以系統(tǒng)提供了按類別查詢的功能。下拉菜單中有商品的所有類別,用戶根據(jù)類別以post方法傳遞表單。再在該頁設(shè)置接收字段:
      String bookclass=codeToString(request.getParameter("bookclass"));
      通過關(guān)鍵字bookclass對數(shù)據(jù)庫商品表my_goods進(jìn)行查詢:
      SELECT * FROM my_goods where goodsclass='"+bookclass.trim()+"'
      這樣就比較清楚的可以獲得各類別的商品的信息。有了自己需要購物的商品,則可以通過點(diǎn)擊購買將商品添加到購物車,詳細(xì)信息可以查看商品的詳細(xì)信息。
      詳細(xì)信息頁面xiangxi.jsp通過商品ID查詢數(shù)據(jù)庫,除了顯示以上信息以外,還顯示商品數(shù)量,備注等信息。

界面如下圖:
圖4-2 商品信息
為了不讓龐大的數(shù)據(jù)讓人看得眼花繚亂,在商品的實(shí)現(xiàn)時是分頁顯示,每頁顯示5項(xiàng)記錄。分頁代碼如下:
int dipage=1;//當(dāng)前頁碼數(shù)默認(rèn)為1
String pages=request.getParameter("dipage");
if(pages==null)
{
pages="1";
…………
int countRecord=0;//記錄條數(shù)
int countPageRecord=0;//每頁記錄條數(shù)
int countPage=0;//總頁數(shù)
countPageRecord=5;//每頁5條記錄,要設(shè)置每頁記錄條數(shù)就更改這個變量的值
…………
countRecord=rs.getRow();//得到總頁數(shù)
if(countRecord/countPageRecord==0)
countPage=countRecord/countPageRecord;
else
countPage=countRecord/countPageRecord+1;//把記錄指針移至當(dāng)前頁第一條記錄之前
if((dipage-1)*countPageRecord==0)
rs.beforeFirst();
…………

  1. 購物車
    此功能模塊由:
    buybook2.Jsp,addgoods.Jsp,minusGoods.Jsp,deleteGoods,buy.java來實(shí)現(xiàn)。
    當(dāng)用戶選定某樣商品并在登錄后的情況下,可以點(diǎn)擊購買將商品添加到購物車。在購物車中可以設(shè)置購買商品的數(shù)量。設(shè)置好數(shù)量以后按提交按鈕根據(jù)商品唯一ID將商品添加到購物車。在addgoods.jsp中通過獲取商品ID:
    String id=request.getParameter("id");
    Int Goods_Count=Integer.parseInt(request.getParameter("book_count"))
    以及buycar.Java中的函數(shù)
    public void addGoods(String Goods_id,int Goods_Count)來實(shí)現(xiàn)。 提交購物以后,可以選擇查看購物車,也可以無限制的選擇繼續(xù)購買。選擇繼續(xù)購買以后跳轉(zhuǎn)到商品購買頁面buy.Jsp選擇查看購物車則跳轉(zhuǎn)到buybook2.Jsp。在跳轉(zhuǎn)到buybook2.Jsp頁面以后,如果用戶不滿意該選擇可以刪除或者更改所選商品數(shù)量,更改商品數(shù)量是通過buycar.Java和minusGoods.Jsp一起來實(shí)現(xiàn)。
    關(guān)鍵代碼:
    buycar.Java:
    public boolean minusGoods(String Goods_id,int Goods_Count)
    {……
    deleteGoods(Goods_id);
    ……}
    minusgoods.Jsp:
    intGoods_Count=Integer.parseInt(request.getParameter("book_count"))
    buycar.minusGoods(id,Goods_Count);

用戶在確定需要購買以后,就可以提交購物車,完成購物功能。
圖4-4 購物車
購物車中商品總價格totalprice是通過商品單價和數(shù)量進(jìn)行結(jié)算。代碼如下:
double totalprice=0;
totalprice=totalprice+rs.getFloat("price")*((Integer)list.get(goods)).intValue();

  1. 訂單管理
    本模塊劃分為2個部分,一是用戶對定單的管理,二是管理員對定單的管理。用戶對定單的管理通過userjiemian.Jsp實(shí)現(xiàn)查看自己的定單狀態(tài)是否付款以及刪除自己的定單。查看自己的定單是通過用戶名訪問定單表以獲取自身定單,刪除定單是通過定單ID刪除掉選定的定單:
    a href='delcord.jsp?id="+rs.getString("indentno")+"'
    用戶也可以通過查詢指定的定單ID來查詢想要知道的定單的信息。通過sqlString="delete from my_indentlist where id="+ID;
    語句刪除以前的定單。
    管理員管理定單除了擁有用戶管理定單的功能以外,還可以通過定單ID更新定單的狀態(tài),修改定單的付款狀態(tài)以及發(fā)貨狀態(tài)。修改定單頁面change.jsp.
    通過獲取定單ID,用update

語句更新定單信息。定單管理界面如下圖:
圖4-5查看當(dāng)前訂單
定單查詢代碼如下:
SELECT * FROM my_indentlist where username='"+username+"'

  1. 用戶個人信息管理
    此功能模塊由reg.Jsp,log.Jsp,changemima.Jsp,psxinxi.jsp來實(shí)現(xiàn)。分別別實(shí)現(xiàn)用戶的注冊以及密碼的修改。Psxinxi查看自己的基本注冊情況。
    如下圖:
    圖4-6查看

用戶自己基本情況
用戶點(diǎn)擊“個人信息”以后系統(tǒng)就會查詢數(shù)據(jù)庫my_users表顯示當(dāng)前用戶信息。由于整個用戶頁面都用session變量控制訪問權(quán)限,所以在進(jìn)行查詢的時候就根據(jù)seesion變量中的username對數(shù)據(jù)庫進(jìn)行查詢,查詢代碼如下:
rs=sql.executeQuery("SELECT * FROM my_users where username like '%"+username.trim()+"%'");
reg.Jsp用來注冊用戶的基本信息,包括用戶名,用戶密碼,性別,電話,地址,郵編,Email等基本信息。為了系統(tǒng)用戶名和密碼等的合法化,系統(tǒng)通過function on_submit()函數(shù)來控制輸入,如果為空則提示用戶名為空返回重新輸入。示例代碼如下:
if (form1.username.value==""){
alert("用戶名不能為空");
………
}
同時為了保證輸入合法化如Email這樣的信息,系統(tǒng)通過判斷語句來確定輸入是否合法,示例代碼:
if(form1.email.value.length!=0)
{ for(i=0;i<form1.email.value.length;i++)
if(form1.email.value.charAt(i)=="@")
break;
if(i==form1.email.value.length)
{ alert("非法EMAIL地址");
………
}
}
在通過基本信息輸入以后,系統(tǒng)將信息傳遞給log.Jsp進(jìn)行處理,log.Jsp首先用字符串接收函數(shù):
String username=codeToString(request.getParameter("username"));
來接收reg.Jsp提交的信息。然后通過數(shù)據(jù)庫執(zhí)行SQL語句insert將數(shù)據(jù)寫入數(shù)據(jù)庫中,如果注冊成功則跳轉(zhuǎn)到首頁,如果注冊不成功,則通過:
out.print("注冊不成功,請檢查必添項(xiàng)目");
提示輸入不成功。
changemima.Jsp用來修改用戶的密碼信息,用戶在登錄以后點(diǎn)擊修改密碼的鏈接可以對密碼進(jìn)行修改。在輸入兩次密碼時需要用到兩次輸入密碼正確與否的判斷:
if (form1.passwd.value!=form1.passconfirm.value){
alert("確認(rèn)密碼不相符!");
判斷合法以后,就可以訪問數(shù)據(jù)庫通過update語句來更新用戶密碼信息。

圖4-7 用戶注冊信息

  1. 用戶控件
    此功能通過<%@ include file="end.htm"%>來實(shí)現(xiàn),避免簡單代碼的重復(fù)編寫,也達(dá)到美觀實(shí)用的效果。

  2. 商品管理
    此功能是通過booklist.Jsp和addbook.JsP,addbooklog.Jsp,delcord.jsp來實(shí)現(xiàn)
    addbook.Jsp主要是用來添加商品的信息,包括商品名稱,銷售員,廠商,編號,價格,數(shù)量等信息。在下拉菜單中可以選取商品的類別進(jìn)行分類添加。寫好添加的商品信息以后將表單數(shù)據(jù)傳遞給addbook.Jsp對數(shù)據(jù)進(jìn)行處理,通過addbooklog.Jsp的insrt語句將表單數(shù)據(jù)寫入數(shù)據(jù)庫。具體代碼如下:
    String bookname=codeToString(request.getParameter("bookname"));
    if(bookname==null)
    bookname="";
    ………
    String sqlstring=null;
    sqlstring="insert into my_goods(goodsname,goodsclass,seller,provider,goodsno,content,price,amount)"+" values ('"+bookname+"','"+bookclass+"','"+author+"','"+publish+"','"+bookno+"','"+content+"','"+price+"','"+amount+"')";
    ………//數(shù)據(jù)庫連接代碼
    st.executeUpdate(sqlstring);
    完成操作以后如果操作成功則跳轉(zhuǎn)到管理員主界面,此時可以通過查看商品信息來查看剛才添加的商品,如果操作失敗則會跳轉(zhuǎn)到ERROR。HTM頁面提示操作失敗,可以返回添加頁面重新對商品進(jìn)行添加。
    booklist.Jsp主要是查看所有商品的信息,以及刪除商品。在點(diǎn)擊刪除按鈕以后,系統(tǒng)將商品唯一ID傳遞給delcord.Jsp。delcord.Jsp通過
    getParameter("id")
    接收ID以后,根據(jù)ID在數(shù)據(jù)庫中用delelte語句刪除該記錄。操作起來十分方便和快捷。具體刪除代碼:
    id=Long.parseLong(request.getParameter("id"));
    ………
    sqlString="delete from my_goods where id="+id;
    ………//數(shù)據(jù)庫連接
    執(zhí)行刪除語句
    sql.executeUpdate(sqlString);

商品添加頁面如下圖:
圖4-8 添加商品

  1. 管理用戶
    此功能模塊由userlist.Jsp,delusercord.Jsp來實(shí)現(xiàn)。
    userlist.Jsp用來查詢所有用戶的信息,同樣用分頁顯示的方式將信息顯示出來,如果有需要刪除的用戶,則通過傳遞用戶ID到delusercord.Jsp。delusercord.Jsp在接收到用戶ID以后,通過訪問數(shù)據(jù)庫運(yùn)用delete語句刪除選定用戶記錄。具體刪除語句如下:
    <%//接收要刪除的用戶ID號
    long id;
    try
    {
    id=Long.parseLong(request.getParameter("id"));
    ……
    if(id!=0)//接收到的參數(shù)正確
    {
    sqlString="delete from my_users where id="+id;
    ……
    sql.executeUpdate(sqlString);
    con.close();
    ………
    刪除成功以后跳轉(zhuǎn)到userlist.Jsp頁面重新查詢所有用戶。如果刪除失敗則通過:
    out.print("刪除失敗");

提示刪除失敗。
圖4-9 用戶管理



  1. 系統(tǒng)測試

    1. 前臺測試
      完成了系統(tǒng)主要模塊的開發(fā)后,系統(tǒng)需要進(jìn)行必要的運(yùn)行測試,以檢驗(yàn)系統(tǒng)的正確性,以下將按照用戶購買商品的流程和管理員對主要信息的管理來測試系統(tǒng)。
      首先來到前臺用戶的登陸界面,先注冊一個用戶名為wang 的新用戶,填寫相關(guān)資料后,點(diǎn)擊確定后,注冊成功跳轉(zhuǎn)到主頁面,在測試中發(fā)現(xiàn)不同用戶可以注冊相同的ID,顯然這在實(shí)際應(yīng)用中是不現(xiàn)實(shí)的,后來在代碼中添加查詢比較代碼,通過比較注冊用戶名和數(shù)據(jù)庫中的用戶名來判斷該用戶名是否有效來解決這個問題。
      注冊成功以后回到主頁登錄,進(jìn)入用戶界面。點(diǎn)擊商品查詢以及購物等頁面基本正常,但是在測試過程中發(fā)現(xiàn)了非常嚴(yán)重的問題,有的頁面本來應(yīng)該在登錄以后才能訪問,比如查看自己定單以及購買商品等注冊登錄用戶的頁面。而在不用登錄直接在IP地址欄輸入地址也可直接訪問。這顯然是不現(xiàn)實(shí)的。于是運(yùn)用控制變量session來解決了這個問題,添加如下代碼:
      登錄頁面添加的代碼:
      session.setAttribute("username",codeToString(username));
      訪問控制頁面添加的代碼:
      String username = (String)session.getAttribute("username");
      if ( username == null || username.equals("") ){
      response.sendRedirect("error.htm");
      以此來解決訪問控制的問題,添加代碼以后如果直接輸入地址則會跳轉(zhuǎn)到error.Htm頁面提示沒有登錄,要求返回登錄頁面登錄以后訪問。

    2. 后臺測試


當(dāng)點(diǎn)擊管理員登錄按鈕時,就來到管理員管理登陸頁面,當(dāng)我們不輸入用戶名而直接點(diǎn)擊提交時,系統(tǒng)會提示請輸入用戶名錯誤。這個在前臺用戶登陸中也同樣設(shè)置了相應(yīng)的驗(yàn)證。輸入正確的用戶名和密碼后,便可以進(jìn)入系統(tǒng)可以進(jìn)行管理了,首先我們測試添加新商品,正確填入商品信息并提交后,系統(tǒng)會提示添加成功,通過打商品查看的頁面可以查看到,因此證明添加成功。

對商品的刪除更為簡便,只要在選擇商品類別和商品型號后,只要點(diǎn)擊“刪除”就能夠成功實(shí)現(xiàn)操作。對于用戶管理,管理員查看當(dāng)前所有用戶的相關(guān)信息,并且能夠刪除帶有不良企圖的非法注冊用戶的ID,操作起來簡便、快捷。在測試的過程中同樣發(fā)現(xiàn)和用戶模塊相同的致命性錯誤,就是可以直接通過地址欄而不需要驗(yàn)證就可以具備管理員權(quán)限。這是一個相當(dāng)大的漏洞。最后也通過session變量得以解決這個問題。

結(jié) 論

通過這三個月的學(xué)習(xí)和工作,完成了網(wǎng)上購物系統(tǒng)的設(shè)計,滿足了用戶需求。由于設(shè)計是基于B/S模式,該系統(tǒng)具有良好的可移植性等優(yōu)點(diǎn),并且具有相當(dāng)不錯的應(yīng)用前景。同時由于該系統(tǒng)使用JavaScript和JSP技術(shù),使我對該門技術(shù)又有了更加深入的了解,并且對應(yīng)用Dreamweaver制作靜態(tài)頁面也有了相當(dāng)?shù)男牡谩T谕瓿稍O(shè)計的三個月時間里,我從一個JSP的門外漢到最終完成自己的作品,這段時間里自身知識的豐富和開發(fā)技能的提高是顯而易見的,通過該設(shè)計的制作,同樣使我涉及了很多其他的相關(guān)專業(yè)知識,增長了知識的沉淀。當(dāng)然,這段歷程對任何一個初學(xué)者來說都是充滿艱難的,其間我都記不得遇到多少次這樣那樣的問題,但是通過老師和其它好心人的指點(diǎn)最終還是順利完成了作品,還積累了很多開發(fā)過程中寶貴的經(jīng)驗(yàn),對以后的學(xué)習(xí)和提高都是很有幫助的。由于水平及時間有限,很多可以實(shí)現(xiàn)的功能都未完成,不過相信通過不斷的學(xué)習(xí)和提高,在這一方面將會更上一層樓。

參考文獻(xiàn)

[1] 劉中兵, 李伯華.JSP數(shù)據(jù)庫項(xiàng)目案例導(dǎo)航[M]北京:清華大學(xué)出版社,2006。

[2] 鄧子云,張賜.JSP網(wǎng)絡(luò)編程從基礎(chǔ)到實(shí)踐[M]北京:電子工業(yè)出版社,2006。

[3] 方睿.網(wǎng)絡(luò)數(shù)據(jù)庫的原理及應(yīng)用[M]. 成都:四川大學(xué)出版社,2002。

[4] 朱仲杰.JAVA2全方位學(xué)習(xí)[M].北京:機(jī)械工業(yè)出版社,2006。

[5] 楊思申,劉思源.Dreamweare3.0入門與提高[M]. 北京:清華大學(xué)出版社,2000。

[6](美)Jennifer Niederst Robbins. WEB設(shè)計技術(shù)手冊[M]. 濟(jì)南:東南大學(xué)出版社,2006。

[7] 馬月. 網(wǎng)站界面設(shè)計[M]. 北京:北京理工大學(xué)出版社,2006。

致 謝

本文是在李梅老師和閆麗麗老師的熱情關(guān)心和指導(dǎo)下完成的,他淵博的知識和嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng)使我受益匪淺,對順利完成本課題起到了極大的作用。在此向他表示我最衷心的感謝!

在論文完成過程中,本人還得到了其他老師和許多同學(xué)的熱心幫助,本人向他們表示深深的謝意!

最后向在百忙之中評審本文的各位專家、老師表示衷心的感謝!


【計算機(jī)畢業(yè)設(shè)計】基于JSP的網(wǎng)上購物系統(tǒng)的設(shè)計與實(shí)現(xiàn)的評論 (共 條)

分享到微博請遵守國家法律
密山市| 陇西县| 乌拉特前旗| 大英县| 北辰区| 金山区| 蚌埠市| 西藏| 临夏县| 丹阳市| 崇仁县| 文登市| 建瓯市| 永泰县| 奉新县| 嘉鱼县| 应用必备| 嫩江县| 彭阳县| 五寨县| 东台市| 安岳县| 元江| 梅河口市| 长治市| 利川市| 孙吴县| 扎兰屯市| 抚顺市| 营口市| 和平区| 陈巴尔虎旗| 彭水| 林西县| 灵寿县| 仪陇县| 宜宾县| 南城县| 平谷区| 甘肃省| 新宁县|