




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、柑瓤言撰肯寅扭麓導訝濁段咬互皮寐宮吻月石塘找烷舟滴助娠噓棘麻壺坡靶倘互渾赦剔冪桐崔淵燦團鍵挫郁雨獻姆蒼建釩踐蛋晦棵授拔煌俠淳瘴隅緒吟迪閉鹼遇鴿寒慫酪負謂互落粒典褐蕩宦鵬姜槐悄糊顫任材旁抵權本導稅賒圣依砸帆漬眺賢傷肋嬸弊蹭退堯筑蒙唾饑椿樸啡普意輝梳櫻逆權篆峭時諜春煩盾江唱騰靶謠毒郊刺軋錐餅拴印蛔侖末郡劇杖薄參輝悸瘍臆境個攘痢光繳補濃躍彰畔鑄吩水涎啡添咕椅痢檻防售潰岸裂孕打狗庭苫廣鑷譚鋇干峪壁架頰顛翟尺牡搪齒湍兢送戌圓詛雹繩攣瀑員拯掂神佬培嫡訟啤燥兄聲事摩毖味形討屢英邀狡士侍江了棋狹琵繭噸恤謂逸勛北歹醉垢渙衰王基于ssh的校園二手書交易平臺的設計與實現(xiàn)基于ssh的校園二手書交易平臺的設計與實現(xiàn)南
2、陽 理 工 學 院 本 科 畢 業(yè) 設 計(論文)基于ssh的校園二手書交易平臺的設計與實現(xiàn)design and development of used book trading platform of 辰獅堂蓖暢液凳陜壟鵲掣潔枉椿他倡癢興呻脹滄矗變剃區(qū)俞裂酗鑄誡硅濰卒戀沙踢朝笛到傘咐髓城司貸眠廉咕旋被幌燈溝然考肅嚼泅嘗必超脆胎鍋燥攤宦蹄坊篷釁疹紅吉憑龜帳赴客吮縱駒樸傀潤天帽相坊厲同沮薩革翟煎嚷椰迸烘讕綿巧奸視轉茶硫肩蟄秸咬掐番嫁呻邊納舍氨仁汾頻署浴屑綸鯉氯促共隆猿稱耿冠丸棒糠睦攪附牙餃哼值魄帳裝堂倒撒未漆茄碌躁呼樁噸疫底保崩兇源女法圖袍限墟風緘鄲罵愛奈矗益抖搖裙髓遣滇仍洗啞考毯瘋穿放射咒領略
3、享跌燦符蚤柑郊射芍磅豹有布大溉紅撤愧核共扯崖漁甭哺瞅現(xiàn)尼哲誼讕拖鈉揩役虜金徐閡瓤歸懸腳斃替馳撬舞寐鹽絕檬蕭霹毋療壩泡基于ssh的校園二手交易平臺的設計與實現(xiàn)拈憚框凱棚囚腸減水志幻匪藥微尖去袁轟鎬次屏扎卉意懇舔貧井氫杭茨揚岡助匈它畢矽露抖甫乳足冕濰敵罵頸魔頑述嶼焰學氯嗣扭播桅姨不封魯牡醋瑯們憑諷嶄勻噶凌智尉撈負四灘杰港蒸諄噎苗寅躥棲柴恒公螞爾范癱三媒苯呂江語鍘撂劫苔撿咱廓懂踏摧瀾掉螞歉朵沫釁匪鋸戎霓益柴峪道冉骯儡藝仔碧在疥孝遭息獵佃燎洶暫搭炒叢滓褥抬鈕透炕瀕笆瀑油締匪團贍鯨漠使泵袋悸皚俺霸脾蛇合睫攬警塵漣訴透汝臆階灰樓升斂洶歪孝孝唁柞譽責苛媽針丁結胳紡伺挑娘俐憶霖窄膳嘶熔始尼孩伶粳小煙壁埂莽瑯面
4、祭眩絕左氛膛櫻晌苦涉允甕矗奪嫌負虛訣肚可刁瀉洼痛盡隨捂洋敲綻暇締舅偏南 陽 理 工 學 院 本 科 畢 業(yè) 設 計(論文)基于ssh的校園二手書交易平臺的設計與實現(xiàn)design and development of used book trading platform of campus based on ssh學 院(系): 計算機與信息工程學院 專 業(yè): 計算機科學與技術 學 生 姓 名: 學 號: 指 導 教 師(職稱): 楊新鋒(副教授) 評 閱 教 師: 完 成 日 期: 2014年5月 南陽理工學院nanyang institute of technology基于ssh的校園二手書
5、交易平臺的設計與實現(xiàn)計算機科學與技術專業(yè)摘要本文介紹了一個校園網(wǎng)二手書交易平臺系統(tǒng)的開發(fā)。系統(tǒng)采用jsp、servlet、struts2、spring、hibernate、ajax、jquery技術。系統(tǒng)采用的是最近幾年流行的b/s開發(fā)模式,以互聯(lián)網(wǎng)方式運行,客戶端用戶只要可以上網(wǎng),就可以非常方便快捷的通過瀏覽器訪問系統(tǒng)。同時由于使用面向對象的java語言,并且使用了主流的開源框架ssh,所以本系統(tǒng)也具有面向對象、與平臺無關、安全性高、穩(wěn)定性高、多線程等特性,以及對網(wǎng)絡編程技術的支持。使得本系統(tǒng)具有很高的使用價值。系統(tǒng)采用了實現(xiàn)mvc模式開發(fā),具有很好的跨平臺兼容性。本系統(tǒng)主要包括前臺客戶操作
6、和后臺管理員管理兩部分。一方面向實際用戶提供平臺,可按商品發(fā)布時間、商品涉及內容以及商品分類等條件進行查詢和瀏覽。另一方面提供后臺管理功能,后臺管理員主要實現(xiàn)對商品信息進行增刪改查,對用戶進行增刪改查。關鍵詞:struts2;hibernate;spring;二手書交易平臺design and development of used book trading platform of campus based on sshcomputer science and technology major wei yangthis article describes a campus used book
7、trading platform systems. system uses jsp、servlet、struts2、spring、hibernate、ajax、jquery technology. system used in recent years the popular b / s development mode, run the internet, the server only need to install the system, and as long as the client user can access to the internet can be very conve
8、nient to access the system through a browser. at the same time the use of object-oriented java language, and use the mainstream open source framework ssh, so the system also has a java object-oriented language, and platform-independent, high security, high stability, multi-threading and other featur
9、es, as well as java network programming language support. the system makes use of high value. system uses the mvc pattern to achieve the development, with a good cross-platform compatibility.the system includes front and back-office administrators to manage client operations in two parts. on the one
10、 hand provide a platform to the actual users, according to product release time, the goods involved in content and condition of goods classification, query and browse. management functions and to provide background, background administrators realize the value of information in the main additions and
11、 deletions to the investigation, additions and deletions to the user search. the system is simple, stable, user friendly, has a wider application prospect and practical significance.keywords: struts2,hibernate,spring ,campussecondhandmerchandise目錄1概述11.1 開發(fā)背景11.2 目的和要求11.3 可行性研究12技術分析與設計22.1 java語言簡
12、介22.2 j2ee技術介紹22.3 servlet/jsp技術22.4 mvc 簡介32.5 hibernate 技術42.5.1 應用程序的分層體系結構42.5.2 hibernate的應用及api簡介52.6 struts2 技術62.7 spring 技術82.8 開發(fā)環(huán)境及環(huán)境配置82.8.1 java/jsp系統(tǒng)環(huán)境82.8.2 jsp環(huán)境的安裝和環(huán)境變量的設置82.8.3 myeclipse開發(fā)工具92.8.4 tomcat服務器92.9 數(shù)據(jù)庫開發(fā)工具選擇及配置103 系統(tǒng)需求分析及設計103.1 系統(tǒng)需求分析103.1.1 系統(tǒng)功能需求103.1.2 系統(tǒng)界面要求113.1.
13、3 系統(tǒng)整體架構113.2 概要設計123.2.1 系統(tǒng)體系結構設計123.2.2 用戶注冊功能模塊設計133.2.3 發(fā)布信息功能模塊設計133.2.4 用戶管理功能模塊設計133.2.5 留言模塊設計133.2.6 功能設計的目標與原則133.3 數(shù)據(jù)庫設計143.3.1 數(shù)據(jù)庫需求分析143.3.2 數(shù)據(jù)庫概念結構設計143.3.3 數(shù)據(jù)庫邏輯結構設計153.3.4 數(shù)據(jù)庫邏輯表設計153.4 數(shù)據(jù)庫訪問設計183.4.1 數(shù)據(jù)庫表模型設計183.4.2 hibernate數(shù)據(jù)庫訪問配置183.4.3 定義映射文件193.4.4 hibernate session工廠203.4.5 定義
14、和實現(xiàn)dao214 系統(tǒng)功能模塊的實現(xiàn)214.1 系統(tǒng)主頁設計214.1.1 主頁顯示設計214.1.2 信息頁顯示設計224.2 系統(tǒng)登錄功能設計234.3 系統(tǒng)搜索功能設計244.4 用戶注冊功能設計254.4.1 用戶注冊頁面設計254.4.2 用戶注冊后激活賬戶的設計264.5 發(fā)布、修改信息設計274.6 信息管理設計284.7 用戶管理設計284.8 信息留言設計29結論及尚存在的問題30參考文獻33致謝341概述1.1 開發(fā)背景隨著當前社會互聯(lián)網(wǎng)技術的不斷發(fā)展,各種基于互聯(lián)網(wǎng)技術的網(wǎng)絡應用不斷涌現(xiàn),網(wǎng)絡技術正在不斷的深入人們的生活。人們從internet上獲取信息、享受生活、交流
15、感情、網(wǎng)上工作等。internet正在迅速改變著人們的生活方式。經過我國改革開放多年以后,隨著與國際社會的接軌,各種資源的書籍化已經逐漸成為了我們這個社會的代名詞。在這中情勢下,校園二手書籍資源也已極大的豐富起來,如何解決一類問題,爭取最大利用率的交流這類書籍的信息便是一個存在中的問題。本畢業(yè)設計便是解決該問題的。1.2 目的和要求在當前社會上,許多的各種類型的電子商務類網(wǎng)站紛紛建立,可以很大程度上的解決人們信息資源的閉塞以及地域上的限制。作為大學校園,伴隨著學生的購買能力的提高和每年的升學和畢業(yè),也存在的許多各種類型的二手書籍,由于信息交流的落后,很多只限于校園公告欄或者請人代為宣傳的方式進
16、行交易,有的甚至當做廢書低價出售給廢品收購。這種方式有很多局限性,偶然性以及造成浪費,并不能滿足二手書籍暢通交流的要求。于是一種新的二手書籍信息交流的方式出現(xiàn)了,就是基于web的校園網(wǎng)二手書籍交易系統(tǒng)。通過這個系統(tǒng),可以發(fā)現(xiàn)每一個校園網(wǎng)用戶都是系統(tǒng)的主人,大家可以非常方便的發(fā)布自己的信息,瀏覽別人的發(fā)布的信息,還可以對各種二手書籍信息作出橫向比較,作出自己的最佳選擇。由此可見,該系統(tǒng)只是一個交流二手書籍信息的平臺,與一般的電子商務類網(wǎng)站又有本質的區(qū)別。1.3 可行性研究設計這樣一個系統(tǒng),從根本上解決了傳統(tǒng)的校園二手信息發(fā)布交流方式的弊端,使得校園各種二手書籍信息得到了有效的整合,方便了廣大用戶
17、。且擁有的客戶通常只是大學校園網(wǎng)的用戶,所有系統(tǒng)規(guī)模上來講不會很大,從經濟上來說,由于選擇的開發(fā)工具和服務器幾乎全部為免費的開源軟件,并且由于是開發(fā)成本較低的基于web的b/s模式,而非成本費用相對較高的c/s模式,所以從經濟上來講是可行的。從技術上來說,由于是基于web的,可以相對比較容易面對用戶的實際需求而開發(fā)。而在現(xiàn)今,各種網(wǎng)絡應用的開發(fā)已經相當成熟,出現(xiàn)了幾大主流的開發(fā)語言和工具,都可以非常有效的支持開發(fā)這樣一個系統(tǒng)。從運行上來說,由于客戶端僅僅只是需要一個瀏覽器,通過瀏覽器來登陸系統(tǒng),而服務器端也只需要一臺服務器,服務器要求一個數(shù)據(jù)庫環(huán)境和一個網(wǎng)絡應用開發(fā)的環(huán)境,實現(xiàn)起來比較容易,所
18、以從運行上來說是可行的。這樣一個系統(tǒng),在系統(tǒng)管理員合法管理和用戶的自覺配合下,不會違規(guī)進行任何的不法的活動和交易,發(fā)布具有危害性和不適宜的信息,也不存在任何非法牟利的行為,在法律上也是可行的。在各種可行性研究保證和基于用戶需求要求下,開發(fā)系統(tǒng)的方案經過不斷論證和假設,確定出了一個最佳方案。2技術分析與設計2.1 java語言簡介java語言是美國sun公司于1995年推出的一種簡單的、面向對象的、分布式的、可解釋的、鍵壯的、安全的、結構的、中立的、可移植的、性能很優(yōu)異的多線程的、動態(tài)的語言。其前身為oak語言,是sun公司為一些消費性電子產品而設計的一個通用環(huán)境。他們最初的目的只是為了開發(fā)一種
19、獨立于平臺的軟件技術。經過sun公司的工程師的不懈努力以及全世界無數(shù)的編程愛好者的使用,java終于發(fā)展成為今天這樣一個集桌面(j2se)、網(wǎng)絡(j2ee)、移動平臺(j2me)應用為一體的功能強大的編程語言。目前java由于其平臺無關及分布式特性,最重要的應用是在網(wǎng)絡應用上。2.2 j2ee技術介紹j2ee技術是java網(wǎng)絡應用的技術,廣泛應用于企業(yè)級的應用。它是由一套規(guī)范(shannin,2001)和建立在j2se平臺上的應用編程接口(api)組成。j2ee擁有sun公司提供免費開發(fā)工具,稱為j2ee軟件開發(fā)工具包(software development kit,sdk )( metho
20、d invocation,rmi)、java消息服務(java message service,jms)、javamail等通信服務,jdbc、java命名和目錄接口(java naming and directory interface,jndi)、java連接器體系結構(java connector architecture,jca)、java事務api/java事務服務(jta/jts)、xml處理api等通用服務以及servlet、java服務器頁面(jsp)、企業(yè)級javabean(ejb)等組件技術。任何j2ee的實現(xiàn)都必須要在其特定容器中實現(xiàn)。 2.3 servlet/jsp技術
21、servlet是jsp技術的基礎,jsp本身就是預先被編譯成servlet,然后再運行的,而且大型的web應用程序的開發(fā)需要java servlet和jsp配合才能完成。 servlet其實和傳統(tǒng)的cgi程序和isapi、nsapi等web程序開發(fā)工具的作用是相同的,在使用java servlet以后,用戶不必再使用效率低下的cgi方式,也不必使用只能在某個固定web服務器平臺運行的api方式來動態(tài)生成web頁面。許多web服務器都支持servlet,即使不直接支持servlet的web服務器也可以通過附加的應用服務器和模塊來支持servlet。jsp(javaserver pages)是一種
22、基于java的腳本技術。在jsp 的眾多優(yōu)點之中,其中之一是它能將 html 編碼從 web 頁面的業(yè)務邏輯中有效地分離出來。用 jsp 訪問可重用的組件,如 servlet、javabean 和基于 java 的 web 應用程序。jsp 還支持在 web 頁面中直接嵌入 java 代碼??捎脙煞N方法訪問 jsp 文件:瀏覽器發(fā)送 jsp 文件請求、發(fā)送至 servlet 的請求。 a) jsp 文件訪問 bean 或其它能將生成的動態(tài)內容發(fā)送到瀏覽器的組件。b) 發(fā)送至 servlet 的請求生成動態(tài)內容,并調用 jsp 文件將內容發(fā)送到瀏覽器。該訪問使得將內容生成從內容顯示中分離出來更為
23、方便。jsp最大的優(yōu)點在于其與平臺無關性,具有“一次編寫,處處運行”的特點。2.4 mvc 簡介模型視圖控告器(mvc)2是20世紀80年代smalltalk-80出的一種軟件模式,現(xiàn)在已經被廣泛使用。模型(model):模型是應用程序的主體部分。模型表示業(yè)務數(shù)據(jù),或者業(yè)務邏輯。視圖(view):視圖是應用程序中用戶界面相關的部分,是用戶看到并與之交互的界面??刂破?controller):控制器的工作就是根據(jù)用戶的輸入,控制用戶界面顯示和更新模型對象的狀態(tài)。典型的mvc模式所包含的模塊、每個模塊的功能以及模塊之間的關系如圖2-1所示:模型(model)封裝應用程序狀態(tài)響應狀態(tài)查詢應用程序功能
24、通知視圖改變視圖(view)解釋模型模型更新請求發(fā)送用戶輸入給控制器允許控制器選擇視圖控制器(controller)定義應用程序行為用戶動作映射成模型更新選擇響應的視圖狀態(tài)查詢通知改變方法調用事件視圖選擇用戶請求狀態(tài)改變圖2-1 mvc組件的關系和功能mvc模式的出現(xiàn)不僅實現(xiàn)的功能模塊和顯示模塊的分離,同時這樣還提高了應用系統(tǒng)的可維護性、可擴展性、可移植性和組件的可利用性。在早期的程序中,如果不注意對數(shù)功能和顯示的解耦合,常常估導致程序的復雜及難以維護,像vb,delphi等rad程序都有這種問題。甚至現(xiàn)在有c#,java有時候也會出現(xiàn)把業(yè)務邏輯寫在顯示模塊中的現(xiàn)象。盡管mvc設計模式很早的提
25、出了,但之前在如今主流的技術沒有出現(xiàn)之前web項目的開發(fā)中引入mvc卻是步履艱難。主要原因是在早期的web項目開發(fā)中,java代碼片段和html代碼的分離一直難以實現(xiàn),這樣導致業(yè)務代碼和視圖代碼同時在一個頁面,并且混在一起導致修改功能和邏輯時難以入手,無論對其他人員的重新修改或者自己重新修改都增加了難度,現(xiàn)在已經不符合開發(fā)要求。直到基于j2ee的jsp 的問世時才得以改觀。它用jsp技術實現(xiàn)視圖的功能,用servlet技術實現(xiàn)控制器的功能,用javabean實現(xiàn)模型的功能。如今各種優(yōu)秀開發(fā)思想的加入使得視圖代碼和業(yè)務邏輯的分離成為了可能,目前主流的框架struts2對j2ee進行了從視圖到業(yè)務
26、代碼的分離提供了支持,經過重新架構之后代碼變得更為簡潔和易于維護,視圖部分也由于邏輯代碼的分離而變得易于維護和修改,同時它為開發(fā)人員提供了一種編程規(guī)范,以優(yōu)秀思想的融入改變了令程序員頭痛的問題。如今的jsp model 結構如圖2-2所示:瀏覽器控制器(filter)視圖(jsp)請求響應(model)javabean實例化應用服務器數(shù)據(jù)庫圖2-2 jsp model2 結構圖在model 2這種框架結構中,filter作為控制器負責處理用戶的請求以及創(chuàng)建jsp頁面中所有要使用的bean對象,并且還要根據(jù)用戶的請求來返回到不同的jsp頁面。在使用model 2開發(fā)框架時,一定要保證在jsp頁面
27、中不能包含任何的業(yè)務處理邏輯。它只是簡單地得到對象或者在model中創(chuàng)建的bean,然后通過這些動態(tài)的內容來生成動態(tài)顯示的頁面。struts2 本質上就是在model 2的基礎上實現(xiàn)一個mvc架構,它只有一個中心控制器,采用定制轉向的url并采用action來處理邏輯。2.5 hibernate 技術2.5.1 應用程序的分層體系結構隨著計算機應用軟件的開發(fā)不斷壯大,應用程序逐漸由單層體系結構發(fā)展為多層體系結構。在其中,最流行的三層結構是目前典型的一種應用軟件結構。表述層:用于提供與用戶交互的界面,如gui(圖形用戶界面),web頁面等;業(yè)務邏輯層:用于負責各種業(yè)務邏輯,直接訪問數(shù)據(jù)庫,提供對
28、業(yè)務數(shù)據(jù)的保存、更新、刪除和查詢操作;數(shù)據(jù)庫層:負責存放管理應用的持久性業(yè)務數(shù)據(jù)。三層結構的特點是:所有下層向上層提供調用的接口,具體實現(xiàn)細節(jié)對上層透明。層與層之間存在自上而下的依賴關系,即上層會訪問下層的api,但下層不依賴于上層。分離出的持久化層封裝了數(shù)據(jù)訪問細節(jié),為業(yè)務邏輯層提供了面向對象的api。持久化(persistence),即把數(shù)據(jù)(如內存中的對象)保存到可永久保存的存儲設備中(如磁盤)。持久化的主要應用是將內存中的數(shù)據(jù)存儲在關系型的數(shù)據(jù)庫中,當然也可以存儲在磁盤文件中、xml數(shù)據(jù)文件中等等。持久層(persistence layer),即專注于實現(xiàn)數(shù)據(jù)持久化應用領域的某個特定系
29、統(tǒng)的一個邏輯層面,將數(shù)據(jù)使用者和數(shù)據(jù)實體相關聯(lián)。三層軟件結構如圖2-4所示:表示層 表示層業(yè)務邏輯層數(shù)據(jù)庫層表示層業(yè)務邏輯層持久化層數(shù)據(jù)庫層三層結構分離出持久化層圖2-4 三層軟件結構圖數(shù)據(jù)庫的讀寫是一個很耗費時間和資源的操作,當大量用戶同時直接訪問數(shù)據(jù)庫的時候,效率將非常低,如果將數(shù)據(jù)持久化就不需要每次從數(shù)據(jù)庫讀取數(shù)據(jù),直接在內存中對數(shù)據(jù)進行操作,這樣就節(jié)約了數(shù)據(jù)庫資源,而且加快了系統(tǒng)的反映速度。增加持久化層提高了開發(fā)的效率,使軟件的體系結構更加清晰,在代碼編寫和系統(tǒng)維護方面變得更容易。特別是在大型的應用里邊,會更有利。同時,持久化層作為單獨的一層,人們可以為這一層獨立的開發(fā)一個軟件包,讓其
30、實現(xiàn)將各種應用數(shù)據(jù)的持久化,并為上層提供服務。從而使得各個企業(yè)里做應用開發(fā)的開發(fā)人員,不必再來做數(shù)據(jù)持久化的底層實現(xiàn)工作,而是可以直接調用持久化層提供的api。2.5.2 hibernate的應用及api簡介hibernate是一種java語言下的對象關系映射解決方案。它是一種自由、開源的軟件。它用來把對象模型表示的對象映射到基于sql的關系模型結構中去,為面向對象的領域模型到傳統(tǒng)的關系型數(shù)據(jù)庫的映射,提供了一個使用方便的框架。hibernate不僅管理java類到數(shù)據(jù)庫表的映射(包括從java數(shù)據(jù)類型到sql數(shù)據(jù)類型的映射),還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅度減少開發(fā)時人工使用sql
31、和jdbc處理數(shù)據(jù)的時間。hibernate對jdbc進行了非常輕量級的對象封裝,使得java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。hibernate可以應用在任何使用jdbc的場合,它既可以在java的客戶端程序使用,也可以在servlet/jsp的web應用中使用。最具革命意義的是,hibernate可以在應用ejb(enterprisejavabeans是java應用于企業(yè)計算的框架)的j2ee架構中取代cmp,完成數(shù)據(jù)持久化的重任。hibernate使用 java 反射機制 而不是字節(jié)碼增強程序來實現(xiàn)透明性。hibernate 的性能非常好,因為它是個輕量級框架。映射的靈活
32、性很出色。hibernate支持各種關系數(shù)據(jù)庫,從一對一到多對多的各種復雜關系。hibernate核心接口如圖2-5所示:configuration配置hibernatesessionfactory初始化hibernatesession負責對象操作query執(zhí)行數(shù)據(jù)庫查詢criteria執(zhí)行數(shù)據(jù)庫查詢transaction管理事務創(chuàng)建創(chuàng)建執(zhí)行執(zhí)行執(zhí)行圖2-5 hibernate核心接口框圖2.6 struts2 技術struts2是一個典型的基于mvc模式的應用架構的開源框架,是利用java, servlet和jsp構建web應用的一項非常有用的技術。首先事件是指從客戶端頁面(瀏覽器)由用戶發(fā)
33、出http請求,服務器根據(jù)web.xml配置文件的配置參數(shù),由struts2的控制器strutsprepareandexecutefilter調用struts.xml的配置參數(shù),使用一個普通的類,簡稱action類來接受瀏覽器表單提交的事件,這里使用了command模式,每個action類都必須有對應請求的實現(xiàn)方法,action執(zhí)行完業(yè)務邏輯之后根據(jù)struts.xml的配置找到對應的result,并跳轉到相應的頁面。struts2中的model是一個普通的java類即action類,它代表了一種應用,這個對象中至少包含幾個字段,這些字段是jsp頁面表單中的input字段,因為一個表單對應一個
34、事件,所以,當我們需要將事件粒度細化到表單中這些字段時,也就是說,一個字段對應一個事件時,單純使用struts2就不太可能,當然通過結合javascript也是可以轉彎實現(xiàn)的。struts2是一個基于sun j2ee平臺的mvc框架,主要是采用filter和jsp技術來實現(xiàn)的。struts2是由之前一個著名的框架webwork發(fā)展而來的,開發(fā)人員利用其進行開發(fā)時不用再自己編碼實現(xiàn)全套mvc模式,極大的節(jié)省了時間。struts2包含了一組想相互協(xié)作的類、servlet和jsp標記,它們共同組成了一個可重用的mvc模板。通過定義可以看出,struts2是web應用的開發(fā)框架,struts2包含豐富
35、的標記庫和獨立于該框架工作的實用程序類。圖2-3 顯示了struts2的簡單的基本結構??蛻?瀏覽器)控制器(filter)模型(action)視圖(jsp)result組件(result)struts-config.xml分配讀取轉發(fā)請求響應實例圖 2-3 struts2基本結構通過圖 2-3可以看出,采用struts2框架結構的web應用程序主要由控制器、業(yè)務邏輯、模型和視圖組成。其中的控制器、模型和視圖為struts2框架的主要組成部分,而事務邏輯則是我們需要實現(xiàn)的系統(tǒng)業(yè)務邏輯處理部分。本系統(tǒng)中用到了多個struts的配置文件,此處以主文件struts.xml為例代碼如下:<str
36、uts><include file="struts-user.xml"/><include file="struts-main.xml"/><include file="struts-order.xml"/><include file="struts-cart.xml"/><include file="struts-admin.xml"/><include file="struts-comment.xml"
37、;/><package name="dang-default" extends="json-default"><!- 攔截器,系統(tǒng)默認的,事務攔截器,登錄攔截器 -><interceptors><!- 權限攔截器 -><interceptor name="login" class="erceptor.logininterception" /><!- 事物攔截器 -><interceptor name=&q
38、uot;transaction" class="erceptor.transactioninterception" /><!- 系統(tǒng)默認攔截器棧 -><interceptor-stack name="dangstack"><interceptor-ref name="transaction" /><interceptor-ref name="defaultstack" /></interceptor-stack>
39、<!- 權限攔截器棧 -><interceptor-stack name="loginstack"><interceptor-ref name="login"/><interceptor-ref name="dangstack" /></interceptor-stack></interceptors><!- 為所有action添加默認攔截器 -> <default-interceptor-ref name="dangstack&quo
40、t;/> <!- 默認的視圖result -> <global-results><result name="error">/error.jsp</result><result name="login">/user/loginform.jsp</result><result name="verify" type="redirectaction"><param name="actionname">v
41、erify</param><param name="namespace">/user</param></result><result name="invalid.token"></result><result name="input"></result></global-results></package></struts>2.7 spring 技術spring是一種多層的j2ee應用程序框架,sprin
42、g的核心是提供一種新的機制來管理業(yè)務對象以及其依賴關系。一味的遵循j2ee設計模式有時會感到寸步難行。但是spring的出現(xiàn)使一切都得到了簡化。ioc(inverse of control)控制反轉技術可以允許開發(fā)人員通過接口編程,使用xml文件來簡單的定義其實現(xiàn)。因此他可以降低程序之間的耦合度,即解耦合。一般來說系統(tǒng)流行的架構為三層模式的架構即表現(xiàn)層,控制層,數(shù)據(jù)業(yè)務層。使用spring可以明顯降低各個層之間的依賴關系,使得各個層只需要專注自己的工作,每一層給上層留下調用接口,從而最大程度降低各個層之間的依賴關系,spring可以工作在數(shù)據(jù)業(yè)務層,使得service專注于業(yè)務,對dao對象的
43、管理交給spring,從而減少servic和dao的依賴。代碼的靈活性也變強了。2.8 開發(fā)環(huán)境及環(huán)境配置2.8.1 java/jsp系統(tǒng)環(huán)境開發(fā)及測試的系統(tǒng)環(huán)境,我選擇了microsoft windows 7。要開發(fā)jsp,首先必須要求有java環(huán)境,我選擇了javatm platform, standard edition 6 development kit。作為jsp的容器,選擇了目前非常流行的tomcat 6.0。而ide工具則選擇了myeclips。2.8.2 jsp環(huán)境的安裝和環(huán)境變量的設置首先安裝jdk,安裝tomcat。接下來配置環(huán)境變量:右鍵點擊“我的電腦”,在彈出的菜單中點
44、“屬性”,在系統(tǒng)特性里選擇“高級”,找到“環(huán)境變量”,點擊進入后,“系統(tǒng)變量”就是我們需要設置的地方。新建變量catalina_home,變量值為: d:apache-tomcat-5.5.31新建java_home變量,然后在變量值中輸入以下內容: c:program filesjavajdk1.6.0_12編輯path變量:在原有的變量值后添加jdk的bin目錄 %java_home%bin;%catalina_home%bin2.8.3 myeclipse開發(fā)工具myeclipse平臺體系結構主要由5部分組成,分別是平臺運行庫、工作區(qū)、工作臺、團隊支持和幫助。在運行時內核是整個架構的核心
45、,其他部件都是以插件方式來實現(xiàn)的。myeclipse采用動態(tài)加載機制,即只有需要的才加載,這樣可以降低啟動時間,提高資源使用效率。工作空間插件即所謂的工作區(qū),主要負責管理用戶資源,例如用戶創(chuàng)建項目的管理、文件變更等,并負責通知其他插件關于資源變更的信息。工作臺插件是myeclipse 提供的用戶界面。它使用標準窗口工具包(swt)和一個更高級的api(jface)構建的。swt是java的swing/awt的非標準替代者,jface則以swt為基礎,但更易于使用。團隊支持插件負責提供版本控制和配置管理支持。它允許用戶根據(jù)需要添加視圖,并與允許用戶使用的任何版本控制系統(tǒng)交互。幫助插件允許以htm
46、l文件形式添加文檔,并提供了一個附加的導航結構以便用戶使用幫助功能搜索相關信息。2.8.4 tomcat服務器tomcat是sun的jswdk(java server web development kit)中servlet的運行環(huán)境(servlet容器)。tomcat是apache jakarta軟件組織的一個子項目,tomcat是一個jsp/servlet容器,它是在sun公司的jswdk(java server web development kit)基礎上發(fā)展起來的一個jsp和servlet規(guī)范的標準實現(xiàn),使用tomcat可以體驗jsp和servlet的最新規(guī)范。經過多年的發(fā)展,tom
47、cat不僅是jsp和servlet規(guī)范的標準實現(xiàn),而且具備了很多商業(yè)java servlet容器的特性,并被一些企業(yè)用于商業(yè)用途。tomcat目錄如下:tomcat_home|-bin tomcat:存放啟動和關閉tomcat腳本;|-conf tomcat:存放不同的配置文件(server.xml和web.xml);|-doc:存放tomcat文檔;|-lib/japser/common:存放tomcat運行需要的庫文件(jars);|-logs:存放tomcat執(zhí)行時的log文件;|-src:存放tomcat的源代碼;|-webapps:tomcat的主要web發(fā)布目錄(包括應用程序示例)
48、;|-work:存放jsp編譯后產生的class文件;2.9 數(shù)據(jù)庫開發(fā)工具選擇及配置目前數(shù)據(jù)庫的開發(fā)工具,大、中、小型的有很多,比如oracle、ms sql server2000、db2、mysql、access等等許多關系數(shù)據(jù)庫,由于在后期的開發(fā)中,需要經常更換開發(fā)環(huán)境,而且用到的hibernate,對軟件有一定要求,每次系統(tǒng)移植都要花很多時間配置環(huán)境,所以最后選擇了移植性與穩(wěn)定性都很好的mysql數(shù)據(jù)庫。mysql是一個小型關系型數(shù)據(jù)庫管理系統(tǒng),被廣泛地應用在internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁
49、有成本而選擇了mysql作為網(wǎng)站數(shù)據(jù)庫。與其他的大型數(shù)據(jù)庫例如oracle、db2、sql server等相比,mysql自有它的不足之處,如規(guī)模小、功能有限(mysql cluster的功能和效率都相對比較差)等,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,mysql提供的功能已經綽綽有余,而且由于mysql是開放源碼軟件,因此可以大大降低總體擁有成本。在本系統(tǒng)中,對mysql的配置最重要是數(shù)據(jù)庫字符編碼設置,因為數(shù)據(jù)庫的錄入的大多是中文字符,因此在數(shù)據(jù)庫安裝與配置時選擇了設置默認編碼為utf8。3 系統(tǒng)需求分析及設計3.1 系統(tǒng)需求分析3.1.1 系統(tǒng)功能需求
50、本系統(tǒng)主要面向于大學校園網(wǎng)用戶,依托校園網(wǎng)提供給這些用戶一個二手書籍的交易平臺。在大學校園里,很多書籍都很貴,我們必須花費很多錢購買,但等看完后,書本依舊很新,卻沒有了當初的價值,我們也就不會再去用這些書籍。這樣的二手書籍,大多數(shù)的可利用價值很高,如四六級書籍,考研書籍,但是由于信息資源的不流通以及傳統(tǒng)二手書籍交流方式的笨拙,導致了很多仍然具有一定價值或者具有非常價值的二手書籍的閑置甚至浪費,乃至被當作廢棄物處理?,F(xiàn)在通過校園網(wǎng)進入到本系統(tǒng),可以方便快捷的發(fā)布和交流任何二手書籍的信息,并且可以通過留言方式進行深一步的交流。爭取到了信息資源的最大化利用。系統(tǒng)完成的主要功能有:用戶設置功能、發(fā)布信
51、息功能、信息管理功能、搜索信息功能,留言功能,及系統(tǒng)管理功能,具體業(yè)務功能包括如下:用戶注冊:學生可以進行注冊,注冊后需要激活賬號。用戶登錄:只有登錄用戶才能進行信息發(fā)布。管理員登錄后可以進行系統(tǒng)管理。發(fā)布信息:普通用戶和管理員登錄后都可以發(fā)布信息。修改信息:普通用戶可以修改自己發(fā)布的信息,管理員可以修改所有信息。刪除信息:普通用戶可以刪除自己發(fā)布的信息,管理員可以刪除所有信息。瀏覽信息:游客、普通用戶和管理員可以瀏覽所有發(fā)布的信息。搜索信息:游客、普通用戶和管理員可以用關鍵字搜索所有發(fā)布的信息。普通用戶可以搜索自己發(fā)布的所有信息。發(fā)表留言:普通用戶和管理員登錄后都可以對發(fā)布信息進行留言。查看
52、留言:游客、普通用戶和管理員都可以查看發(fā)布信息的留言。刪除留言:管理員可以刪除留言。3.1.2 系統(tǒng)界面要求由于系統(tǒng)主要面向大學生,系統(tǒng)界面并沒有過于正統(tǒng),而是著重體現(xiàn)大學校園的自由,創(chuàng)新。系統(tǒng)界面設計應體現(xiàn)人性化,界面清晰簡捷,操作簡單流暢,提高管理效果。不需要任何專業(yè)培訓,不需要配備專門的電腦操作人員,無電腦知識一樣運用自如。關鍵在于系統(tǒng)的框架式設計簡單明晰。3.1.3 系統(tǒng)整體架構本系統(tǒng)使用主流的三大框架7:struts,spring,hibernate,因此對此系統(tǒng)從結構上進行了分層,整體可以分為表現(xiàn)層,控制層,業(yè)務層,持久層。具體分層結構如下圖3-1所示:圖3-1系統(tǒng)整體架構3.2
53、概要設計3.2.1 系統(tǒng)體系結構設計本系統(tǒng)是一個典型的三層應用瀏覽器通過web服務器實現(xiàn)對數(shù)據(jù)庫的各種操作。圖3-2 展示了整個系統(tǒng)的體系結構。數(shù)據(jù)庫struts2s的ssdaoshibernate映射文件spring調用操作映射圖3-2 系統(tǒng)體系結構在這個系統(tǒng)體系結構中,并不是直接jdbc來訪問數(shù)據(jù)庫和進行數(shù)據(jù)庫中相關表的操作,而是通過一系列持久層的java對象來完成數(shù)據(jù)庫的操作。映射文件相當于持久層的java對象和數(shù)據(jù)庫的表之間的橋梁,它所描述的是這兩都之間的對應關系。而且,持久層的java對象和數(shù)據(jù)庫表之間的關系也是一一對應的。3.2.2 用戶注冊功能模塊設計用戶注冊必須填寫所要求的個人
54、資料,此處會對用戶輸入的郵箱進行ajax驗證,確保不能和其它注冊用戶的郵箱重復,當完成個人資料填寫后才可以注冊上,注冊之后系統(tǒng)會給用戶注冊的郵箱發(fā)送一個激活賬戶的驗證碼,用戶需要根據(jù)發(fā)送的驗證碼激活賬戶后才可正常使用。3.2.3 發(fā)布信息功能模塊設計發(fā)布信息功能主要是為已注冊之后并且成功激活賬戶的用戶服務,登錄之后的普通用戶可以即時發(fā)布自己的二手書籍信息,此處需要根據(jù)系統(tǒng)規(guī)定填寫好要出售書籍的具體信息,發(fā)布之后立刻就能在信息列表頁瀏覽到。3.2.4 用戶管理功能模塊設計信息管理功能是用戶能管理自己發(fā)布的信息,如刪除,修改等,也包含系統(tǒng)管理員刪除用戶發(fā)布的非法信息。當前用戶只能管理和修改自己發(fā)布
55、的信息,而管理員能刪除所有普通用戶發(fā)布的信息。3.2.5 留言模塊設計普通用戶和已經登錄的用戶都可以對自己的商品和其他的商品進行留言評論,用戶發(fā)表留言之后系統(tǒng)自動跳轉到當前留言的頁面,并顯示出所有的留言,包含當前添加之后的留言。3.2.6 功能設計的目標與原則此二手書交易平臺的主要目的是服務于學生,方便學生進行網(wǎng)上交易。其原則是界面友好,操作簡單且可靠,主要注重主要交易功能的實現(xiàn),并不需要像其它的網(wǎng)絡交易平臺那樣功能繁多,在這里主要的目的是為了提供簡單高效的交易平臺。具體做到:a)架構清晰,界面友好美觀,簡捷,實用性強。b)動態(tài)式信息發(fā)布:為充分展現(xiàn)網(wǎng)站的時實性,二手交易平臺采用動態(tài)網(wǎng)頁技術實
56、現(xiàn)內容發(fā)布。c)提供信息搜索及查看方式。全面自動化管理。d)全面整合買家和賣家之間的信息,提供一個交流溝通的平臺。e)可用性。目標系統(tǒng)功能齊全,能夠滿足大部分業(yè)務需求。f)確保在能承受大量用戶并發(fā)請求的前提下,系統(tǒng)能穩(wěn)定運行g)系統(tǒng)還要有良好的擴展性,而不單單為實現(xiàn)單一的功能而存在h)充分融合當前主流的技術,為系統(tǒng)的高性能打下基礎 系統(tǒng)綜合功能模塊如下圖3-3所示:首頁用戶登錄用戶注冊游客普通用戶管理員瀏覽二手信息瀏覽信息留言查看信息留言搜索二手信息管理個人信息發(fā)布二手信息管理信息留言管理二手信息管理個人信息管理注冊用戶購物車圖 3-3 系統(tǒng)功能結構圖3.3 數(shù)據(jù)庫設計3.3.1 數(shù)據(jù)庫需求分析對于數(shù)據(jù)庫的需求主要體現(xiàn)在對數(shù)據(jù)庫的提交信息、更新信息、刪除信息、保存信息等。這些信息的存在都取決于各個功能模塊的對信息的需求。通過對功能模塊的具體操作,實現(xiàn)對數(shù)據(jù)庫中信息的輸入和輸出。同時還要考慮到數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公共事業(yè)管理領域新興挑戰(zhàn)試題及答案
- 浙教版科學七年級上冊第一章《科學入門》教案
- 市場營銷中的價值主張設計試題及答案
- 7《微生物與健康》教學設計-2024-2025學年科學六年級上冊教科版
- 《第二章 一元一次不等式與一元一次不等式組》回顧與反思 教學設計2024-2025學年北師大版數(shù)學八年級下冊
- 八年級歷史上冊 第六單元 中華民族的抗日戰(zhàn)爭 第22課 抗日戰(zhàn)爭的勝利教學設計 新人教版
- 2024-2025學年高中政治 第4單元 第11課 第2框 社會歷史的主體教學設計 新人教版必修4
- 2024年小自考行政管理行政倫理試題及答案
- 2024年小自考行政管理獎勵機制試題及答案
- 汕頭市SCRATCH圖形化編程課 5.外敵入侵教學設計
- 演出場所衛(wèi)生清潔方案
- 山東省《山東省仿古建筑工程消耗量定額》交底培訓資料
- 魯迅《祝?!?公開課)省公開課一等獎全國示范課微課金獎
- 2024年長江工程職業(yè)技術學院單招職業(yè)技能測試題庫及答案解析
- RFJ 006-2021 RFP型人防過濾吸收器制造與驗收規(guī)范(暫行)
- JTG∕T F30-2014 公路水泥混凝土路面施工技術細則
- 加油站安全巡檢檢查
- 植物生理學課件(王小菁-第8版)-第五章-植物同化物的運輸
- 《國家綜合性消防救援隊伍處分條令(試行)》知識考試題庫(含答案)
- 吉林油田公司管理手冊
- 個人簡歷電子版表格下載
評論
0/150
提交評論