基于Java Web SSH框架的網(wǎng)上書店
《基于Java Web SSH框架的網(wǎng)上書店》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于Java Web SSH框架的網(wǎng)上書店(54頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 X X 科 技 大 學(xué) 畢 業(yè) 設(shè) 計(jì)( 論 文 ) 題目 基于Java Web SSH框架的網(wǎng)上書店 作者 學(xué)院 專業(yè) 學(xué)號(hào) 指導(dǎo)教師 2013 年 月 日 X X 科 技 大 學(xué) 畢業(yè)設(shè)計(jì)(論文)任務(wù)書 學(xué)院 系(教研室) 系(教研室)主任: (簽名) 年 月 日 學(xué)生姓名: 學(xué)號(hào): 專業(yè):
2、 1 設(shè)計(jì)(論文)題目及專題: 基于Java Web SSH框架的網(wǎng)上書店 2 學(xué)生設(shè)計(jì)(論文)時(shí)間:自 2013 年 月 日開(kāi)始至 2013 年 月 日止 3 設(shè)計(jì)(論文)所用資源和參考資料: [1] 徐建波 編著 Java Web 應(yīng)用開(kāi)發(fā)原理與技術(shù)[M]. 國(guó)防科技大學(xué)出版社 [2] (美) Y.Daniel Liang 編著 Java 語(yǔ)言程序設(shè)計(jì)進(jìn)階篇[M]. 機(jī)械工業(yè)出版社 [3] 戎偉 猛劼 蘇微 編著 解密J2EE 項(xiàng)目開(kāi)發(fā)的70個(gè)問(wèn)題 [4]
3、 (美) Roger S.Pressman 編著 軟件工程 4 設(shè)計(jì)(論文)應(yīng)完成的主要內(nèi)容: 基于Java Web 三大框架(SSH)技術(shù)開(kāi)發(fā)的網(wǎng)上書店,包括前臺(tái)展示和后臺(tái)管理兩個(gè)部分;其中前臺(tái)展示包括登陸模塊、注冊(cè)模塊、首頁(yè)展示、圖書展示、圖書購(gòu)買、產(chǎn)生訂單;后臺(tái)管理包括廣告管理模塊、用戶管理模塊、圖書管理模塊、訂單管理模塊。 5 提交設(shè)計(jì)(論文)形式(設(shè)計(jì)說(shuō)明與圖紙或論文等)及要求: (1)論文思路清晰,條理清楚,中心突出,內(nèi)容充實(shí),論據(jù)充分,結(jié)構(gòu)緊湊,層次分明,圖表清晰,格式規(guī)范,結(jié)論正確;按《湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文)要求與規(guī)范》編排、打印文稿; (2)上交論文(
4、紙質(zhì))打印文稿和系統(tǒng)源碼(電子版); 6 發(fā)題時(shí)間: 年 月 日 指導(dǎo)教師: (簽名) 學(xué) 生: (簽名) X X 科 技 大 學(xué) 畢業(yè)設(shè)計(jì)(論文)指導(dǎo)人評(píng)語(yǔ) [主要對(duì)學(xué)生畢業(yè)設(shè)計(jì)(論文)的工作態(tài)度,研究?jī)?nèi)容與方法,工作量,文獻(xiàn)應(yīng)用,創(chuàng)新性,實(shí)用性,科學(xué)性,文本(圖紙)規(guī)范程度,存在的不足等進(jìn)行綜合評(píng)價(jià)] 指導(dǎo)人:
5、 (簽名) 年 月 日 指導(dǎo)人評(píng)定成績(jī): X X 科 技 大 學(xué) 畢業(yè)設(shè)計(jì)(論文)評(píng)閱人評(píng)語(yǔ) [主要對(duì)學(xué)生畢業(yè)設(shè)計(jì)(論文)的文本格式、圖紙規(guī)范程度,工作量,研究?jī)?nèi)容與方法,實(shí)用性與科學(xué)性,結(jié)論和存在的不足等進(jìn)行綜合評(píng)價(jià)] 評(píng)閱人: (
6、簽名) 年 月 日 評(píng)閱人評(píng)定成績(jī): X X 科 技 大 學(xué) 畢業(yè)設(shè)計(jì)(論文)答辯記錄 日期: 學(xué)生: 學(xué)號(hào): 班級(jí): 題目:
7、 提交畢業(yè)設(shè)計(jì)(論文)答辯委員會(huì)下列材料: 1 設(shè)計(jì)(論文)說(shuō)明書 共 頁(yè) 2 設(shè)計(jì)(論文)圖 紙 共 頁(yè) 3 指導(dǎo)人、評(píng)閱人評(píng)語(yǔ) 共 頁(yè) 畢業(yè)設(shè)計(jì)(論文)答辯委員會(huì)評(píng)語(yǔ): [主要對(duì)學(xué)生畢業(yè)設(shè)計(jì)(論文)的研究思路,設(shè)計(jì)(論文)質(zhì)量,文本圖紙規(guī)范程度和對(duì)設(shè)計(jì)(論文)的介紹,回答問(wèn)題情況等進(jìn)行綜合評(píng)價(jià)] 答辯委員會(huì)主任: (簽名) 委員: (簽名) (簽名) (簽名) (簽名)
8、 答辯成績(jī): 總評(píng)成績(jī): 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 摘 要趕快寫英文摘要,明天寫完發(fā)給我改 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,網(wǎng)上購(gòu)物越來(lái)越流行,而網(wǎng)上書店更是逐漸受到越來(lái)越多的人關(guān)注,不用涉及交通、不用到書店翻閱、即可看到全國(guó)各地的書籍價(jià)格、更加全面地搜索自己喜歡的書籍、需要的書籍。通過(guò)網(wǎng)絡(luò)銷售系統(tǒng)的平臺(tái),商家將擁有更大的市場(chǎng),能更加及時(shí)快速地得到用戶對(duì)于商品的反響,可以隨時(shí)調(diào)整銷售策略
9、,提高商家的市場(chǎng)競(jìng)爭(zhēng)力。對(duì)于消費(fèi)者也提供了方便,消費(fèi)者可以不受時(shí)間和地域的限制進(jìn)行購(gòu)物,并且可以獲取更多信息.。 本文闡述了如何構(gòu)建基于B/S 架構(gòu),以O(shè)racle數(shù)據(jù)庫(kù)為基礎(chǔ),應(yīng)用Java Web SSH框架的網(wǎng)上書店,系統(tǒng)主要完成以下基本的功能:主要是前臺(tái)展示和后臺(tái)管理兩個(gè)部分;其中前臺(tái)展示包括登陸模塊、注冊(cè)模塊、首頁(yè)展示、圖書展示、圖書購(gòu)買、產(chǎn)生訂單;后臺(tái)管理包括廣告管理模塊、用戶管理模塊、圖書管理模塊、訂單管理模塊。 本次課題主要采用java語(yǔ)言作為程序的開(kāi)發(fā)語(yǔ)言,采用Oracle數(shù)據(jù)庫(kù)作為數(shù)據(jù)庫(kù),MyEclipse6.5作為開(kāi)發(fā)工作,運(yùn)用PowerDesigner作為數(shù)據(jù)庫(kù)建模工
10、具,運(yùn)用的知識(shí)還有JavaScript ,CSS, HTML 等知識(shí)。 這兩段修改如下: 本文闡述了如何構(gòu)建基于B/S 架構(gòu),以O(shè)racle數(shù)據(jù)庫(kù)為基礎(chǔ),應(yīng)用Java Web SSH框架的網(wǎng)上書店,系統(tǒng)主要完成以下基本功能:前臺(tái)包括注冊(cè)與登陸、圖書展示、圖書購(gòu)買、訂單產(chǎn)生;后臺(tái)管理包括廣告管理、用戶管理、圖書管理、訂單管理。 本次課題設(shè)計(jì)采用的開(kāi)發(fā)語(yǔ)言是java,數(shù)據(jù)庫(kù)是Oracle,開(kāi)發(fā)工具是MyEclipse6.5,數(shù)據(jù)庫(kù)建模工具是PowerDesigner,此外還運(yùn)用了JavaScript ,CSS, HTML 等知識(shí)。 關(guān)鍵字:SSH框架;java;網(wǎng)上書店;B/S 架
11、構(gòu); 目 錄 第一章 引言 - 1 - 1.1 項(xiàng)目背景 - 1 - 1.2 項(xiàng)目目的 - 1 - 1.3 主要內(nèi)容 - 2 - 第二章 系統(tǒng)理論和技術(shù) - 3 - 2.1 MyEclipse 的簡(jiǎn)介 - 3 - 2.2 SSH框架的簡(jiǎn)介 - 3 - 2.3 B/S架構(gòu)的簡(jiǎn)介 - 5 - 2.3 Java簡(jiǎn)介 - 5 - 2.4 Java Web工程的基本介紹 - 6 - 2.2.1 建立Web工程的基本步驟 - 6 - 2.2.2 Java Web 工程目錄結(jié)構(gòu) - 6 - 2.3 Oracle數(shù)據(jù)庫(kù) - 6 - 2.3.1 Oracle 數(shù)據(jù)庫(kù)簡(jiǎn)介 - 6
12、 - 2.3.2 Oracle數(shù)據(jù)庫(kù)的特點(diǎn) - 6 - 第三章 系統(tǒng)需求分析與設(shè)計(jì) - 8 - 3.1 可行性分析 - 8 - 3.2 功能需求分析 - 8 - 3.3 系統(tǒng)用例模型 - 11 - 3.3.1 普通用戶用例圖 - 11 - 3.3.2 管理員用例圖 - 11 - 3.4 系統(tǒng)體系結(jié)構(gòu) - 12 - 3.5 數(shù)據(jù)庫(kù)設(shè)計(jì) - 13 - 3.3.1 數(shù)據(jù)庫(kù)表E-R圖 - 14 - 3.3.2 數(shù)據(jù)庫(kù)表分析 - 14 - 第四章 系統(tǒng)實(shí)現(xiàn) - 16 - 4.1 搭建開(kāi)發(fā)環(huán)境 - 16 - 4.1.1 安裝開(kāi)發(fā)工具 - 16 - 4.1.2 開(kāi)發(fā)軟件的配
13、置 - 16 - 4.1.3 建立web工程搭建開(kāi)發(fā)框架 - 17 - 4.2 數(shù)據(jù)庫(kù)實(shí)現(xiàn) - 17 - 4.2.1 數(shù)據(jù)庫(kù)表字段設(shè)計(jì) - 17 - 4.2.2 數(shù)據(jù)庫(kù)連接實(shí)現(xiàn) - 20 - 4.3 前臺(tái)主要功能模塊 - 21 - 4.3.1 登陸功能的實(shí)現(xiàn) - 21 - 4.3.2 注冊(cè)功能的實(shí)現(xiàn) - 23 - 4.3.3 首頁(yè)功能實(shí)現(xiàn) - 25 - 4.3.4 圖書瀏覽功能 - 27 - 4.3.5 訂單功能 - 28 - 4.3.6 購(gòu)物車功能 - 30 - 4.10 后臺(tái)管理功能 - 34 - 4.10.1 后臺(tái)管理功能流程 - 34 - 4.10.2 用戶
14、管理 - 35 - 4.10.3 廣告管理 - 37 - 4.10.4 圖書管理 - 38 - 第五章 總結(jié)與問(wèn)題分析 - 41 - 5.1 系統(tǒng)問(wèn)題分析總結(jié) - 41 - 5.2 開(kāi)發(fā)過(guò)程中常見(jiàn)問(wèn)題分析 - 41 - 第六章 總結(jié) - 44 - 參 考 文 獻(xiàn) - 45 - 致 謝 - 46 - - ii - 第一章 引言 1.1 項(xiàng)目背景 隨著網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,越來(lái)越多的人熱衷于上網(wǎng)。隨著用戶的不斷增加,其規(guī)模迅速擴(kuò)大,它的領(lǐng)域也走向多元化。除了原先的科學(xué)技術(shù)和教育外,Internet已進(jìn)入了文化、經(jīng)濟(jì)、政治、新聞、體育、娛樂(lè)、商業(yè)和服務(wù)業(yè)
15、。可以預(yù)見(jiàn)Internet將成為我們構(gòu)筑未來(lái)嶄新的生活方式。[10] 電子商務(wù)就是在這樣一個(gè)背景下產(chǎn)生和發(fā)展起來(lái)的。伴隨著電子商務(wù)技術(shù)的不斷成熟,電子商務(wù)的功能也越來(lái)越強(qiáng)大。書城交易網(wǎng)站就是Internet和電子商務(wù)發(fā)展的產(chǎn)物,近幾年在我國(guó)發(fā)展迅猛,如同一些書店紛紛在各地開(kāi)設(shè)分店以拉近書店與顧客間距離一樣。隨著科學(xué)技術(shù)的飛速發(fā)展,Internet已經(jīng)成了普通百姓都可以初級(jí)的大中型媒體傳播手段。隨著現(xiàn)今全民素質(zhì)和科學(xué)技術(shù)水平的不斷提高,知識(shí)更新的越來(lái)越快。人們隨時(shí)都會(huì)有被淘汰的危機(jī),為了不讓社會(huì)淘汰,做到與時(shí)俱進(jìn)就必須多讀書不斷學(xué)習(xí)。21世紀(jì)是網(wǎng)絡(luò)的時(shí)代、信息的時(shí)代,時(shí)間是非常的寶貴的。人們由
16、于種種原因沒(méi)有時(shí)間到書店去,也不知道哪家書店有自己需要的書籍,同時(shí)那些傳統(tǒng)書店的經(jīng)營(yíng)者又沒(méi)什么好的方法讓人們知道我這就有顧客需要的書籍,這種買賣雙方之間交流上的阻礙成為“網(wǎng)上書店”網(wǎng)站發(fā)展的原動(dòng)力。網(wǎng)上書店的出現(xiàn)可以更好地解決這方面的問(wèn)題。[11] 網(wǎng)上書店在價(jià)格、時(shí)效性、品種、查詢方式等方面都有優(yōu)勢(shì)。網(wǎng)上書店是一種直銷方式,速度和價(jià)格上都有優(yōu)勢(shì),在價(jià)格上一般網(wǎng)上書店都有7.5-9折的折扣,如果是特價(jià)書折扣就更多了,網(wǎng)上書店的書目數(shù)據(jù)是任何訂購(gòu)書目都無(wú)法比擬的,亞馬遜網(wǎng)上書店有300多萬(wàn)種圖書,另外還有音樂(lè)系列產(chǎn)品和其它教育產(chǎn)品,剛剛成立的北京圖書大廈網(wǎng)上書店也有16萬(wàn)種書目數(shù)據(jù),“中國(guó)尋書
17、網(wǎng)”目前也有50萬(wàn)種書籍,年度將突破100萬(wàn)種圖書,網(wǎng)上書店的書目除書名,著者,價(jià)格等信息外,還有封面,內(nèi)容簡(jiǎn)介,目次,評(píng)論等詳細(xì)信息。同時(shí)網(wǎng)上書店的目錄查詢功能也是傳統(tǒng)的按某種分類規(guī)則編排的圖書征訂目錄無(wú)法比擬的,其以關(guān)鍵詞或主題從網(wǎng)上檢索某類文獻(xiàn),查準(zhǔn)率與查全率都有一定的保障。另外還有一些書更是以網(wǎng)站包銷或總代理的形式進(jìn)行銷售,這就意味著一種全新的電子商務(wù)模式的開(kāi)始。[10] 1.2 項(xiàng)目目的 隨著網(wǎng)絡(luò)信息技術(shù)的高速發(fā)展,電子商務(wù)迅速發(fā)展。網(wǎng)上購(gòu)物越來(lái)越流行。注冊(cè)用戶可以在網(wǎng)上搜索購(gòu)買到自己想要的各種商品,讓人們體會(huì)到了足不出戶,便可隨意購(gòu)物的快感。而書籍作為一種文化的載體、智慧的結(jié)晶
18、,一直是人們生活中必需的物品。由于書籍本身不像其他商品一樣,存在多種必需當(dāng)面檢查質(zhì)量。因此網(wǎng)上書店是發(fā)展的最迅速的。網(wǎng)上書店在價(jià)格、時(shí)效性、品種、查詢方式等方面都有優(yōu)勢(shì)。因此開(kāi)發(fā)一個(gè)網(wǎng)上書店是很有必要的。 隨著Java Web技術(shù)的發(fā)展,Java 語(yǔ)言尤其擅長(zhǎng)B/S機(jī)構(gòu)的系統(tǒng)開(kāi)發(fā)。本次課題采用J2EE SSH框架 集合JSP、JavaScript、CSS、HTML等知識(shí)聯(lián)合設(shè)計(jì)。主要的目的是:針對(duì)目前較流行的框架技術(shù)進(jìn)行一定的了解和熟悉。體會(huì)框架開(kāi)發(fā)Web應(yīng)用程序的好處。掌握Struts框架實(shí)現(xiàn)MVC模式結(jié)構(gòu)清晰,開(kāi)發(fā)者只關(guān)注業(yè)務(wù)邏輯的實(shí)現(xiàn)的優(yōu)點(diǎn)。熟悉掌握Hibernate框架對(duì)于數(shù)據(jù)庫(kù)操作
19、的基本方法和步驟,體會(huì)代碼冗余時(shí)的復(fù)雜,熟悉hibernate基本編程步驟,了解數(shù)據(jù)庫(kù)表和實(shí)體類一一對(duì)應(yīng)的基本編程思想。掌握Spring框架的反轉(zhuǎn)控制思想(Inverse Of Control) 和工程設(shè)計(jì)模式。掌握基本的XML 文件的配置,學(xué)會(huì)CSS+JS+JSP開(kāi)發(fā)B/S結(jié)構(gòu)模式的瀏覽器程序。通過(guò)本次課題的研究達(dá)到對(duì)于現(xiàn)在主流框架技術(shù)有一點(diǎn)的了解,懂得如何開(kāi)發(fā)B/S架構(gòu)的應(yīng)用程序,對(duì)于現(xiàn)在網(wǎng)上書店系統(tǒng)業(yè)務(wù)流程有一點(diǎn)的認(rèn)知。進(jìn)一步推廣網(wǎng)上書店的發(fā)展。 1.3 主要內(nèi)容 近年來(lái),隨著Internet技術(shù)的迅猛發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)給人們的工作、學(xué)習(xí)和日常生活帶來(lái)很大的便利,同時(shí)開(kāi)發(fā)Web的技術(shù)也
20、在不斷更新,框架技術(shù)日趨成熟,特別是B/S架構(gòu)的提出,使得框架技術(shù)在B/S架構(gòu)系統(tǒng)上的優(yōu)勢(shì)尤為突出。本課題采用SSH框架結(jié)合Servlet、JavaScript、JSP、XML 等技術(shù),基于B/S結(jié)構(gòu)開(kāi)發(fā)的網(wǎng)上書店系統(tǒng),主要就是框架技術(shù)的應(yīng)用,掌握如何結(jié)合數(shù)據(jù)庫(kù)知識(shí)和框架技術(shù)開(kāi)發(fā)出高效、簡(jiǎn)潔、省事的系統(tǒng)。 本論文具體章節(jié)安排如下: 第一章:引言。介紹課題研究的背景和目的。 第二章:系統(tǒng)開(kāi)發(fā)相關(guān)的概念和理論以及技術(shù)。 第三章:系統(tǒng)分析和設(shè)計(jì)。 第四章:系統(tǒng)的實(shí)現(xiàn)。該部分是該課題的核心部分,包括開(kāi)發(fā)運(yùn)行環(huán)境構(gòu)建,數(shù)據(jù)庫(kù)實(shí)現(xiàn)以及根據(jù)需求分析和技術(shù)分析來(lái)實(shí)現(xiàn)系統(tǒng)的各個(gè)模塊功能,使系統(tǒng)能夠正常
21、運(yùn)行,包括開(kāi)發(fā)過(guò)程中遇到的問(wèn)題記載和分析。 第五章:總結(jié)與問(wèn)題分析。對(duì)本課題的重點(diǎn)難點(diǎn)做一個(gè)分析,提出對(duì)本系統(tǒng)需要改進(jìn)與加強(qiáng)的地方。 第六章:結(jié)束語(yǔ)。對(duì)本次課題研究的感想以及學(xué)到的知識(shí)和開(kāi)發(fā)經(jīng)驗(yàn)的一個(gè)總結(jié)和對(duì)后期開(kāi)發(fā)的一個(gè)展望。 - 2 - 第二章 系統(tǒng)理論和技術(shù) 2.1 MyEclipse 的簡(jiǎn)介 MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipse Enterprise Workbench ,簡(jiǎn)稱MyEclipse)是對(duì)EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和JavaEE的開(kāi)發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開(kāi)發(fā)環(huán)
22、境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,JavaScript,Spring,SQL,Hibernate。 MyEclipse 是一個(gè)十分優(yōu)秀的用于開(kāi)發(fā)Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開(kāi)源產(chǎn)品的支持十分不錯(cuò)。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC數(shù)據(jù)庫(kù)鏈接工具等多項(xiàng)功能。可以說(shuō)MyEclipse幾乎囊括了目前所有主流開(kāi)源產(chǎn)品的專屬eclipse開(kāi)發(fā)工具
23、。[1] 2.2 SSH框架的簡(jiǎn)介 SSH框架是指Struts 框架、Spring框架和Hibernate 框架的集成。是目前較為流行的一種Web應(yīng)用程序開(kāi)源框架。集成SSH框架的系統(tǒng)從職責(zé)上分為四層:表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和域模塊層,以幫助開(kāi)發(fā)人員在短期內(nèi)搭建結(jié)構(gòu)清晰、可復(fù)用性好、維護(hù)方便的Web應(yīng)用程序。其中使用Struts作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負(fù)責(zé)MVC的分離,在Struts框架的模型部分,控制業(yè)務(wù)跳轉(zhuǎn),利用Hibernate框架對(duì)持久層提供支持,Spring做管理,管理struts和hibernate。具體做法是:用面向?qū)ο蟮姆治龇椒ǜ鶕?jù)需求提出一些模型,將這些模型實(shí)現(xiàn)為
24、基本的Java對(duì)象,然后編寫基本的DAO(Data Access Objects)接口,并給出Hibernate的DAO實(shí)現(xiàn),采用Hibernate架構(gòu)實(shí)現(xiàn)的DAO類來(lái)實(shí)現(xiàn)Java類與數(shù)據(jù)庫(kù)之間的轉(zhuǎn)換和訪問(wèn),最后由Spring做管理,管理Struts和Hibernate。 Struts 框架:Struts 是一個(gè)基于Sun J2EE平臺(tái)的MVC框架,主要是采用Servlet和JSP技術(shù)來(lái)實(shí)現(xiàn)的。Struts的MVC設(shè)計(jì)模式使我們的邏輯變得很清晰。Struts 對(duì)Model,View和Controller 都提供了對(duì)應(yīng)的組件。ActionServlet,這個(gè)類是Struts的核心控制器,負(fù)責(zé)攔
25、截來(lái)自用戶的請(qǐng)求。Action 這個(gè)類通常由用戶提供,該控制器負(fù)責(zé)接收來(lái)自ActionServlet的請(qǐng)求,并根據(jù)該請(qǐng)求調(diào)用模型的業(yè)務(wù)邏輯方法處理請(qǐng)求,并將處理結(jié)果返回給JSP頁(yè)面顯示。所以Struts是Web框架技術(shù)的基礎(chǔ)控制頁(yè)面的跳轉(zhuǎn)。Struts 框架流程圖: 圖2.1 struts 框架流程圖 Spring 框架:Spring是一個(gè)開(kāi)源框架,它由Rod Johnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來(lái)完成以前只可能由EJB完成的事情。Spring 的反轉(zhuǎn)控制(IOC)和面向切面編程(AOP)思想使我們的軟件最大限度上解耦。S
26、pring 的作用貫穿了整個(gè)中間層,將Web層、Service層、DAO層及PO無(wú)縫整合,其數(shù)據(jù)服務(wù)層用來(lái)存放數(shù)據(jù)。Spring在使用IOC容器作為構(gòu)建所有架構(gòu)層的完整解決方案方面是獨(dú)一無(wú)二的。Spring提供了唯一的數(shù)據(jù)訪問(wèn)抽象,包括簡(jiǎn)單和有效率的JDBC框架,極大的改進(jìn)了效率并且減少了可能的錯(cuò)誤。Spring的數(shù)據(jù)訪問(wèn)架構(gòu)還集成了Hibernate和其他O/R mapping解決方案。Spring還提供了唯一的事務(wù)管理抽象,它能夠在各種底層事務(wù)管理技術(shù),例如JTA或者JDBC事務(wù)提供一個(gè)一致的編程模型。Spring提供了一個(gè)用標(biāo)準(zhǔn)Java語(yǔ)言編寫的AOP框架,它給POJOs提供了聲明式的事
27、務(wù)管理和其他企業(yè)事務(wù)。 Hibernate 框架:Hibernate 框架是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。是用來(lái)解決傳統(tǒng)程序上重復(fù)書寫數(shù)據(jù)庫(kù)連接、數(shù)據(jù)庫(kù)關(guān)閉操作上的代碼冗余的,提高五個(gè)接口來(lái)解決傳統(tǒng)的JDBC操作,分別是Configuration 用來(lái)讀取配置文件hibernate.cfg.xml 獲取連接所需要的參數(shù)。SessionFactory 工廠方法負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session對(duì)象 Session 封裝了基本的增、刪、改、查方法
28、負(fù)責(zé)執(zhí)行被持久化對(duì)象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫(kù)的交流,包含了很多常見(jiàn)的SQL語(yǔ)句。) Transaction 控制事務(wù)提交和回滾。Query負(fù)責(zé)各種數(shù)據(jù)庫(kù)查詢,不僅可以使用SQL語(yǔ)言還提供了HQL查詢語(yǔ)言。這5個(gè)核心接口在任何開(kāi)發(fā)中都會(huì)用到。通過(guò)這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。 2.3 B/S架構(gòu)的簡(jiǎn)介改成“2.3 B/S三層架構(gòu)” B/S 架構(gòu)是指:(Browser/Server)瀏覽器/服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過(guò)WWW瀏覽器來(lái)實(shí)現(xiàn),事務(wù)邏輯的極
29、少部分在前端(Browser)實(shí)現(xiàn),在服務(wù)器端(Server)實(shí)現(xiàn)主要的事務(wù)邏輯,形成所謂三層3-tier結(jié)構(gòu)。相對(duì)于C/S結(jié)構(gòu)的“胖”客戶端,使用者需要在電腦上安裝相應(yīng)的客戶端軟件來(lái)說(shuō),B/S結(jié)構(gòu)是屬于一種“瘦”客戶端,在服務(wù)器端存放大多數(shù)或主要的業(yè)務(wù)邏輯,因此,B/S結(jié)構(gòu)的系統(tǒng)不需要安裝客戶端軟件,它運(yùn)行在客戶端的瀏覽器之上,系統(tǒng)升級(jí)或維護(hù)時(shí)只需更新服務(wù)器端軟件即可,這樣就大大簡(jiǎn)化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶的總體成本(TCO)。 B/S結(jié)構(gòu)系統(tǒng)的產(chǎn)生為系統(tǒng)面對(duì)無(wú)限未知用戶提供了可能。[11] B/S體系結(jié)構(gòu)圖: 圖2.2基于B/S體系結(jié)構(gòu)圖 2
30、.3 Java簡(jiǎn)介是2.4 Java是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。是由Sun Microsystems現(xiàn)在稱Oracle公司于1995年5月推出的Java程序設(shè)計(jì)語(yǔ)言和Java平臺(tái)(即JavaSE,JavaEE,JavaME)的總稱。Java技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開(kāi)發(fā)者專用社群。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢(shì)和廣闊前景[4]。 Java編程語(yǔ)言風(fēng)格十分接近C、C++語(yǔ)言。Java是一個(gè)純的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言
31、,它繼承了 C++ 語(yǔ)言面向?qū)ο蠹夹g(shù)的核心,Java舍棄了C ++語(yǔ)言中容易引起錯(cuò)誤的指針(以引用取代)、運(yùn)算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對(duì)象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔(dān)憂。 2.4 Java Web工程的基本介紹 2.2.1 建立Web工程的基本步驟 以開(kāi)放工具M(jìn)yEclipse6.5為例。 1. 建立Web工程 單擊File--->New--->Web Project 在彈出的窗口輸入工程名。 2. 在工程子目錄下的WebRoot\WEB-INF\lib 目錄下導(dǎo)
32、入開(kāi)發(fā)過(guò)程中用到的第三方j(luò)ar包。 3. 進(jìn)行開(kāi)發(fā)。相關(guān)的開(kāi)發(fā)時(shí)用到的目錄結(jié)構(gòu)將在下面的篇章中介紹。 2.2.2 Java Web 工程目錄結(jié)構(gòu) 1.SRC 該子目錄下存放開(kāi)發(fā)過(guò)程中編寫的java源代碼。在改目錄結(jié)構(gòu)下可以建立自己的包名。entity 一般存放開(kāi)發(fā)過(guò)程中的實(shí)體類 DAO 存放開(kāi)發(fā)過(guò)程中對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的類。biz 一般是業(yè)務(wù)邏輯類 action 存放控制頁(yè)面請(qǐng)求的action類 2.WebRoot 改子目錄下一般有建立Web工程時(shí)生成的WEB-INF 文件夾和META-INF 文件夾,該目錄下一般存放JSP頁(yè)面和自己的JSP頁(yè)面需要用到CSS、JS、以及一些文件和圖片
33、。CSS 通常放在自己在該目錄下建立的CSS的文件夾中JS放置在JS的文件夾中 3.WEB-INF 下有l(wèi)ib 目錄 存放開(kāi)發(fā)工程中用到的第三方j(luò)ar包。web.xml 文件一般配置過(guò)濾器 filter 和servlet 4.實(shí)體映射文件 xxx.hbm.xml 放置位置隨便 一般存放在對(duì)應(yīng)的實(shí)體包類,該文件配置的是實(shí)體類和對(duì)應(yīng)的數(shù)據(jù)表之間的映射。 5.hibernate.cfg.xml 配置的是與數(shù)據(jù)庫(kù)連接相關(guān)的屬性,存放在src下 6.struts.xml 配置每個(gè)Action的文件,存放在src 下 7.beans.xml 配置的是每個(gè)javaBean 在框架中 反轉(zhuǎn)控制就是通
34、過(guò)這個(gè)文件讀取相應(yīng)的屬性值的。 本節(jié)刪除或者放到第四章前面 2.3 Oracle數(shù)據(jù)庫(kù)是2.5 2.3.1 Oracle 數(shù)據(jù)庫(kù)簡(jiǎn)介 Oracle 數(shù)據(jù)庫(kù)是由甲骨文公司開(kāi)發(fā)的一款重量量級(jí)的大型關(guān)系數(shù)據(jù)庫(kù),是目前最流行的客戶/服務(wù)器(CLIENT/SERVER)或?yàn)g覽器/服務(wù)器(B/S)體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)之一 。 2.3.2 Oracle數(shù)據(jù)庫(kù)的特點(diǎn) 完整的數(shù)據(jù)管理功能:1.數(shù)據(jù)的大量性。Oracle數(shù)據(jù)庫(kù)是大型的數(shù)據(jù),相比一般的小型、中型數(shù)據(jù)庫(kù),它能存放大量的數(shù)據(jù),而且操作效率高。這也是Oracle數(shù)據(jù)庫(kù)能應(yīng)用于C/S,B/S 架構(gòu)系統(tǒng)的原因。2.數(shù)據(jù)保存的持久性。3.數(shù)據(jù)的共
35、享性4.數(shù)據(jù)的可靠性。 分布式處理功能:1.具有靈活的體系結(jié)構(gòu)。2 適應(yīng)分布式管理和控制機(jī)構(gòu),DDBS 的機(jī)構(gòu)符合企業(yè)分布的組織結(jié)構(gòu),允許各個(gè)部門對(duì)其自身數(shù)據(jù)實(shí)行局部控制,在本地插入、查詢和維護(hù)。3 經(jīng)濟(jì)性能優(yōu)越。4 系統(tǒng)的可靠性高、可用性好。由于數(shù)據(jù)庫(kù)分布在多個(gè)場(chǎng)地,并有許多復(fù)制數(shù)據(jù),即使在個(gè)別場(chǎng)地或個(gè)別通信鏈路上發(fā)生障礙,也不會(huì)影響到整個(gè)系統(tǒng)的崩潰。5 局部應(yīng)用的響應(yīng)速度快。 6 可擴(kuò)展性好。 開(kāi)發(fā)性:全角 與SQL Server只能在windows 平臺(tái)上運(yùn)行相比,Oracle 能運(yùn)行在所有主流平臺(tái)包括Windows(32位和64位)、Linux和不同分支的Unix。 第三章
36、系統(tǒng)需求分析與設(shè)計(jì) 3.1 可行性分析 本次課題研究是基于java語(yǔ)言,采用較流行的SSH框架,開(kāi)發(fā)的B/S架構(gòu)的網(wǎng)上書店系統(tǒng)。由于開(kāi)發(fā)工具和SSH框架都是開(kāi)源的,所有經(jīng)濟(jì)上是可行的,而該研究課題僅僅是個(gè)人畢業(yè)設(shè)計(jì)所用,不存在市場(chǎng)價(jià)值,而技術(shù)上SSH框架適合該類B/S結(jié)構(gòu)的系統(tǒng)開(kāi)發(fā)。因此該課題可以開(kāi)發(fā)。 3.2 功能需求分析 功能需求分析階段是軟件開(kāi)發(fā)前期必須的階段。該過(guò)程是在編碼前,綜合調(diào)查市場(chǎng)需求,客戶要求,經(jīng)濟(jì)效益以及時(shí)間和技術(shù)上多方面的因素得出系統(tǒng)該開(kāi)發(fā)什么功能。需求分析一般分兩個(gè)階段,即需求獲取和需求規(guī)格,需求獲取是用自然語(yǔ)言清楚地描述用戶的要求。需求規(guī)格的目的是確定需求的
37、唯一性。需求分析通常是在綜合考慮到影響因素后,確定系統(tǒng)有哪些功能,完成哪些功能。完善的需求往往為后續(xù)軟件開(kāi)發(fā)代來(lái)很多好處,往往通過(guò)需求分析可以避免開(kāi)發(fā)過(guò)程中的很多問(wèn)題。反而可以節(jié)約更多的時(shí)間。本研究課題是基于B/S 架構(gòu)下開(kāi)發(fā)的網(wǎng)上購(gòu)物系統(tǒng),由于不涉及到商業(yè)性僅僅是自己的一個(gè)研究性練習(xí),所有功能大致和大多數(shù)網(wǎng)上購(gòu)物系統(tǒng)功能一樣。該系統(tǒng)功能分為前臺(tái)部分和后臺(tái)管理部分。前臺(tái)部分包括: 用戶登陸,注冊(cè),退出登陸,首頁(yè)圖書展示,圖書瀏覽,廣告展示,商品加入購(gòu)物車,購(gòu)物圖書,生成訂單及產(chǎn)生訂單詳細(xì)等功能。后臺(tái)管理主要是對(duì)一些前臺(tái)數(shù)據(jù)的管理包括:用戶管理,廣告管理,圖書管理,訂單管理等功能。其中每個(gè)功能模
38、塊包括UI設(shè)計(jì)和功能實(shí)現(xiàn)兩部分。系統(tǒng)功能模塊圖如下圖3.1所示: 圖3.1系統(tǒng)功能模塊圖居中 1 用戶登陸模塊 登陸功能在本系統(tǒng)中非常重要,本系統(tǒng)實(shí)現(xiàn)購(gòu)買功能必須是在線用戶。 功能描述1. 對(duì)用戶輸入的用戶名進(jìn)行數(shù)據(jù)庫(kù)匹配,存在用戶然后匹配密碼。 功能描述2. 對(duì)存在的用戶檢查是否激活,激活了才能登陸成功進(jìn)入首頁(yè),否則跳轉(zhuǎn)到激活頁(yè)面。激活碼采用用戶名+隨機(jī)數(shù)產(chǎn)生。 2 用戶注冊(cè)模塊 注冊(cè)功能模塊也是B/S架構(gòu)系統(tǒng)必須具備的功能。 功能描述1用戶進(jìn)行注冊(cè),用戶名,密碼格式是否正確 JS檢查。 功能描述2是否輸入了所有的信息值 ,驗(yàn)證碼檢查,采用流輸出。 3 首頁(yè)展
39、示模塊 該功能模塊是整個(gè)該B/S 架構(gòu)系統(tǒng)最重要的部分,他是系統(tǒng)好壞的門戶。 功能描述1圖書分類列出 從數(shù)據(jù)庫(kù)中讀取。 功能描述2圖書展示 。 功能描述3廣告展示 。 功能描述4系統(tǒng)顯示是否登錄、是 顯示退出 否顯現(xiàn)登錄。 4 圖書瀏覽功能 功能描述1顯示圖書比較完整的基本信息。 功能描述2可以選擇每一頁(yè)顯示多少、按什么排序顯示。 5 添加產(chǎn)品到購(gòu)物車功能 功能描述1可以將喜歡的書添加到購(gòu)物車。 功能描述2購(gòu)物車將存入session 并生成數(shù)據(jù)庫(kù) 到時(shí)候下次登錄可以直接查看。 6 生成訂單并產(chǎn)生訂單詳細(xì) 功能描述1可以對(duì)相應(yīng)的產(chǎn)品進(jìn)行購(gòu)買,生成相應(yīng)的訂單。 功能描述
40、2對(duì)下了的訂單生成訂單詳細(xì),方便發(fā)貨。 7 后臺(tái)管理員登陸 功能描述1管理員通過(guò)身份確認(rèn)登陸到后臺(tái)管理界面。 8 后臺(tái)用戶管理 功能描述1分頁(yè)顯示所有注冊(cè)過(guò)的用戶。 功能描述2后臺(tái)管理員可以對(duì)用戶進(jìn)行增、刪、改。 9 后臺(tái)廣告管理 功能描述1顯示數(shù)據(jù)庫(kù)存在的廣告 功能描述2對(duì)廣進(jìn)行上傳,存放到數(shù)據(jù)庫(kù) 10 后臺(tái)圖書管理 功能描述1分頁(yè)顯示存在的圖書。 功能描述2后臺(tái)管理員對(duì)圖書進(jìn)行增、刪、改。 11 后臺(tái)訂單管理 功能描述1分頁(yè)顯示所有的訂單。 功能描述2可以對(duì)訂單進(jìn)行增、刪、改。 3.3 系統(tǒng)用例模型 3.3.1 普通用戶用例圖 注冊(cè)用戶登錄后,可以瀏覽商品
41、列表信息,購(gòu)買商品,查看訂單,訂單退訂,修改個(gè)人信息等。 圖 3.2 普通用戶用例圖 3.3.2 管理員用例圖 管理員登錄后,可以對(duì)圖書,用戶,訂單,廣告進(jìn)行管理。對(duì)廣告、圖書、用戶、訂單進(jìn)行基本的添加、修改、刪除、查詢等操作。 圖3.3 管理員用例圖 3.4 系統(tǒng)體系結(jié)構(gòu) 根據(jù)該網(wǎng)上書店的基本功能需求,該系統(tǒng)基本結(jié)構(gòu)可分為前臺(tái)部分和后臺(tái)部分。而由于SSH框架的特點(diǎn),前臺(tái)和后臺(tái)部分架構(gòu)都是四層結(jié)構(gòu)。分別為表現(xiàn)層、控制層、業(yè)務(wù)層、數(shù)據(jù)層。 表現(xiàn)層:主要負(fù)責(zé)用戶交互和結(jié)果顯示,交易系統(tǒng)和管理系統(tǒng)有不同的URL 入口界面。 控制層:主要負(fù)責(zé)系統(tǒng)的訪問(wèn)控制、數(shù)據(jù)加載和注銷,
42、是系統(tǒng)的核心控制單元??刂茖油ㄟ^(guò)系統(tǒng)描述來(lái)組織工作。 業(yè)務(wù)層:實(shí)現(xiàn)了交易系統(tǒng)和管理系統(tǒng)的主要業(yè)務(wù)邏輯,是系統(tǒng)主要的運(yùn)算單元。 持久層:實(shí)現(xiàn)了靜態(tài)數(shù)據(jù)和數(shù)據(jù)庫(kù)數(shù)據(jù)的持久化管理,為業(yè)務(wù)層提供數(shù)據(jù)服務(wù),是系統(tǒng)進(jìn)行數(shù)據(jù)操作的統(tǒng)一界面。 圖3.4前臺(tái)架構(gòu)圖 3.5 數(shù)據(jù)庫(kù)設(shè)計(jì) 本次系統(tǒng)主要是基于B/S架構(gòu)的系統(tǒng),存在大量的數(shù)據(jù)讀入和取出,對(duì)數(shù)據(jù)庫(kù)表的要求比較高,每個(gè)功能模塊基本都涉及到了數(shù)據(jù)表。 3.3.1 數(shù)據(jù)庫(kù)表E-R圖這個(gè)小標(biāo)題刪除 圖3.5系統(tǒng)數(shù)據(jù)E-R圖 3.3.2 數(shù)據(jù)庫(kù)表分析這個(gè)小標(biāo)題刪除
43、 對(duì)于B/S系統(tǒng)的網(wǎng)上書店來(lái)說(shuō),數(shù)據(jù)的存儲(chǔ)往往是難點(diǎn),因?yàn)橄到y(tǒng)將有大量的信息,為管理好改系統(tǒng),采用如下數(shù)據(jù)表存儲(chǔ)系統(tǒng)信息。 用戶表:存儲(chǔ)用戶信息。包含用戶賬號(hào),密碼,昵稱,性別,用戶地址省份,城市等信息。 廣告表:存儲(chǔ)廣告信息。包含廣告編號(hào),廣告圖片路徑,廣告描述。 圖書表:存儲(chǔ)圖書信息。包含圖書編號(hào),圖書名,圖書市場(chǎng)價(jià),圖書書店價(jià),作者,出版社,出版時(shí)間。 圖書類型表:存儲(chǔ)圖書類型信息。包含圖書類型編號(hào),類型名,父類類型編號(hào)。 訂單項(xiàng)表:存儲(chǔ)單條訂單項(xiàng)信息。包含訂單項(xiàng)編號(hào),訂單編號(hào),產(chǎn)品編號(hào),產(chǎn)品市場(chǎng)價(jià),產(chǎn)品書店價(jià),訂購(gòu)數(shù)量,當(dāng)前訂單項(xiàng)積分。 訂單表:存儲(chǔ)訂單信息。包含訂單編號(hào)
44、,用戶編號(hào),訂購(gòu)時(shí)間,收貨人,收貨地址,總金額,電話。 購(gòu)物車表:存儲(chǔ)購(gòu)物車信息。包含購(gòu)物車編號(hào),用戶編號(hào),訂單項(xiàng)編號(hào),總售價(jià),總書店價(jià),總積分。 第四章 系統(tǒng)實(shí)現(xiàn) 4.1 搭建開(kāi)發(fā)環(huán)境 本次課題采用J2EE SSH框架,開(kāi)發(fā)工具采用MyEclipse6.5,數(shù)據(jù)庫(kù)采用Oracle數(shù)據(jù)庫(kù),為方便操作數(shù)據(jù)庫(kù),采用oracle 客戶端pl/SQL。對(duì)于開(kāi)源框架導(dǎo)入工程jar包尤為最終要。 開(kāi)發(fā)所需要的軟件如下:。 開(kāi)發(fā)軟件介紹: JDK:Java 虛擬機(jī) java 語(yǔ)言開(kāi)發(fā)必須的編譯器。版本1.6 以上。 MyEclipse6.5:java 開(kāi)發(fā)工具。 服務(wù)器:Tomcat5
45、.0 以上 Oracle數(shù)據(jù)庫(kù):大型的數(shù)據(jù)庫(kù)服務(wù)器。版本10g 以上。 PL/SQL:針對(duì)oracle 數(shù)據(jù)庫(kù)開(kāi)發(fā)的一款界面操作客戶端。 Editplus 或者Dreamweaver:文本編輯器,開(kāi)發(fā)html/JSP 頁(yè)面工具。 4.1.1 安裝開(kāi)發(fā)工具 (1) 登陸,下載最新版JDK。這里下載的是jdk-6u7-windows-i586-p版本。 (2) 安裝JDK 1.6。 (3) 安裝MyEclipse6.5。下載網(wǎng)站 (4) 安裝Tomcat 服務(wù)器 ,在安裝過(guò)程中可以修改默認(rèn)端口8080。本次研究將端口改為8081 訪問(wèn)地址http://localhost:8081/
46、 也可以在安裝目錄:tomcat\conf\server.xml 配置文件中修改。 (5) 安裝Oracle 數(shù)據(jù)庫(kù),在安裝過(guò)程中需要設(shè)置system/sys 數(shù)據(jù)庫(kù)默認(rèn)用戶的密碼還要端口1521,以及域名xe。 4.1.2 開(kāi)發(fā)軟件的配置 (1) 配置MyEcliplise6.5 默認(rèn)JDK 啟動(dòng)MyEclipse6.5 在工具欄 window --->preferences ---->java--->Installed JREs 在界面上單擊add 然后單擊Browser 選擇你安裝的的JDK。 (2) 配置MyEclipse6.5 服務(wù)器 window ----> pref
47、erences ---->MyEclipse Enterprise Workbench--->servers--->Tomcat 單擊Tomcat6.x 在彈出的界面上,單擊Browser 選擇本地Tomcat 路徑。 4.1.3 建立web工程搭建開(kāi)發(fā)框架 MyEclipse6.5 建立Web工程很方便,但是由于Java 語(yǔ)言的特點(diǎn),很多開(kāi)源框架都用到了第三方的jar包 而這些jar包有時(shí)候會(huì)很容易導(dǎo)致jar包沖突,啟動(dòng)服務(wù)器時(shí)會(huì)報(bào)一些莫名其妙的錯(cuò)誤。因而使用SSH 開(kāi)源框架開(kāi)發(fā)Web項(xiàng)目,適當(dāng)導(dǎo)入jar包 避免jar包沖突很重要。 1 建立Web工程 在工具欄 File ----
48、->New---->Web Project 在彈出的對(duì)話框 輸入工程名,并選擇java EE 1.5 默認(rèn)是java EE 1.4。 2 導(dǎo)入開(kāi)發(fā)所需jar包 在工程文件夾 WebRoot ---->WEB-INF --->lib 導(dǎo)入開(kāi)發(fā)所需的jar包 4.2 數(shù)據(jù)庫(kù)實(shí)現(xiàn) 4.2.1 數(shù)據(jù)庫(kù)表字段設(shè)計(jì) 表4.1 用戶表(d_user) 字段名 字段說(shuō)明 字段類型 字段約束 是否為空 userId 用戶編號(hào) integer 主鍵 非空 email 登錄郵箱 varchar(50) — 非空 nickName 用戶昵稱 varch
49、ar2(30) 檢查約束 非空 password 用戶密碼 varchar2(30) 檢查約束 非空 sex 用戶性別 varchar2(8) 檢查約束(男) — province 用戶所在省份 varchar2(20) — — city 用戶所在城市 varchar2(20) — — Status 用戶狀態(tài) Integer 檢查約束(0 1) — eableMSG 激活碼 varchar2(50) — — 表4.2 廣告表(d_advertise) 字段名 字段描述 字段類型 字段約束 是否為空 adve
50、rtise_id 廣告編號(hào) integer 主鍵 非空 image_path 廣告圖片路徑 varchar2(200) — 非空 description 描述 varchar2(100) — — 表4.3 產(chǎn)品表(d_product) 字段名 字段描述 字段類型 字段約束 是否為空 productId 產(chǎn)品編號(hào) integer 主鍵 非空 imagePath 產(chǎn)品圖片路徑 varchar2(100) — 非空 productName 產(chǎn)品名 varchar2(100) — 非空 costPrice 市場(chǎng)售價(jià) n
51、umber(8,2) — — dangPrice 系統(tǒng)售價(jià) number(8,2) — 非空 author 作者 varchar2(40) — — publish 出版社 varchar2(50) — — publishTime 出版時(shí)間 varchar2(30) — — 4.4 產(chǎn)品類別表(d_bookType) 字段名 字段描述 字段類型 字段約束 是否為空 typeId 圖書類型id integer 主鍵 非空 typeName 類型名 varchar2(20) — — parentId 父類型id
52、 integer — — 4.5 訂單表(d_orderDetailed) 字段名 字段描述 字段類型 字段約束 是否為空 orderDetailedId 訂單詳細(xì)編號(hào) integer 主鍵 非空 userId 用戶編號(hào) integer — 非空 orderTime 訂購(gòu)時(shí)間 Date — 非空 totalPrice 總金額 float — 非空 receiveName 收貨人 varchar2(50) — 非空 receiveTime 收貨地址 varchar2(200) — 非空 postalCode
53、 郵政編碼 varchar2(10) — 非空 mobile 電話 varchar2(15) — 非空 表4.6 訂單項(xiàng)列表(d_orderItem) 字段名 字段描述 字段類型 字段約束 是否為空 orderItemId 訂單項(xiàng)編號(hào) integer 主鍵 否 orderDetailedId 訂單詳細(xì)編號(hào) integer — 否 productId 產(chǎn)品編號(hào) integer — 否 count 訂購(gòu)數(shù)量 integer — 否 dangTotalPrice 系統(tǒng)價(jià)格 float — 否 costTot
54、alPrice 產(chǎn)品市場(chǎng)價(jià) float — 否 sigleScore 產(chǎn)品的積分 integer — 否 表4.8 購(gòu)物車數(shù)據(jù)表(d_cart) 字段名 字段描述 字段類型 字段約束 是否為空 cartId 購(gòu)物車編號(hào) integer 主鍵 否 userId 用戶編號(hào) Integer 外鍵 否 dangTatalPrice 系統(tǒng)總價(jià) float — 否 costPrice 市場(chǎng)總價(jià) float — 否 toatlScore 總積分 integer — 否 表4.7 后臺(tái)管理員表(d_admi
55、n) 字段名 字段描述 字段類型 字段約束 是否為空 adminId 管理員id integer 主鍵 否 login 登陸賬號(hào) varchar2(30) — 否 password 密碼 varchar2(30) — 否 realName 真實(shí)姓名 varchar2(30) — — telephone 電話 varchar2(30) — — 4.2.2 數(shù)據(jù)庫(kù)連接實(shí)現(xiàn) Java Web SSH 框架技術(shù)連接是數(shù)據(jù)庫(kù),是通過(guò)Hibernate 框架技術(shù)訪問(wèn)的。Spring框架的SessionFactory 類將連接數(shù)據(jù)庫(kù)操作分裝
56、起來(lái),通過(guò)配置文件bean.xml 文件反轉(zhuǎn)控制,連接數(shù)據(jù)庫(kù)。
核心代碼:
57、bc:oracle:thin:@127.0.0.1:1521:xe
58、 class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
60、value>com/wangjing/book/product/Product.hbm.xml
61、hbm.xml
62、roperty> 4.3 前臺(tái)主要功能模塊 4.3.1 登陸功能的實(shí)現(xiàn)改成“登陸” 系統(tǒng)的登陸界面(UI)設(shè)計(jì)如下圖: 圖4.1 系統(tǒng)登陸界面 用戶在登陸本網(wǎng)上書店系統(tǒng)的時(shí)候,只需要輸入正確的用戶信息和用戶密碼,即可實(shí)現(xiàn)登陸,系統(tǒng)將進(jìn)入首頁(yè),首頁(yè)會(huì)顯現(xiàn)用戶昵稱信息,表示已經(jīng)成功登陸。如果用戶信息錯(cuò)誤,系統(tǒng)將進(jìn)入到不同的頁(yè)面。用戶名不存在,系統(tǒng)將通過(guò)Action類跳轉(zhuǎn)到注冊(cè)頁(yè)面,如果通過(guò)數(shù)據(jù)庫(kù)驗(yàn)證用戶存在,但狀態(tài)未激活,系統(tǒng)將進(jìn)入激活頁(yè)面。登陸功能流程圖入下圖: 圖4.2 登陸功能流程圖 實(shí)現(xiàn)登錄功能的主要方法: public String
63、checkUserLogin(String email, String password, ActionContext action) { // TODO 檢查登陸是否成功 User user = userDAO.queryUserByEmail(email); // 賬號(hào)不存在 if (user == null) { return "notExit"; } if (user != null && user.getStatus() == 0) { action.getSession().put("logined", user);
64、 return "status"; } // 登陸成功 if (user != null && user.getPassword().equals(password)) { action.getSession().put("logined", user); return "ok"; } return "error"; } 4.3.2 注冊(cè)功能的實(shí)現(xiàn)改成“注冊(cè)” 注冊(cè)頁(yè)面(UI)設(shè)計(jì): 圖4.3 系統(tǒng)注冊(cè)界面 用戶通過(guò)登錄界面的快速注冊(cè)用戶超鏈接進(jìn)入注冊(cè)界面,注冊(cè)界面用戶必須輸入用戶賬號(hào),用戶昵稱,昵稱必須是字母,輸入用戶密
65、碼,密碼由六位以上的字母或數(shù)字。通過(guò)單選框選擇用戶性別,通過(guò)下拉列表選擇地址,用戶必須輸入驗(yàn)證碼。正確輸入用戶信息后,注冊(cè)成功,將進(jìn)入激活頁(yè)面。否則會(huì)在注冊(cè)頁(yè)面上顯示錯(cuò)誤信息提示。錯(cuò)誤信息提示如下圖所示: 圖4.4 注冊(cè)報(bào)錯(cuò)頁(yè)面 激活頁(yè)面(UI)設(shè)計(jì): 圖4.5 激活界面圖 已經(jīng)注冊(cè)的用戶可以在登錄界面登錄,但系統(tǒng)不會(huì)進(jìn)入主頁(yè)面,而是通過(guò)Action跳轉(zhuǎn)到激活頁(yè)面,在激活頁(yè)面會(huì)顯示當(dāng)前用戶的激活碼。用戶在激活頁(yè)面可以通過(guò)輸入顯示的激活碼,激活自己的賬號(hào)。激活成功系統(tǒng)將進(jìn)入登錄界面。激活碼算法是通過(guò)獲取當(dāng)前登錄用戶的郵箱,然后將字符串轉(zhuǎn)換成字符,對(duì)應(yīng)每一位乘以隨機(jī)函數(shù)產(chǎn)生的數(shù)
66、乘以10轉(zhuǎn)換的整數(shù),然后組成新的字符串,作為激活碼。激活碼算法如下: // 產(chǎn)生激活碼的算法 public String createCodeString(String email) { // 將數(shù)據(jù) char[] codeString = email.toCharArray(); for (int i = 0; i < codeString.length; i++) { codeString[i] += (int) (Math.random() * 10); } // System.out.println(new String(codeString)); return new String(codeString); } 注冊(cè)功能流程圖如下圖所示: 圖4.6 注冊(cè)功能流程圖 4.3.3 首頁(yè)功
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中生物對(duì)照實(shí)驗(yàn)專題復(fù)習(xí)課件
- 初中物理資源九年級(jí)第十五單元課件串并聯(lián)識(shí)別
- 咯血與嘔血課件
- What's_your_number_課件
- 外研版七下Module3Unit1(教育精品)
- 浙美版三年級(jí)上冊(cè)美術(shù)第15課-剪雪花教學(xué)ppt課件
- 蘇教版六年級(jí)下冊(cè)數(shù)學(xué)正比例和反比例的意義課件
- 蘇教版五下《單式折線統(tǒng)計(jì)圖》教研課件
- 固態(tài)相變概論
- 三角形全等的判定復(fù)習(xí)-課件2
- 太陽(yáng)能發(fā)展趨勢(shì)課件
- 道路工程監(jiān)理最新規(guī)劃范本課件
- SPC及CPK教程(理論篇)課件
- Travel-Plan旅行計(jì)劃-PPT
- 新冠肺炎疫情期間醫(yī)務(wù)人員防護(hù)技術(shù)指南