手機銷售網站的設計與實現畢業設計論文_第1頁
手機銷售網站的設計與實現畢業設計論文_第2頁
手機銷售網站的設計與實現畢業設計論文_第3頁
手機銷售網站的設計與實現畢業設計論文_第4頁
手機銷售網站的設計與實現畢業設計論文_第5頁
已閱讀5頁,還剩36頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PAGEIV長沙民政職業技術學院畢業設計說明書題目:手機銷售網站的設計與實現產品設計工藝設計方案設計√類型:學生姓名:_________________學號:_______________學院:____軟件學院_____________專業:____軟件開發方向__________班級:_____軟開1331班___________學校指導教師:______企業指導教師:_______________2016年5月1日摘要隨著信息化社會的不斷發展,電子商務在人們生活的領域已隨處可見,人們可以足不出戶,通過互聯網選購自己所需的商品,通過網上支付或貨到付款的形式進行付款。這樣的方式給人們的生活帶來的極大的方便,人們可以不受時間和地點的限制,選購商品,對于商家而言,通過互聯網的方式銷售商品,可以減輕經濟的負擔,但是這種銷售方式,由于存在購物量繁多,給人工管理增加了極大的負擔,因此,如何處理好快速銷售與管理之間的關系,成為了商家們關心的問題。傳統的商品管理通過手工記錄的形式記錄下來,每月進行統計等等,這樣的管理形式存在諸多不足之處,首先,手工記錄工作量大,或多或少有商品丟失數據的情況,其次是管理方面,由于數據多導致統計非常繁瑣,比如傳統的手機銷售方式是人們到實體店中購買手機,銷售員進行記錄,這樣的方式不僅影響的手機的銷售,在管理方面工作也非常繁瑣。針對以上問題,設計開發了手機銷售網站,本網站前臺主要使用JSP作為開發語言,后臺使用SqlServer2005作為數據庫管理系統,開發環境是MyEclipse,服務器采用tomcat,開發出的一個基于Web技術的B/S結構的手機銷售網站。關鍵詞:網上銷售;訂單管理;JSP;B/S結構;手機銷售目錄TOC\o"1-2"\h\z\t"標題3,3,標題4,4"摘要 I1.緒論 11.1課題背景 11.2目的和意義 11.3開發工具及技術 11.3.1開發工具 MyEclipse Tomcat SqlServer 21.3.2JSP 21.3.3JavaScript 31.4軟硬件需求 32.需求分析 42.1需求調研 42.2可行性分析 42.2.1技術的可行性 42.2.2經濟的可行性 42.2.3操作可行性 42.2.4法律的可行性 52.3系統用例分析 52.3.1普通用戶用例圖 52.3.2管理員用例圖 52.3.3會員用例圖 62.4功能模塊需求分析 72.5性能需求分析 82.5.1系統的安全性 82.5.2數據的完整性 93.系統分析與設計 103.1系統分析10 3.2數據庫的分析與設計 103.2.1數據庫的概念結構設計 103.2.2數據庫的邏輯結構設計 123.2.3數據庫的連接原理 134.系統功能實現 174.1系統登陸頁面實現 174.2總體功能模塊 184.2.1系統主頁面 184.2.2會員購物功能實現 194.2.3會員注冊功能 264.2.4訂單查詢功能 294.3中文亂碼問題處理 315.系統測試 325.1系統測試目的與意義 325.2測試過程 325.2.1主頁面的登錄模塊測試 325.3其他錯誤處理 33結論 34參考文獻 35致謝36PAGE371.緒論1.1課題背景隨著互聯網技術的不斷發展[1],人們的生活方式也發生了許多改變,在互聯網上,人們可以隨時隨地獲取信息,可以發布信息和網上購物等,其中,網上購物的發展最為突出。現如今,各種各樣的商品都可以通過網上購物的形式進行銷售,客戶可以隨時瀏覽商品信息,可以在線咨詢等。然而,隨著網上購物在人們生活中不斷受到歡迎,使用的人也越來越多,在于商品的管理方面,也遇到了問題,如何能使得商品以最多的速度銷售,同時,也可以實現高效的管理成為迫切需要解決的問題。1.2目的和意義為了解決在實體店中銷售手機遇到的問題,開發設計了此手機銷售網站,該網站中,利用圖片展示及文字介紹的形式代替實體店中費時的介紹形式,人們可以隨意瀏覽手機不受限制,在后臺管理方面,管理員通過手機入庫,展示及出庫的形式,完成整個手機商城管理功能。手機銷售網站[2],手機信息是由管理員將將需要入庫的手機信息錄入系統中,系統將數據存儲在數據庫中,長期保存,管理員可以隨時查詢信息,可以對商品信息進行維護,普通用戶可以不登錄系統,進行產品瀏覽,需要購物時,需要登錄系統才可購買。1.3開發工具及技術1.3.1開發工具此次設計主要采用MyEclipse[3]加Tomcat后臺服務器進行,設計過程中頁面主要使用JSP技術完成,下面對MyEclipse、Tomcat和SqlServer數據庫進行簡要介紹。MyEclipseMyEclipse[4]全稱MyEclipseEnterpriseWorkbench即我們通常說的企業級工作平臺,它是在Eclipse的基礎上對IDE進行了相關的擴展與升級,能夠支持現代多種開源的產品,通過MyEclipse與JAVAEE以及數據庫軟件的有效結合,能夠極大地提高開發的效率。同時在該平臺能夠同時進行編譯、調試、運行等多項功能。Tomcat在通過JAVA[5]技術實現系統的開發過程中,避免不了服務器的使用,而經常用到的即是Tomcat服務器,該服務器屬于一種免費的開源式應用服務器,普遍應用于中小型系統的開發。Tomcat[6]近些年來憑借其所占內存小,運行速度快,穩定性強等諸多優點深受廣大軟件以及網站開發者的喜愛,特別對于一個新手而言,很容易就能夠掌握它的使用方法。SqlServerMicrosoftSQLServer2005[7]是微軟的一款數據庫軟件,是一個基于關系型數據庫模型建立的數據庫系統。它主要能夠保存足夠多的數據信息,利用其豐富的SQL語言,可以完成對數據的操縱。SQLServer2005數據庫還易于移植,只需將所建好的數據分離后,便可將數據庫移植到其他的機器的數據庫中,同時,SQLServer2005還具有強大的圖形界面,易于學習和使用。本系統后臺數據庫選用SQLServer20005數據庫是因為現如今網站及系統開發中運用非常廣泛,其數據庫操縱語句豐富,對數據的存取速度快,而物流信息管理系統是一個數據量大且數據也需要維護的系統,它強大的圖形界面運用更加方便[8]。1.3.2JSPJSP技術[9]是一種動態網頁技術標準,此技術與其他技術相比,其開發的web應用是可以跨平臺運行瀏覽的,能夠適合在不同的操作系統環境下使用。JSP技術實現的網頁頁面除了html,div,css等代碼主要是通過嵌入Javascript腳本語言,從而形成了JSP動態網頁頁面。JSP的工作原理[10]如下:(1)當JSP頁面文件被請求時,JSP文件將被轉換成為JAVA源文件,并將其編譯成class文件,并加載到內存中。(2)加載后,系統為其創建一個Servlet()實例,并調用jspService()方法。(3)執行jspService(),瀏覽器將html中的內容返回給客戶端。1.3.3JavaScriptJavaScript[11]是一種基于客戶端的腳本語言,廣泛應用于動靜態網站的開發建設過程中,其最重要的特點是面向對象,即可通過更加直觀、模塊化的方式來對程序進行開發。它的重要性體現在其能夠與html,java程序語言等實現交互連接,從而設計出更加完美的網站或者系統[12]。1.4軟硬件需求硬件需求:CPU:Pentium以上計算機內存:512M以上軟件需求:操作系統版本:WindowsXP/vista/Win7開發工具:MyEclipse6.0.1后臺服務器:ApacheTomcat6.0開發語言:Java瀏覽器:IE6.02.需求分析2.1需求調研在項目的開始是需求調研,經過一系列的調查發現,實際生活中的手機銷售管理存在諸多不足之處,由于每日客流量多,手工記錄銷售記錄方式容易造成數據丟失,同時,也不利于管理員進行數據統計和查詢,因此設計了手機銷售網站。2.2可行性分析開發任何一個系統,都會受到時間和資源上的限制。因此,在每一個項目開發之前,都要進行可行性分析,可以減少項目的開發風險,避免人力、物力和財力的浪費。下面就技術、經濟、操作和法律四個方面來介紹。2.2.1技術的可行性本系統開發工具是MyEclipse和SqlServer數據庫,開發語言是Java,主要使用了J2EE的技術,java是一種面向對象編程語言,簡單易學而且靈活方便。大三時就學習了java課程,大四期間也系統的了解了J2EE的知識,會員訂單管理系統總體上開發難度不高,數據庫的設計和操作是本系統設計的核心。在大學期間學習過軟件工程,軟件測試,UML統一建模語言等課程,每個學期也會完成對應的課程設計,具備一定的系統分析、設計和測試能力。因此,完成系統實現在技術上完全具有可行性[13]。2.2.2經濟的可行性手機的銷售在日常生活中具有非常大的市場需求,因此,管理者不僅要雇用許多員工,對電子商城的手機進行銷售,同時,在管理方面,不僅效率低,并且容易出現差錯,為了可以更好的處理以上問題,利用信息化管理可以管理工作更加系統化、快速化、全面化,不僅可以減輕管理的工作量,在手機的銷售方面,也能減少經濟支出,所以在經濟上具有完全的可行性。2.2.3操作可行性本系統開過程中很好的考慮了人機界面的結合,輸入信息頁面大多數都是下拉框的選擇形式,在某些頁面,信息可以自動生成,無需輸入,時間的輸入也是用的日歷控件,操作簡便,對操作人員的要求很低,只需對WINDOWS操作熟練,加之對本系統的操作稍加培訓即可工作,而且本系統可視性非常好,所以在技術上不會有很大難度。2.2.4法律的可行性手機銷售網是自行開發的電子商城網站,是很有實際意義的電子銷售平臺,開發環境軟件和使用的數據庫都是開源代碼,開發這個系統不同于開發普通的系統軟件,不存在侵權等問題,即法律上是可行的。2.3系統用戶用例圖2.3.1普通用戶用例圖登錄手機商城登錄手機商城商品信息瀏覽商品分類瀏覽公告信息瀏覽普通用戶圖2.1普通用戶用例圖普通用戶可以不進行身份驗證,瀏覽網上信息;2.3.2管理員用例圖管理員可以對系統后臺數據進行管理,可以管理系統用戶等,主要有四大模塊:會員管理,商品管理,訂單管理,公告管理及分類管理等;其中分類管理中,分為大分類和小分類。圖2.2管理員后臺管理用例圖管理員可以登錄后臺管理系統進行如上圖所示的的多項管理。2.3.3會員用例圖登錄手機商城登錄手機商城訂單信息查詢會員購物車會員信息維護會員公告信息查詢圖2.3會員操作用例圖會員可以購買商城的商品,購買成功后生成個人訂單,在個人會員管理中心,可以查詢會員的信息,訂單信息及購物車等。2.4功能模塊需求分析手機銷售網手機銷售網普通用戶會員用戶管理員用戶商品信息查詢公告信息查詢商品信息查詢公告信息查詢購物車信息查詢訂單信息查詢商品管理會員管理訂單管理公告管理圖2.2系統功能模塊圖由上圖可以知道本系統最大的特點是使用操作簡單、友好的提示信息。本系統將實現以下基本功能:(1)普通用戶商品信息,公告信息瀏覽功能,當用戶不需要購買商品時,可以不需要注冊會員;(2)管理員用戶具有會員信息管理、商品信息管理、訂單管理、公告管理及分類管理等功能(3)會員購物功能,當需要購買商品時,需要用注冊成功的會員賬號密碼登錄系統,購買的商品信息生成相應訂單;普通用戶功能模塊圖描述了普通用戶登錄手機商城后可以進行的操作;管理員功能模塊圖說明:管理員是功能最多的一種用戶角色。(1)會員管理模塊:在該模塊中完成會員信息管理功能,會員信息管理提供會員的查詢、增加、修改和刪除等功能操作。(2)商品管理模塊:在該模塊中可以添加新的商品信息,可以對現有商品信息進行修改和刪除操作。(3)訂單管理模塊:在該模塊中可以查詢系統內所有的會員產生的訂單信息。(4)公告管理模塊:管理員在公告管理模塊可以添加新的公告信息,可以刪除現有的公告信息。2.5性能需求2.5.1系統的安全性手機銷售網在管理權限上要嚴格進行控制,具體要求如下:普通用戶可以瀏覽網站信息,購物時需要檢驗會員信息,若是本站會員,可以購買商品,查詢個人訂單信息及購物車信息,管理員用戶通過管理員登錄界面登錄后臺管理系統,對系統數據進行維護。對系統用戶權限做以上控制,可以確保系統的嚴密性和安全性。2.5.2數據的完整性1.各種記錄信息的完整性,信息記錄內容不能為空2.各種數據間相互聯系的正確性3.相同數據在不同記錄中的一致性3.系統分析與設計3.1系統分析圖3.1系統構架圖設計開發手機銷售網站,網站前臺使用JSP這種種動態網頁技術,此技術與其他技術相比,其開發的web應用是可以跨平臺運行瀏覽的,能夠適合在不同的操作系統環境下使用,后臺使用SqlServer2005作為數據庫管理系統,開發環境是MyEclipse,服務器采用tomcat,開發出的一個基于Web技術的B/S三層結構的手機銷售網站3.2數據庫的分析與設計數據庫是整個系統的核心,數據庫設計質量的高低直接影響到整個系統質量的好壞,因此在進行網站或者系統的開發時數據庫的設計顯的尤為重要。通常數據庫設計主要有以下幾個基本的步驟組成:需求分析,概念設計,邏輯與物理設計等。3.2.1數據庫的概念結構設計概念設計是一種數據庫的概念結構,它在建立整個系統的過程中是基于數據庫分析的基礎之上的。接著進行視圖設計、集成等,最終得出結果。概念設計采用的是實體-聯系(E-R)模型的設計方法。通過該方法,能夠形象地將系統中所涉及到的實體以及其屬性連接在一起根據此種方法,并結合系統概念模型的特點,建立E-R模型圖。實體間關系屬性實體實體間關系屬性實體(1)會員信息實體E-R圖如圖3.2所示:圖3.2會員信息實體E-R圖會員信息擁有的屬性有:用戶名,密碼,姓名,所在地,地址,郵編,證件類型,證件號碼(2)訂單信息實體E-R圖如圖3.3所示圖3.3訂單信息實體E-R圖訂單信息屬性有:訂單號,商品數量,用戶名,用戶姓名,付款方式,訂單日期,運送方式(3)管理員信息E-R圖如圖3.4所示圖3.4管理員信息實體E-R圖管理員擁有的屬性有:賬號,密碼(4)商品信息E-R圖如圖3.5所示圖3.5商品信息實體E-R圖商品屬性:商品編號,類別編號,商品名稱,生產商,價格,現價。3.2.2數據庫的邏輯結構設計我們知道,數據庫概念模型獨立于任何特定的數據庫管理系統,因此,需要根據具體使用的數據庫管理系統的特點進行轉換。即轉化為按計算機觀點處理的邏輯關系模型,E-R模型向關系數據庫模型轉換應遵循下列原則:*每一個實體要轉換成一個關系*所有的主鍵必須定義非空(NOTNULL)*對于二元聯系應按照一對多、弱對實、一對一、多對多等聯系來定義外鍵。根據E-R模型,商場VIP消費管理系統建立了以下邏輯數據結構,下面是各數據表的詳細說明。(1)會員信息表主要是記錄了會員基本信息。表結構如表3.1所示。表3.1會員信息表(tb_member)列名數據類型長度允許空是否主鍵說明idint4否是編號usernamevarchar50否否用戶名trueNamevarchar50否否用戶姓名Passwordvarchar50否否密碼Cityvarchar50否否所在地Addressvarchar50否否詳細地址Postcodevarchar50否否郵編cardIDvarchar20否否證件號碼cardTypevarchar20否否證件種類(2)商品信息表中保存著商城的全部商品信息,表結構如圖3.2所示。表3.2商品信息表(tb_goods)列名數據類型長度允許空是否主鍵說明idInt4否是編號TypeidInt4否否類別編號goodsNamevarchar50否否商品名稱Intrducevarchar50否否生產商Pricevarchar50否否價格nowPricevarchar50否否現價(3)訂單信表中保存著所有會員購物產生的訂單基本信息。表結構如表3.3所示。表3.3訂單信息表(tb_order)列名數據類型長度允許空是否主鍵說明idint4否是編號Bnumbervarchar50否否數量Usernamevarchar50否否用戶名trueNamevarchar50否否用戶姓名Addressvarchar50否否詳細地址Payvarchar50否否付款方式Carryvarchar50否否運送方式orderDatevarchar20否否訂單日期(4)管理員信息表主要記錄的管理員的賬號信息,包括用戶名和密碼,表結構如表3.4所示。表3.4管理員信息表(tb_manager)列名數據類型長度允許空是否主鍵說明userIdint4否是編號userNamevarchar50否否用戶名userPwvarchar50否否密碼3.2.3數據庫的連接原理采用JDBC連接數據庫的方式,只需在工程中導入對應數據庫的jar包,就可以方便的對數據庫進行連接,在程序中,用Class.forName()方法來加載驅動程序,在用DriverManager的getConnection()方法就可以創建一個數據庫連接。程序采用的是DAO模式來操作數據庫,該模式也叫數據訪問對象模式,屬于JAVA編程中的一種被廣泛應用的經典模式,其主要的工作原理是獲取抽象數據中的方法。其思想如圖3.10所示:封裝使用封裝使用DataSourceDataAccessObjectBusinessObjectDataSourceDataAccessObjectBusinessObject創建/使用獲取/修改創建/使用獲取/修改DataTransferObjectDataTransferObject圖3.10DAO模式類圖圖中BussinessObject是業務對象,是使用DAO模式的客戶端;DataTransferObject數據傳輸對象,在應用程序不同層次之間傳輸對象,在一個分布式應用程序中,通??梢蕴岣哒淼男阅?;DataObjectAcces數據輸入/輸出對象封裝了對數據源的一些基本操作;DataSource指的是數據源。可以從圖中看出,DAO模式分離了業務邏輯和數據羅即將,是的編寫的軟件具有良好的層次式體系結構。本系統為了方便數據庫的操作,主要使用getConnection的對象來接一個數據庫(建立一個類getConnection),代碼如下:publicConnectionconn=null;//定義一個Connection對象publicStatementstmt=null;//定義一個Statement對象publicResultSetrs=null;//定義一個ResultSet對象staticStringsd="sun.jdbc.odbc.JdbcOdbcDriver";staticStringsc="jdbc:odbc:db_shop";publicstaticConnectiongetConnection(){ Connectionconn=null; try{ Stringdriver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; Stringurl="jdbc:sqlserver://localhost:1433;databaseName=db_shop"; Stringuser="sa"; Stringpassword="123456"; Class.forName(driver); conn=DriverManager.getConnection(url,user,password); } catch(Exceptione){ System.err.println(e.getMessage()); } returnconn; }在程序需要連接數據庫的地方,只需要生成一個getConnection的對象,就可以對數據庫進行連接并操作。3.3設計的基本思想設計思想遵循以下幾點:1.采用B/S模式來對系統進行開發與設計,即通過網頁的形式來展示系統,這種方式不僅符合現代大眾的需求,同時維護方便,成本低。2.使用面向對象的設計理念來進行開發。此種理念能夠有效地保證系統的完整性。3.模使用模塊化設計方法。模塊化設計的優點在于能夠使程序的結構更加清晰,對于代碼的重載有很大的好處。4.簡單方便的系統界面。設計簡單友好的系統界面,方便用戶較快的適應系統的操作。5.速度優先原則。由于此工具最重要的評測標準就是速度,因此在設計過程中,具體過程盡量做到資源占用少,速度快。6.設計既要突出重點,又要細致周到。要符合設計需求,在有可能改進的地方進行擴充,使系統更適應用戶的需要。4.系統功能實現系統經過需求分析、可行性分析、數據庫設計后接著就需要對程序進行設計與編寫,在實現系統功能過程中,必須要對系統的每個功能進行不斷的測試,對編碼進行針對性的調試,保證系統完成后的穩定性。4.1系統登陸頁面實現1.描述:為了保證系統的安全性及穩定性,管理員進入后臺管理系統之前需要跳轉至登錄界面進行身份驗證,輸入正確的賬號和密碼登錄后臺管理系統。2.程序運行效果圖如圖4-1所示:圖4-1管理員登陸頁面設計3.在登陸頁面輸入用戶名和密碼以,點擊提交按鈕,跳轉到登陸的jsp中,在該jsp中會對所輸入的用戶名,密碼,驗證碼進行判斷,驗證通過進入對應的頁面,Login_M_deal.jsp關鍵代碼:會員登錄主要實現功能代碼如下:connDBconn=newconnDB();chStrchStr=newchStr();Stringmanager=chStr.chStr(request.getParameter("manager"));//此處必須進行編碼轉換,否則輸入中文用戶名時將出現亂碼try{ ResultSetrs=conn.executeQuery("select*fromtb_managerwheremanager='"+manager+"'"); if(rs.next()){ StringPWD=request.getParameter("PWD"); if(PWD.equals(rs.getString("PWD"))){ session.setAttribute("manager",manager); response.sendRedirect("index.jsp"); }else{ out.println("<scriptlanguage='javascript'>alert('您輸入的管理員或密碼錯誤!');window.location.href='../index.jsp';</script>"); } }else{ out.println("<scriptlanguage='javascript'>alert('您輸入的管理員或密碼錯誤!');window.location.href='../index.jsp';</script>"); }}catch(Exceptione){ out.println("<scriptlanguage='javascript'>alert('您的操作有誤!');window.location.href='../index.jsp';</script>");}4.2總體功能模塊4.2.1系統主頁面圖4-2系統主頁面如圖4-2所示的是本購物系統的主頁面,通過主頁面,可看到本系統的大部分功能,其中包括導航的新品上架、特價商品、會員資料修改、購物車、查看訂單以及銷售排行等信息。在網站的主體頁面,能夠了解到特價商品、新品上架、商品分類、商城公告以及廣告招商等信息。4.2.2會員購物功能實現1.描述:用戶登錄本網站,當要購買商品時,需要校驗是否是本站的會員,是本站的會員,可以購買商品的鏈接,否則需要注冊本站會員,會員信息登錄成功后,購買的商品以在購物車中查看,生成的訂單可以在訂單查詢中查看。2.程序運行效果圖如圖4-3,4-4,4-5,4-6,4-7所示:圖4-3會員登錄頁面圖4-4商品信息圖4-5購物車頁面圖4-6生成訂單頁面圖4-7訂單生成成功提示實現代碼如下://確定購買手機<% floatsum=0; intID=-1; Stringgoodsname=""; for(inti=0;i<cart.size();i++){ goodselementgoodsitem=(goodselement)cart.elementAt(i); sum=sum+goodsitem.number*goodsitem.nowprice; ID=goodsitem.ID; if(ID>0){ ResultSetrs_goods=conn.executeQuery("select*fromtb_goodswhereID="+ID); if(rs_goods.next()){ goodsname=rs_goods.getString("goodsname"); } } %><tralign="center"valign="middle"><tdwidth="32"height="27"><%=i+1%></td><tdwidth="109"height="27"><%=ID%></td><tdwidth="199"height="27"><%=goodsname%></td><tdwidth="59"height="27">¥<%=goodsitem.nowprice%></td><tdwidth="51"height="27"><inputname="num<%=i%>"size="7"type="text"class="txt_grey"value="<%=goodsitem.number%>"onBlur="check(this.form)"></td><tdwidth="65"height="27">¥<%=(goodsitem.nowprice*goodsitem.number)%></td><tdwidth="34"><ahref="cart_move.jsp?ID=<%=i%>"><imgsrc="images/del.gif"width="16"height="16"></a></td><scriptlanguage="javascript"> <!-- functioncheck(myform){ if(isNaN(myform.num<%=i%>.value)||myform.num<%=i%>.value.indexOf('.',0)!=-1){ alert("請不要輸入非法字符");myform.num<%=i%>.focus();return;} if(myform.num<%=i%>.value==""){ alert("請輸入修改的數量");myform.num<%=i%>.focus();return;} myform.submit(); } --> </script> <% } %></tr></table> </form><tablewidth="100%"height="52"border="0"align="center"cellpadding="0"cellspacing="0"><tralign="center"valign="middle"> <tdheight="10">  </td><tdwidth="24%"height="10"colspan="-3"align="left"> </td> </tr><tralign="center"valign="middle"><tdheight="21"class="tableBorder_B1"> </td><tdheight="21"colspan="-3"align="left"class="tableBorder_B1">合計總金額:¥<%=sum%></td></tr><tralign="center"valign="middle"><tdheight="21"colspan="2"><ahref="index.jsp">繼續購物</a>|<ahref="cart_checkout.jsp">去收銀臺結賬</a>|<ahref="cart_clear.jsp">清空購物車</a>|<ahref="#">修改數量</a></td></tr></table>//確定訂單實現:<%chStrchStr=newchStr();connDBconn=newconnDB();if(session.getAttribute("cart")==""){ out.println("<scriptlanguage='javascript'>alert('您還沒有購物!');window.location.href='index.jsp';</script>");}StringUsername="";Username=(String)session.getAttribute("username");if(Username!=""){try{ResultSetrs_user=conn.executeQuery("select*fromtb_Memberwhereusername='"+Username+"'");if(!rs_user.next()){ session.invalidate(); out.println("<scriptlanguage='javascript'>alert('請先登錄后,再進行購物!');window.location.href='index.jsp';</script>"); return;}else{ Stringusername=chStr.chStr(request.getParameter("username")); Stringtruename=chStr.chStr(request.getParameter("truename")); Stringaddress=chStr.chStr(request.getParameter("address")); Stringpostcode=request.getParameter("postcode"); Stringtel=request.getParameter("tel"); Stringpay=chStr.chStr(request.getParameter("pay")); Stringcarry=chStr.chStr(request.getParameter("carry")); Stringbz=chStr.chStr(request.getParameter("bz")); intorderID=0; //計算打折 floatrebate=1; ResultSetrs_rebate=conn.executeQuery("selectrebatefromV_Memberwhereusername='"+username+"'"); if(rs_rebate.next()){} Vectorcart=(Vector)session.getAttribute("cart"); intnumber=0; floatnowprice=(float)0.0; floatsum=(float)0; floatTotalsum=(float)0; Stringflag="True"; inttemp=0; intID=-1; //插入訂單主表數據 floatbnumber=cart.size(); Stringsql="insertintotb_Order(bnumber,username,truename,address,postcode,tel,pay,carry,rebate,bz)values("+bnumber+",'"+username+"','"+truename+"','"+address+"','"+postcode+"','"+tel+"','"+pay+"','"+carry+"',"+rebate+",'"+bz+"')"; temp=conn.executeUpdate_id(sql);if(temp==0){ flag="false"; }else{ orderID=temp; } Stringstr=""; //插入訂單明細表數據 for(inti=0;i<cart.size();i++){ goodselementmygoodselement=(goodselement)cart.elementAt(i); ID=mygoodselement.ID; nowprice=mygoodselement.nowprice*rebate; number=mygoodselement.number; sum=nowprice*number; str="insertintotb_order_Detail(orderID,goodsID,price,number)values("+orderID+","+ID+","+nowprice+","+number+")"; temp=conn.executeUpdate(str); Totalsum=Totalsum+sum; if(temp==0){ flag="false"; } } //更新會員信息 Stringsql_up="updatetb_MembersetAmount=Amount+"+Totalsum+"whereusername='"+username+"'"; temp=conn.executeUpdate(sql_up); if(temp==0){ flag="false"; } //更新會員等級 ResultSetrs_Amount=conn.executeQuery("selectAmountfromtb_Memberwhereusername='"+username+"'"); if(rs_Amount.next()){ intAmount=0; Amount=rs_Amount.getInt("Amount"); ResultSetrs_grade=conn.executeQuery("selectTop1grade,Amountfromtb_rebatewhereAmount<="+Amount+"orderbygradedesc"); if(rs_grade.next()){ intgrade=0; grade=rs_grade.getInt("grade"); Stringsql_upgrade="updatetb_Membersetgrade="+grade+"whereusername='"+username+"'"; temp=conn.executeUpdate(sql_upgrade); if(temp==0){ flag="false"; } } } if(flag.equals("false")){ out.println("<scriptlanguage='javascript'>alert('訂單無效');history.back();</script>"); }else{ session.removeAttribute("cart"); out.println("<scriptlanguage='javascript'>alert('訂單生成,請記住您的訂單號["+orderID+"]');window.location.href='index.jsp';</script>"); } conn.close();}}catch(Exceptione){out.println(e.toString());}}else{ session.invalidate(); out.println("<scriptlanguage='javascript'>alert('請先登錄后,再進行購物!');window.location.href='index.jsp';</script>");}%>4.2.3會員注冊功能1.描述:普通用戶當需要購買商城的商品時,需要注冊本站會員,輸入相關會員信息,保存到會員信息表中,jsp頁面根據用戶所輸入的信息,首先判斷所注冊的用戶名是否存在,不存在則可以注冊,校驗功能由Js方法openwin()完成。2.程序效果圖如下圖4-8所示:圖4-8會員注冊輸入信息頁面圖4-9用戶名校驗3.流程圖如下圖4-10所示: 圖4-10會員注冊流程圖會員注冊需要遵守流程,判斷先決條件是否成立,否則不予注冊4.實現代碼如下:會員信息管理關鍵代碼://會員用戶名校驗功能代碼<scriptlanguage="javascript"> functionopenwin(UID){ if(UID==""){ alert("請輸入用戶名!"); myform.username.focus(); return; } varstr="checkUserName.jsp?username="+UID; window.showModalDialog(str,"","dialogWidth=300px;dialogHeight=150px;status=no;help=no;scrollbars=no");}</script>}//會員注冊信息提交實現代碼<%connDBconn=newconnDB();request.setCharacterEncoding("gb2312");Stringusername=member.getUsername();ResultSetrs=conn.executeQuery("select*fromtb_Memberwhereusername='"+username+"'");if(rs.next()){ out.println("<scriptlanguage='javascript'>alert('該用戶名已經存在,請重新注冊!');window.location.href='register.jsp';</script>");}else{ intret=0;MemberDaoImplins_member=newMemberDaoImpl();ret=ins_member.insert(member); if(ret!=0){out.println("<scriptlanguage='javascript'>alert('用戶注冊成功!');window.location.href='index.jsp';</script>");}else{out.println("<scriptlanguage='javascript'>alert('用戶注冊失敗!');window.location.href='register.jsp';</script>");}}%> 4.2.4訂單查詢功能1.描述:在管理員操作界面,點擊訂單管理,可以查詢本站所有會員的訂單信息。2.程序效果圖如下圖4-11所示圖4-11管理員訂單管理界面3.實現代碼如下:<%Stringstr=(String)request.getParameter("Page");if(str==null){ str="0";}intpagesize=10;rs.last();intRecordCount=rs.getRow();intmaxPage=0;maxPage=(RecordCount%pagesize==0)?(RecordCount/pagesize):(RecordCount/pagesize+1);intPage=Integer.parseInt(str);if(Page<1){ Page=1;}else{ if(((1)*pagesize+1)>RecordCount){ Page=maxPage; }}rs.absolute((1)*pagesize+1);for(inti=1;i<=pagesize;i++){ orderID=rs.getInt("orderID"); bnumber=rs.getInt("bnumber"); truename=rs.getString("truename"); pay=rs.getString("pay"); carry=rs.getString("carry"); rebate=rs.getFloat("rebate"); orderDate=rs.getString("orderDate"); enforce=rs.getInt("enforce"); %> <tralign="center"> <tdheight="24"><ahref="order_detail.jsp?ID=<%=orderID%>"><%=orderID%></a></td> <td><%=bnumber%></td> <td><%=truename%></td> <td><%=pay%></td> <td><%=carry%></td> <td><%=orderDate%></td> <td><%if(enforce==0){%><ahref="order_enforce.jsp?ID=<%=orderID%>"><imgsrc="../images/enforce.gif"width="16"height="16"></a> <%}else{%>已執行<%}%></td> </tr>4.3中文亂碼問題處理在程序中經常會遇到中文亂碼的情況,如果手動的在servlet和jsp頁面進行設置,相當麻煩。因此,編寫了chStr類文件處理字符轉換:代碼如下:publicStringchStr(Stringstr){if(str==null){str="";}else{try{str=(newString(str.getBytes("iso-8859-1"),"GB2312")).trim();//String類的getBytes方法是一個取得字符串編碼類型的函數,trim()方法用于去除字符串的收尾空格}catch(Exceptione){e.printStackTrace(System.err);}}returnstr;}publicStringconvertStr(Stringstr1){if(str1==null){str1="";}else{try{//replaceAll(Stringstr1,Stringstr2)方法為JDK1.4.x的新方法,使用str2替換字符串中的所有str2字符串str1=str1.replaceAll("<","<");//替換字符串中的"<"和">"字符,保證HTML標記的正常輸出str1=str1.replaceAll(">",">");str1=str1.replaceAll(""," ");//空格符str1=str1.replaceAll("\r\n","<br>");//回車換行符}catch(Exceptione){e.printStackTrace(System.err);}}returnstr1;}5.系統測試5.1系統測試目的與意義系統測試是整個系統開發過程中不可或缺的流程,通過系統測試不僅能夠保證系統的正常運行,同時提高系統的性能,保證系統運行的穩定,對于后期的維護與管理是至關重要的。系統測試的任務是盡可能找出系統中存在的問題,保證系統的穩定性、可靠性,高效性等。在系統測試過程中,一般采用三個步驟來依次對系統進行測試即模塊、組裝、確認等流程。通過嚴格執行此三個流程,確保最終的系統的可靠。5.2測試過程在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論