




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、吉吉 林林 工工 商商 學學 院院畢畢 業(yè)業(yè) 論論 文文 題目名稱:基于 JSP 的網上購物系統的設計與實現 院 系:信息工程學院 專 業(yè):計算機科學與技術 學生姓名:楊月 學 號: 指導教師:桑磊 2013 年 5 月 21 日 畢業(yè)論文原創(chuàng)性聲明畢業(yè)論文原創(chuàng)性聲明 本人鄭重聲明:所呈交畢業(yè)論文,是本人在指導教師的指導下,獨立進行研究工作所取得的成果。除文中已經注明引用的內容外,本論文不包含任何其他人或集體已經發(fā)表或撰寫過的作品成果。對本文的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明。本人完全意識到本聲明的法律結果由本人承擔。論文作者簽名: 年 月 日基于基于 JSPJSP 的網
2、上購物系統的設計與實現的網上購物系統的設計與實現摘摘 要要:本網上購物系統是一個基于 Internet,采用 B2C(Business to Consumers)模式,并根據現有的網上購物系統的現狀而設計開發(fā)的電子商務平臺。它不但可以擴大商家的規(guī)模和市場影響力,而且可以減少企業(yè)的經營成本,提高工作效率。本文首先介紹了網上購物系統的現狀及開發(fā)背景,然后論述了系統的設計目標,系統需求和總體設計方案,較詳細的論述了系統的詳細設計和實現。最后,本文對網上購物系統進行了系統檢測并提出了還需要改進的問題。本畢業(yè)設計的內容是設計并且實現一個基于 JSP 技術的網上購物系統,主要使用了 Struts+Spri
3、ng+Hibernate 等多種框架的結合使用,用 MyEclipse 作為開發(fā)工具,以 MySQL 作為數據庫,以 Macromedia 公司的 Dreamweaver 作為界面美化工具,使用Java 語言開發(fā),頁面采取 JSP 動態(tài)頁面開發(fā)技術。該系統界面簡單、操作方便,容易維護。關關鍵鍵詞詞:MyEclipse;MySQL;JSP;DreamweaverThe Analysis and Realization of the Shop on Line SystemAbstract: The shop online system is an electronic commercial pla
4、tform which has been designed according to the situation of shop online system based on Internet with B2C mode. It can not only enhance the scale of shopping centre and market influence, and can also reduce the enterprises running cost, improve work efficiency.The thesis has firstly introduced the p
5、ractical situation and the developing background of the system. And then has described the designing goal、system need and the whole designing plan, has described the detailed design and reality of the system in detail. Finally, conclusion has been drawn about the system and problem has also been rai
6、sed. The content of graduation design is to design and implement an online shopping system based on JSP technology, mainly using Struts+Spring+Hibernate and other frame used in combination, using MyEclipse as a development tool, using MySQL as the database, with Macromedias Dreamweaver as the interf
7、ace landscaping tools, the use of Java language , development page JSP, adopt dynamic page technology. This system interface is simple, convenient operation, easy maintenance.Key Words: MyEclipse; MySQL; JSP; Dreamweaver目目 錄錄1 引言.11.1 網上購物系統的發(fā)展歷程與現狀.11.2 系統實現的目標.11.3 系統的開發(fā)意義.22 系統的開發(fā)環(huán)境及技術簡介.22.1 系統開
8、發(fā)環(huán)境.22.1.1 MyEclipse .22.1.2 數據庫簡介 .32.1.3 Tomcat .42.2 系統開發(fā)技術與 MVC 模式以及基本框架.42.3 B/S 體系結構 .53 系統需求分析.63.1 系統的開發(fā)目標.63.2 網站的可行性分析.63.3 系統的功能分析.74 系統概要設計.74.1 系統功能模塊設計.74.2 數據庫設計.114.2.1 數據庫需求分析.114.2.2 數據庫結構設計.115 系統詳細設計.135.1 系統功能實現的主要架構.135.1.1 SSH 框架.135.1.2 hibernate 配置文件.135.1.3 struts 配置文件.155.
9、1.4 spring 配置文件.155.2 系統各功能模塊的實現.165.2.1 用戶登錄模塊的實現.165.2.2 購物車模塊的實現.235.2.3 后臺管理模塊的實現.306 系統測試.386.1 系統測試的目的.386.2 系統測試的方法.386.3 系統測試環(huán)境.396.4 本系統測試.397 結論.43參考文獻 .45致謝 .461 1 引言引言1.11.1 網上購物系統的發(fā)展歷程與現狀網上購物系統的發(fā)展歷程與現狀上世紀 90 年代以來,隨著網絡、通信和信息技術的突破性進展,Internet 在全球爆炸性增長并迅速普及。在這一前提下,電子商務應運而生了。電子商務是基于互聯網、以交易雙
10、方為主體、以銀行電子支付和結算為手段、以客戶數據為依托的全新的商務模式,它可以使商家與供應商更緊密地聯系起來,更快地滿足客戶需求,也可以讓商家在全球范圍內選擇最佳供應商,在全球市場上銷售產品。自 1998 年“電子商務年”以來,電子商務在全球發(fā)展迅猛,大約每九個月其交易額就翻一番,全球電子商務交易額達到數千億美元,電子商務收入劇增 262%。近年來,隨著 Internet 的迅速崛起,互聯網已日益成為收集提供信息的最佳渠道并逐步進入傳統的流通領域。于是電子商務開始流行起來,越來越多的商家在網上建起在線商店,向消費者展示出一種新穎的購物理念。網上購物系統具有強大的交互功能,可使商家和用戶方便的傳
11、遞信息,完成電子貿易或商品交易。這種全新的交易方式實現了商家與用戶間文檔與資金的無紙化交換。網絡購物也正適應了當今社會快節(jié)奏的生活,使顧客足不出戶便可以方便快捷輕松地選購自己喜歡的商品。日前公布的一項研究結果顯示,我國電子商務產業(yè)近年來發(fā)展迅速,目前網上商店總數已經超過 10 萬家,網上展示的商品總數約為 2000 萬件。該項研究是由上海東方網誠數據科技有限公司進行,研究對象包括全部擁有獨立域名和網上商店系統的網站,以及部分租用第三方平臺、具有一定規(guī)模的網上商店,但不包括設在易趣、淘寶、易拍等拍賣網站上的店鋪。目前在國內 PHP 與 ASP 應用最為廣泛,而 JSP 由于是一種較新的技術,國內
12、采用的較少。但在國外,JSP 已經是比較流行的一種技術,尤其是電子商務類的網站,多采用 JSP。三者中,JSP 應該是未來發(fā)展的趨勢。世界上一些大的電子商務解決方案提供商都采用 JSP/Servlet。比較出名的如 IBM 的 Ebusiness,它的核心是采用JSP/Servlet 的 WebSphere;西方另外一個非常著名的電子商務軟件提供商Intershop,它原來的產品 Intershop1,2, 3, 4 占據了主要的電子商務軟件份額。它們都是通過 CGI 來提供支持的。但去年 10 月后它推出了 Enfinity,一個采用JSP/Servlet 的電子商務 Application
13、 Server,而且聲言不再開發(fā)傳統軟件。總的來說,ASP,PHP,JSP 三者都有相當數量的支持者,而這三者也各有所長,在開發(fā)過程中,我們應該根據實際的需要來使用最合適的技術,本系統則采用較新的 JSP 技術,一方面 JSP 的安全性和跨平臺性比較好,另一方面,我也希望能從開發(fā)該系統的過程中,深入學習一下這門編程語言。1.21.2 系統實現的目標系統實現的目標現在大多數網上購物系統要求的不僅是要有漂亮的網頁,更要有嚴謹的規(guī)劃,注重每一個細小的環(huán)節(jié),這樣才能使得在電子交易時避免不必要的錯誤發(fā)生。我們將使用 HTML、JSP 等技術來編輯網頁,并運用 JDBC 技術把數據庫和動態(tài)網頁相關聯。傳統
14、的管理信息系統信息獲取方法是由專業(yè)文字錄入人員將信息輸入到管理系統的數據庫中,這種方法在數據量不大時還可以,但是當數據量比較大,并且有較強的專業(yè)性時,錄入的費用和出錯的可能性都相應上升。本設計在實際應用中的解決方案是建立網站以及自己的數據庫,使得所需商品信息可以及時的保存、更新,可以更好的及時了解商品買賣的情況。1.31.3 系統的開發(fā)意義系統的開發(fā)意義隨著Internet的發(fā)展,為改變傳統的商業(yè)運作模式,人們提供了一種技術上的可行性的方案:利用Internet的技術和協議,建立各種企業(yè)內部網Intranet,企業(yè)外部網Extranet,通過廉價的通訊手段,將買家與賣家、廠商和合作伙伴緊密結合
15、在了一起,消除時間與空間帶來的障礙,從而大大的節(jié)約了交易成本,擴大了交易范圍。而在實際的生活中,這種方案已經被廣泛的運用到了實際的商業(yè)活動中了,人們將這種交易模式稱為:電子商務。電子商務的迅速發(fā)展,使得人類社會突飛猛進,網絡銷售是其中一個重要的附加產品。從購物測試看,中國電子商務的發(fā)展前景很好,其購物潛力巨大。但目前我國網絡使用主要在電子郵件、個人主頁、信息傳播、還有銷售管理系統等。當今比較流行的網上購物系統國外有“淘寶()” ,國內有“當當()” ,它們都是相當優(yōu)秀的電子商務網站,為其他的網站提供了良好的典范。設計中可以學習參考他們的思想,了解和熟悉整個網站的開發(fā)流程及完整的電子商務網站應有
16、的功能和注意事項。總之,伴隨著個人電腦的普及和使用電腦人口的增加,網絡銷售在眾多的銷售渠道中脫穎而出,其地位及占有量一定會逐漸增加。技術革命引發(fā)產業(yè)結構變革,市場的競爭規(guī)則也會跟著發(fā)生變化,網絡銷售的產生是流通領域中的一場革命。2 2 系統的開發(fā)環(huán)境及技術簡介系統的開發(fā)環(huán)境及技術簡介2.12.1 系統開發(fā)環(huán)境系統開發(fā)環(huán)境2 2. .1 1. .1 1 M My yE Ec cl li ip ps se e 在開發(fā)本平臺中所用到的開發(fā)工具就是是知名的 java 項目開發(fā)工具MyEclipse。MyEclipse 企業(yè)級工作平臺(MyEclipse Enterprise Workbench ,簡稱
17、MyEclipse)是對 Eclipse IDE 的一種擴展,利用 MyEclipse,我們可以在數據庫和J2EE 的開發(fā)、發(fā)布,以及在應用程序服務器的整合當中極大地提高系統的工作效率。MyEclipse 是一個功能非常豐富的 J2EE 集成開發(fā)環(huán)境,包括了完備的編碼、調試、測試和發(fā)布功能,完整支持 HTML, Struts, JSP, CSS, JavaScript, SQL, Hibernate。在結構上,MyEclipse 的特征可以被分為 7 類:J2EE 模型,WEB 開發(fā)工具,EJB 開發(fā)工具,應用程序服務器的連接器,J2EE 項目部署服務,數據庫服務,MyEclipse 整合幫助
18、。對于以上每一種功能上的類別,在 Eclipse 中都有相應的功能部件,并通過一系列的插件來實現它們。MyEclipse 結構上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任易一個模塊進行單獨的擴展和升級。簡單而言,MyEclipse 是 Eclipse的插件,也是一款功能強大的 J2EE 集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯。MyEclipse 的版本有很多,本購物系統可以使用的 MyEclipse 的版本也很多,但是基于 MyEclipse6.5 的穩(wěn)定性好,所以我選擇 MyEclipse6.5 作為我的開發(fā)工具。MyEclipse 開發(fā)界面如圖 2.1 所示。圖 2.1
19、 MyEclipse 開發(fā)界面2 2. .1 1. .2 2 數數據據庫庫簡簡介介數據庫使用的是 MySQL 數據庫。MySQL 的特性:使用 C 和 C+編寫,并使用了多種編譯器進行測試,保證源代碼的可移植性 ,支持多種操作系統 。為多種編程語言提供 API。這些編程語言包括C、C+、Eiffel、Java、Perl、PHP、Python 和 Ruby 等。支持多線程充分利用 CPU 資源。優(yōu)化的 SQL 查詢算法,有效地提高查詢速度。既能夠作為一個單獨的應用程序應用在客戶端服務器網絡環(huán)境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的 GB2312、BIG5 都可
20、以用作數據表名和數據列名。提供TCP/IP、ODBC 和 JDBC 等多種數據庫連接途徑。提供用于管理、檢查、優(yōu)化數據庫操作的管理工具。可以處理擁有上千萬條記錄的大型數據庫。MySQL 的應用:與其他的大型數據庫例如 Oracle、DB2、SQL Server 等相比,MySQL 自有它的不足之處,如規(guī)模小、功能有限(MySQL Cluster 的功能和效率都相對比較差)等,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,MySQL 提供的功能已經綽綽有余,而且由于 MySQL 是開放源碼軟件,因此可以大大降低總體成本。2 2. .1 1. .3 3 T To om
21、mc ca at tTomcat 很受廣大程序員的喜歡,因為它運行時占用的 系統資源小,擴展性好,支持負載平衡與郵件服務等開發(fā)應用系統常用的功能;而且它還在不斷的改進和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。 Tomcat 是一個輕量級應用 服務器,在中小型系統和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調試 JSP 程序的首選。對于一個初學者來說,可以這樣認為,當在一臺機器上配置好 Apache 服務器,可利用它響應對 HTML 頁面的訪問請求。實際上 Tomcat 部分是 Apache 服務器的擴展,但它是獨立運行的,所以當你運行 tomcat 時,它實際上作
22、為一個與 Apache 獨立的進程單獨運行的。 這里的訣竅是,當配置正確時, Apache 為 HTML 頁面服務,而 Tomcat 實際上運行 JSP 頁面和 Servlet。另外,Tomcat 和 IIS、Apache 等 Web 服務器一樣,具有處理 HTML 頁面的功能,另外它還是一個 Servlet 和 JSP 容器,獨立的Servlet 容器是 Tomcat 的默認模式。2.22.2 系統開發(fā)技術與系統開發(fā)技術與 MVCMVC 模式以及基本框架模式以及基本框架本系統采用 JSP 技術,基于 MVC 模式開發(fā),使用 SSH 框架(Struts、Spring、Hibernate)來增加
23、系統的開發(fā)速度。所謂的 MVC 模式是Model-View-Controller的縮寫,中文翻譯為模式-視圖-控制器。程序就是用 Struts 和Hibernate 這兩個框架來實現模型層和控制器這兩層,JSP 實現視圖這一層。一般來說程序就是在數據庫和頁面之間起橋梁作用的,JSP 頁面請求先到 action,再到 Dao,再回到 action,回到 JSP 頁面。action 主要處理來自頁面的請求,Dao 主要是和數據庫的交互,Struts 主要用在 action,處理來自頁面的請求,處理完請求后跳轉回頁面。Hibernate 主要用在 Dao,包括對數據庫的增、刪、改、查的操作,Spri
24、ng 控制程序的流程。S.S.H 框架是 J2EE 應用中 Struts+Spring+Hibernate 三大免費開源框架的結合使用, 它可以看成工具,也是中間件。他是用來提高我們的開發(fā)效率,提高我們軟件產品的可維護性、可擴展性乃至敏捷性的。他們里面有很多優(yōu)秀的設計理念及模式應用。它由以下 3 個框架構成:1.Struts 框架Struts 是 Apache 組織的一個開放源碼項目。Struts 是一個比較好的 MVC 框架,提供了對開發(fā) MVC 系統的底層支持,它采用的主要技術是 Servlet,JSP 和 Custom tag library。2.Spring 框架Spring 的核心是
25、個輕量級(Lightweight)的容器(Container) ,它是實現IoC(Inversion of Control)容器、非侵入性(No intrusive)的框架,并提供AOP(Aspect-oriented programming)概念的實現方式,提供對持久層(Persistence) 、事務(Transaction)的支持,提供 MVC Web 框架的實現,并對一些常用的企業(yè)服務 API(Application Interface)提供一致的模型封裝,是一個全方位的應用程序框架(Application framework) ,除此之外,對于現存的各種框架(Struts、JSF、H
26、ibernate 等) ,Spring 也提供了與它們相整合的方案。3.Hibernate 框架Hibernate 是一個開放源碼的 ORM 持久層框架。作為優(yōu)秀的持久層框架實現,Hibernate 框架提供了強大、高性能的對象到關系型數據庫的持久化服務,開發(fā)人員可以使用面向對象的設計進行持久層開發(fā)。簡單的說,Hibernate 只是一個將持久化類與數據庫表相映射的工具,每個持久化類實例均對應于數據庫表中的一個數據行而已。用戶只需直接使用面向對象的方法操作此持久化類實例,即可完成對數據庫表數據的插入、刪除、修改、讀取等操作。2.32.3 B/SB/S 體系結構體系結構在 B/S 體系結構系統中
27、,用戶通過瀏覽器向分布在網絡上的許多服務器發(fā)出請求,服務器對瀏覽器的請求進行處理,將用戶所需信息返回到瀏覽器。 B/S 結構簡化了客戶機的工作,客戶機上只需配置少量的客戶端軟件。服務器將擔負更多的工作,對數據庫的訪問和應用程序的執(zhí)行將在服務器上完成。瀏覽器發(fā)出請求,而其余如數據請求、加工、結果返回以及動態(tài)網頁生成等工作全部由Web Server 完成。實際上B/S 體系結構是把二層 C/S 結構的事務處理邏輯模塊從客戶機的任務中分離出來,由Web 服務器單獨組成一層來負擔其任務,這樣客戶機的壓力減輕了,把負荷分配給了Web 服務器。這種三層體系結構如圖2.2 所示。Browse 瀏覽器Web
28、服務器數據庫圖 2.2 B/S 三層架構示意圖這種結構不僅把客戶機從沉重的負擔和不斷對其提高的性能的要求中解放出來,也把技術維護人員從繁重的維護升級工作中解脫出來。由于客戶機把事務處理邏輯部分分給了功能服務器,使客戶機一下子苗條了許多,不再負責處理復雜計算和數據訪問等關鍵事務,只負責顯示部分,所以維護人員不再為程序的維護工作奔波于每個客戶機之間,而把主要精力放在功能服務器上程序的更新工作。這種三層結構在層與層之間相互獨立,任何一層的改變不會影響其它層的功能。 3 3 系統需求分析系統需求分析3.13.1 系統的開發(fā)目標系統的開發(fā)目標現在流行的網上購物系統不僅要有漂亮的網頁,更要有嚴謹的規(guī)劃,注
29、重每一個細小的環(huán)節(jié)。這樣才能使得在電子交易時避免不必要錯誤發(fā)生。我們將使用 HTML、JSP等技術來編輯網頁,并運用 JDBC 技術把數據庫和動態(tài)網頁相關聯。傳統的管理信息系統信息獲取方法是由專業(yè)文字錄入人員將信息輸入到管理系統的數據庫中,這種方法在數據量不大時有很多的應用場合。當數據量比較大,并且有較強的專業(yè)性時,錄入的費用和出錯的可能性都相應上升。本設計在實際應用中的解決方案是建立網站, 以及自己的數據庫,使得所需商品信息可以及時的保存、更新,可以更好的及時了解商品買賣的情況。3.23.2 網站的可行性分析網站的可行性分析可行性分析是在全面調查基礎上,針對新系統的開發(fā)是否具備必要性和可能性
30、,對新系統的開發(fā)從技術、經濟、運行的方面進行分析和研究,以避免投資失誤,保證新系統開發(fā)成功。可行性研究的目的就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。這部分將從以下三個方面進行研究:技術可行性、經濟可行性、操作可行性。(1)技術可行性因為計算機硬件的發(fā)展已經越來越快,現在 PC 機的性能已經可以勝任普通網站的web 服務器。購買一臺高性能 PC 機作為企業(yè)的網站對于這個營銷商來說并不是問題。JSP 是 Java 在 Internet/Intranet Web 上的重要應用技術,可以和各種 Java 技術完好的結合在一起從而實現非常復雜的應用。因此得到了廣泛的支持和承認,成為一種非
31、常流行的網站開發(fā)技術。利用 JSP 技術可以建立先進、安全和跨平臺的動態(tài)網站。鑒于 JSP 技術的成熟與廣泛的使用,加以指導老師的幫助可以得到很多的技術支持。雖然在校學習數據庫時一直以 SQL Server 作為例子,但是我個人對 MySQL 數據庫的了解偏多,所以采用 MySQL 作為數據庫的后臺。(2)經濟可行性根據調查的資料,現在聘用一支團隊設計并建設企業(yè)商務型網站的費用為 5300 元左右,另外每年交納 600 元占用網站空間和網站維護費。為了使網站建成后能達到增加企業(yè)經濟效益的效果,尋找一支創(chuàng)新與技術優(yōu)秀的團隊最多需要增加 3000 元的一次性投資。這樣看來一個成功的網站建成后為這個
32、營銷商帶來的效益將會遠大于成本。但架設好一個網絡中的服務器,以滿足互聯網中瀏覽者對速度的需求,這樣每年服務器與網絡線路和設備的維護費用將是企業(yè)不得不重點考慮的因素。如何做好經濟可行性分析,需要通過仔細的調查與投資和行業(yè)方面的專業(yè)人士分析。(3)操作可行性如今,計算機與網絡已經非常地普及。特別是在企業(yè)信息化高需求與快速發(fā)展的時代,計算機應用已經成為企業(yè)員工必備的技能。由于這個課題是以 PC 機作為服務器的網站,營銷商可以自己對網站進行操作和管理。3.33.3 系統的功能分析系統的功能分析根據上面的需求分析,需要設計出網站的前臺與后臺。用戶在前臺所瀏覽的內容,網站的后臺需要能相應的做出更新或修改。
33、前臺功能:提供用戶的注冊和登錄功能。用戶能夠隨意瀏覽商品,包括使用搜索功能和使用排行榜功能,方便用戶獲取商品的詳細信息,如圖片預覽、商品描述??梢圆樵円约按_認訂單信息。登錄用戶可以使用購物車,可以對購物車中的商品進行修改,包括修改商品的數量,刪除商品和回復商品。可以編輯訂單信息,最后生成訂單。后臺功能:管理員可以配置一些信息管理本網站。管理員可以管理商品??梢怨芾碛唵涡畔ⅲㄓ唵螤顟B(tài)的修改,訂單的刪除??梢怨芾碛脩舻男畔ⅲㄓ脩舻膭h除。設計完成后的網站具有:建成后的網站系統是一個綜合性電子商務網站,基本完成了商城及用戶對網站的要求。4 4 系統系統概要設計概要設計4.4.1 1 系統功能模
34、塊設計系統功能模塊設計1)功能結構圖如圖 4.1 所示。系統前臺用戶后臺管理注冊登錄商品瀏覽收貨地址管理購物車功能用戶信息商品評價商品分類管理商品管理會員管理商品評價管理統計管理圖 4.1 功能結構圖從圖中可以看出,網上購物系統可以分為前臺和后臺兩個部分,前臺部分由用戶使用,主要包括注冊登錄、商品瀏覽、購物車功能、添加修改用戶信息、商品評價、收貨地址管理 6 個模塊;后臺部分由管理員使用,主要包括商品分類管理、商品管理、會員管理、商品評價管理、統計管理 5 個模塊。2)前臺購物流程圖如圖 4.2 所示。瀏覽商品選擇商品訂購商品去購物車去收銀臺提交訂單未注冊用戶已登錄注冊用戶未登錄注冊用戶注冊登
35、錄圖 4.2 前臺購物流程圖3)注冊功能流程如圖 4.3 所示。接受注冊信息開始查詢數據庫注冊成功數據是否為空密碼是否一致用戶名是否存在注冊失敗結束是是否否否是圖 4.3 注冊功能流程圖注冊的具體實現為:點擊主頁面的用戶注冊選項后,會彈出一個注冊信息頁面,用戶需要如實填寫用戶名,密碼,E_mail,地址,電話,真實姓名等各項信息,提交后,系統進行檢測判斷該用戶名是否已經注冊過,如果已經存在則彈出新頁面,提示用戶該用戶名已經注冊過,如果沒有則進行下一步判斷用戶輸入的兩次密碼是否一致,然后依次往后判斷用戶所填寫的各項信息是否符合要求,直到所有信息均正確無誤,系統將該用戶注冊信息寫入用戶表并提示用戶
36、注冊成功,用戶登陸后,就可以進行有效的進行購物了。4)商品搜索流程如圖 4.4 所示。開始搜索輸入條件搜索結果繼續(xù)搜索查看商品購物車下訂單圖 4.4 商品搜索流程圖商品的搜索功能使用戶更加方便的進行自己所需要的商品的查詢,節(jié)省時間,提高效率。用戶搜索時只要輸入商品的關鍵字就能搜索到所有相關的商品。5)用戶登錄流程如圖 4.5 所示。開 始結 束接收登錄信息查詢數據庫數據是否正確否是登錄失敗登錄成功圖 4.5 用戶登陸流程圖首先,用戶要有一個用戶名和密碼。商務網站需要很高的穩(wěn)定性和安全性,因此對用戶名不允許使用惡意的代碼作為用戶名。同時對密碼也要求保密,將密碼加密后再存入數據庫。另外,一個電子商
37、務網站。用戶的真實姓名是必不可少的。除此之外還需要用戶地址、E-MAIL、手機、QQ 等。6)商品管理流程如圖 4.6 所示。商品管理查詢商品添加商品修改刪除滿意返回否是 圖 4.6 商品管理流程圖在該功能模塊里管理員可以添加和刪除商品,在這里管理員當然也可以瀏覽到商品的詳細信息。并且比普通用戶在瀏覽商品界面里所看到的商品信息多一個該商品在數據庫中的編碼。7)購物車流程如圖4.7 所示。購物車查看商品調整商品下訂單滿意嗎?是否圖 4.7 購物車流程圖在該功能模塊里用戶可以查看購物車中的商品,如果用戶對所添加的商品感到滿意,可以直接下訂單;如果不滿意,可以刪除該商品。4.24.2 數據庫設計數據
38、庫設計4 4. .2 2. .1 1 數數據據庫庫需需求求分分析析數據庫的設計通常是以一個已經存在的數據庫管理系統為基礎的,常用的數據庫管理系統有 MySQL,SQL Server, Oracle 等。我采用了 MYSQL 數據庫管理系統。整個系統功能需要以下數據項:地址表信息(地址編碼、地址、關聯的用戶編碼)用戶表信息(用戶編碼、用戶名、地址、添加時間、答案、郵箱、密碼、聯系方式、QQ、真實姓名、是否刪除標志、問題)商品表信息(商品編碼、商品名、添加時間、熱銷推薦、商品圖片、商品簡介、庫存數量、原價、優(yōu)惠價、商品是否刪除標志、銷量、關聯的分類編碼)分類表信息(分類編碼、分類名、是否刪除標志)
39、購物車表信息(購物車編碼、商品名、庫存、原價、優(yōu)惠價、數量、關聯的用戶編碼)訂單表信息(訂單編碼、地址、添加時間、聯系方式、訂單狀態(tài)、總價格、用戶名、關聯的用戶編碼)評價表信息(評價編碼、評價、添加時間、評價狀態(tài)、評語、關聯的商品編碼、關聯的用戶編碼)4 4. .2 2. .2 2 數數據據庫庫結結構構設設計計在建設網站系統之前,我們必須對系統所用到的數據進行大致的分類和具體的結構設計,既要做到清晰明了,又要能適應系統各項功能的調用,而不至于產生結構上的邏輯混亂,保證關鍵數據在意外情況下不會被破壞,可以說數據庫是系統的重中之重。數據庫設計要遵循一些規(guī)則,一個好的數據庫滿足一些嚴格的約束和要求。
40、盡量分離各實體對應的表,一個實體對應一個表,搞清楚該實體有哪些屬性,對應有些什么字段,以及各實體之間有何種聯系。實體、屬性與聯系是進行概念設計時要考慮的三個元素,也是一個好的數據庫設計的核心。地址表如表 4.1 所示。表 4.1 地址表字段字段名稱字段類型允許為空備注Id地址編號Bigint(20)否主鍵Dizhi地址Varchar(255)否地址userid關聯的用戶編碼Bigint(20)是外鍵用戶表如表 4.2 所示。表 4.2 用戶表字段字段名稱字段類型允許為空備注Id用戶編碼Bigint(20)否主鍵Username用戶名Varchar(255)否Address地址Varchar(2
41、55)否Createtime添加時間Int(11)是Daan答案Varchar(255)否Email郵箱Varchar(255)否Password密碼Varchar(255)否Phone聯系方式Varchar(255)否QQQQVarchar(255)否Truename真實姓名Varchar(255)否userlock是否刪除標志0:未刪除,1:刪除Int(11)否wenti問題Varchar(255)否商品表如表 4.3 所示。表 4.3 商品表字段字段名稱字段類型允許為空備注Id商品編碼Bigint(20)否主鍵Name商品名Varchar(255)否Createtime添加時間Datet
42、ime否Imgpath商品圖片Varchar(255)否Info商品簡介Text是Kucun庫存數量Int(11)否Hot熱銷推薦Int(11)否Price1原價double否Price2優(yōu)惠價double否productlock是否刪除標志,0:未刪除,1:刪除Int(11)否Xiaoliang銷量Int(11)是cateid關聯的分類編碼Bigint(20)是外鍵分類表如表 4.4 所示。表 4.4 分類表字段字段名稱字段類型允許為空備注Id分類編碼Bigint(20)否主鍵catename分類名Varchar(255)是Catelock是否刪除標志,0:未刪除,1:刪除Int(11)否購
43、物車表如表 4.5 所示。表 4.5 購物車表字段字段名稱字段類型允許為空備注Id購物車編號Bigint(20)否主鍵name商品名Varchar(255)否Kucun庫存數量Int(11)否Price1原價double否Price2優(yōu)惠價double否Totalprice數量Double(20)否productlock是否刪除標志,0:未刪除,1:刪除Int(11)否userid關聯的用戶編碼Bigint(20)是外鍵訂單表如表 4.6 所示。表 4.6 訂單表字段字段名稱字段類型允許為空備注Id訂單編碼Bigint(20)否主鍵Address地址Varchar(255)否Createtim
44、e添加時間datetime否Phone聯系方式Varchar(255)否Status訂單狀態(tài)Int(11)否Totalprice總價格Varchar(255)否Username用戶名Varchar(255)否userid關聯的用戶編碼Bigint(20)否,外鍵評價表如表 4.7 所示。表 4.7 評價表字段字段名稱字段類型允許為空備注Id評價編碼Bigint(20)否主鍵Pingjia評價Varchar(255)否Createtime添加時間Datetime否Pingjiastatus評價狀體Int(11)是Pingyu評語Varchar(255)否Productid關聯的商品編碼Bigin
45、t(20)否外鍵userid關聯的用戶編碼Bigint(20)否外鍵5 5 系統詳細設計系統詳細設計5.15.1 系統功能實現的主要架構系統功能實現的主要架構5 5. .1 1. .1 1 S SS SH H 框框架架SSH 框架就是 Struts+Spring+Hibernate 的簡稱,運用 3 個框架的集成協作使用,可以有效的提高代碼編寫的效率,從而有效的降低程序開發(fā)的周期。5 5. .1 1. .2 2 h hi ib be er rn na at te e 配配置置文文件件trueDBPoolproxool.xmlorg.hibernate.connection.ProxoolCon
46、nectionProvidercom.mysql.jdbc.Drivertruetrueorg.hibernate.dialect.MySQLDialectthreadupdate這是Hibernate的配置文件,在該文件中proxool.xml首先加載了連接池的一個配置,就是加載了數據庫的連接信息,truetrue表示控制臺打印SQL語句,并格式化SQL語句。org.hibernate.dialect.MySQLDialect表示當前數據庫的語言是 MySQL。5 5. .1 1. .3 3 s st tr ru ut ts s 配配置置文文件件index.jspproduct.jspcar
47、tadd.jspfail.jspcartaddfail2.jsp這是 struts 的配置文件的部分內容,該文件的作用主要起到來自 JSP 的請求的跳轉分配的作用,把的請求分配到對應的 action 里面去,同時定義返回的的 JSP 頁面。5 5. .1 1. .4 4 s sp pr ri in ng g 配配置置文文件件Spring 在本項目中主要用到了 IOC 的功能,就是把對象實例化本段代碼是把DAO實例化的代碼,通過spring的IOC模式。5.25.2 系統各功能模塊的實現系統各功能模塊的實現5 5. .2 2. .1 1 用用戶戶登登錄錄模模塊塊的的實實現現網站主頁面如圖 5.1
48、 所示。圖 5.1 網站主頁面代碼如下:public String index() throws ExceptionHttpServletRequest request = ServletActionContext.getRequest();request.setAttribute(topcatelist, cs.getAllTopCate();String cid = request.getParameter(cid);int currentpage = 1;int pagesize = 6;if(request.getParameter(pagenum)!=null)currentpage
49、= Integer.parseInt(request.getParameter(pagenum);if(request.getParameter(searchname)!=null &!.equals(request.getParameter(searchname)String keyword = .URLDecoder.decode(request.getParameter(searchname), utf-8);String searchname = .URLEncoder.encode(request.getParameter(searchname), utf-8);int to
50、tal = ps.getProductCountByKeyword(keyword);request.setAttribute(hotprolist,ductFormate(ps.getProductByKeyword(currentpage-1)*pagesize,6,keyword);/熱門商品列表request.setAttribute(pagerinfo, Pager.getPagerNormal(total, pagesize, currentpage, index?searchname=+searchname,共有+total+件商品 );else if(request
51、.getParameter(qujian1id)!=null)String v = request.getParameter(v);String qujian1id = .URLDecoder.decode(request.getParameter(qujian1id), utf-8);String qujian2id = .URLDecoder.decode(request.getParameter(qujian2id), utf-8);String where = ;if(2.equals(v)where = where price2=+qujian1id+ and price2= +qu
52、jian2id + and productlock=0;int total = ps.selectBeanCount(where);request.setAttribute(hotprolist,ductFormate(ps.selectBeanList(currentpage-1)*pagesize,6,where);/熱門商品列表request.setAttribute(pagerinfo, Pager.getPagerNormal(total, pagesize, currentpage, index?v=+v+&qujian1id=+qujian1id+&q
53、ujian2id=+qujian2id,共有+total+件商品 );else if(cid=null)int total = ps.getAllHotProductNum();request.setAttribute(hotprolist,ductFormate(ps.getAllHotProduct(currentpage-1)*pagesize,6);/熱門商品列表request.setAttribute(pagerinfo, Pager.getPagerNormal(total, pagesize, currentpage, .,共有+total+件商品);elseint
54、total = ps.getProductByCateidCount(Long.parseLong(cid);request.setAttribute(hotprolist,ductFormate(ps.getProductByCateid(currentpage-1)*pagesize,6,Long.parseLong(cid);/熱門商品列表request.setAttribute(pagerinfo, Pager.getPagerNormal(total, pagesize, currentpage, index?cid=+cid,共有+total+件商品);request.
55、setAttribute(xiaoliangprolist,ductFormate(ps.getAllXiaoLiangProduct(0, 15);/銷量排行商品列表return success;本段代碼是主頁面代碼,通過 productDao.selectBeanList方法從數據庫中取出各種商品的信息,同時提供搜索菜單等功能,最后通過return success;返回到struts.xml對應的JSP文件。用戶登陸模塊是防止非法用戶登陸的第一道防線,通過它可以保護后臺數據庫的安全性,當用戶要進行定購時,首先要進入的就是身份驗證界面,只有在密碼正確的情況下才能進行以后的購物,如
56、果輸入的密碼不正確,則不能進行定購。如果用戶以瀏覽者的身份進入網站,則只能進行一般的商品瀏覽和搜索,而不能進行選購,在點擊添加購物車后,系統會判斷該用戶是否是登陸用戶,如果不是則彈出提示頁面,提示用戶必須先登陸才能定購商品,如果是第一次登陸,請先注冊。如果用戶還沒有進行注冊,用戶提交信息之后,系統開始判斷用戶的注冊信息是否有效,首先是用戶名是否為空,用戶輸入的兩次密碼是否一致,然后依次往后判斷用戶所填寫的各項信息是否符合要求,直到所有信息均正確無誤,系統將該用戶注冊信息寫入用戶表并提示用戶注冊成功,用戶登陸后,就可以進行有效的購物了。注冊頁面的效果圖如下圖 5.2 所示。圖 5.2 用戶注冊頁
57、面代碼如下。public void register() throws ExceptionHttpServletRequest request = ServletActionContext.getRequest();HttpServletResponse response = ServletActionContext.getResponse();user = new User();user.setUsername(.URLDecoder.decode(request.getParameter(username), utf-8);user.setPassword(request.getParam
58、eter(password);user.setTruename(.URLDecoder.decode(request.getParameter(truename), utf-8);user.setAddress(.URLDecoder.decode(request.getParameter(address), utf-8);user.setPhone(.URLDecoder.decode(request.getParameter(phone), utf-8);user.setEmail(.URLDecoder.decode(request.getParameter(email), utf-8)
59、;user.setQq(.URLDecoder.decode(request.getParameter(qq), utf-8);user.setWenti(.URLDecoder.decode(request.getParameter(wenti), utf-8);user.setDaan(.URLDecoder.decode(request.getParameter(daan), utf-8);user.setCreatetime(new Date();int result = us.register(user);if(result=1)response.setCharacterEncodi
60、ng(utf-8);response.getWriter().write(注冊新用戶成功!您的用戶名+user.getUsername()+,請妥善保管!);elseresponse.setCharacterEncoding(utf-8);response.getWriter().write(該用戶名已經存在,請重新注冊!);用戶注冊成功后可以登錄,登錄頁面如圖5.3所示。圖5.3用戶登錄頁面代碼如下:public String login() throws IOExceptionHttpServletRequest request = ServletActionContext.getRequest();User
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車維修工資格考試重要知識試題及答案
- 普通手術護理工作規(guī)范
- 汽車發(fā)動機頻繁故障的原因分析試題及答案
- 江西省景德鎮(zhèn)市2021-2022學年高一下學期期中生物試卷(含答案)
- 利用網絡資源備考2024年汽車維修工考試的策略與試題及答案
- 育才中學數學試題及答案
- 校園地面彩繪課件
- 小學一年級語文試題前瞻及答案
- 小學六年級語文考前模擬試題及答案
- 2024年語文考試真題試題及答案
- 國省道交通安全隱患排查治理手冊
- 《豐田生產方式》課件
- 護理中的急性腎損傷護理
- 《大學生心理健康》課程標準
- 一例膿毒性休克的護理查房
- 2024年湖北省中考地理·生物試卷(含答案解析)
- 2024年安徽省高考生物試卷(真題+答案)
- 小學六年級數學奧數題100題附答案(完整版)
- 2024陜西中考數學二輪專題訓練 題型四 尺規(guī)作圖 (含答案)
- 燙傷不良事件原因分析與整改措施
- 1.5 西門子TIA博途軟件的使用入門
評論
0/150
提交評論