基于java的宠物管理系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)
基于JAVA的寵物網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)
本系統(tǒng)是采用Java技術(shù)來構(gòu)建的一個(gè)基于Web技術(shù)的B/S結(jié)構(gòu)的寵物網(wǎng)站,該網(wǎng)站建立在Spring和Struts2框架之上,前臺(tái)使用JSP作為開發(fā)語言,后臺(tái)使用MySQL數(shù)據(jù)庫管理系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行管理,開發(fā)環(huán)境選用MyEclipse,應(yīng)用服務(wù)器采用Tomcat。
寵物網(wǎng)站系統(tǒng)為廣大用戶實(shí)現(xiàn)便捷的購買寵物的功能,實(shí)現(xiàn)寵物商店的網(wǎng)絡(luò)化管理。網(wǎng)站前臺(tái)系統(tǒng)主要負(fù)責(zé)與用戶打交道,實(shí)現(xiàn)用戶的注冊(cè)、登錄、寵物預(yù)覽、提交訂單等功能。網(wǎng)站后臺(tái)系統(tǒng)主要實(shí)現(xiàn)管理員登錄、會(huì)員中心、新聞動(dòng)態(tài)、完成訂單、系統(tǒng)維護(hù)等功能。結(jié)果表明,本系統(tǒng)能夠?qū)崿F(xiàn)所需的功能,并且運(yùn)行狀況良好。
本文分為六個(gè)部分。在緒論里首先分析了課題的研究背景與研究現(xiàn)狀;第二章介紹了本系統(tǒng)開發(fā)采用的技術(shù);第三章根據(jù)軟件開發(fā)流程,對(duì)系統(tǒng)進(jìn)行可行性分析和需求分析;第四章為系統(tǒng)概要設(shè)計(jì),本章提出系統(tǒng)總體功能模塊的設(shè)計(jì),并對(duì)數(shù)據(jù)庫的結(jié)構(gòu)進(jìn)行設(shè)計(jì);第五章著重介紹各個(gè)功能模塊的實(shí)現(xiàn)方案;最后,第六章介紹系統(tǒng)單元測(cè)試和性能測(cè)試的設(shè)計(jì),以及對(duì)測(cè)試結(jié)果的分析。
寵物商店網(wǎng)站系統(tǒng);JSP;Mysql數(shù)據(jù)庫;Spring和Struts2框架
目??? 錄
摘 要..................................................................................................................... i
ABSTRACT........................................................................................................... ii
1緒論.................................................................................................................... 1
1.1研究的背景和意義..................................................................................... 1
1.2國內(nèi)外研究現(xiàn)狀......................................................................................... 2
1.3研究內(nèi)容和步驟......................................................................................... 4
2基本技術(shù)方案...................................................................................................... 5
2.1系統(tǒng)采用的技術(shù)......................................................................................... 5
2.1.1JSP技術(shù).......................................................................................... 5
2.1.2 JavaScript技術(shù)............................................................................ 5
2.1.3Servlet技術(shù)................................................................................... 6
2.2基于B/S的WEB應(yīng)用體系結(jié)構(gòu)................................................................. 7
2.3MyEclipse簡介........................................................................................... 9
2.4Tomcat簡介.............................................................................................. 11
2.5Struts 2框架.............................................................................................. 11
2.6 Spring框架.............................................................................................. 14
3.系統(tǒng)需求分析.................................................................................................... 21
3.1功能需求分析.......................................................................................... 21
3.2系統(tǒng)設(shè)計(jì)規(guī)則.......................................................................................... 22
3.3系統(tǒng)的可行性分析................................................................................... 22
3.3.1技術(shù)可行性.................................................................................... 22
3.3.2經(jīng)濟(jì)可行性.................................................................................... 22
3.3.3操作可行性.................................................................................... 22
3.3.4 技術(shù)可行性分析............................................................................ 23
3.3.5 運(yùn)行可行性分析............................................................................ 23
3.3.6 經(jīng)濟(jì)可行性分析............................................................................ 23
3.4運(yùn)行環(huán)境................................................................................................. 23
4.寵物網(wǎng)站系統(tǒng)概要設(shè)計(jì)...................................................................................... 24
4.1系統(tǒng)功能結(jié)構(gòu)圖....................................................................................... 24
4.2系統(tǒng)交互圖.............................................................................................. 25
4.3數(shù)據(jù)庫設(shè)計(jì).............................................................................................. 26
4.4系統(tǒng)概要設(shè)計(jì).......................................................................................... 29
4.4.1系統(tǒng)的前臺(tái).................................................................................... 29
4.4.2系統(tǒng)的后臺(tái).................................................................................... 33
5.系統(tǒng)的詳細(xì)設(shè)計(jì)與功能實(shí)現(xiàn)............................................................................... 35
5.1應(yīng)用層配置.............................................................................................. 35
5.2登錄功能的實(shí)現(xiàn)....................................................................................... 36
5.3注冊(cè)功能的實(shí)現(xiàn)....................................................................................... 37
5.4商品管理功能的實(shí)現(xiàn)................................................................................ 38
5.5訂單管理模塊的實(shí)現(xiàn)................................................................................ 40
5.6會(huì)員管理模塊的實(shí)現(xiàn)................................................................................ 40
6.測(cè)試與性能分析................................................................................................ 41
6.1系統(tǒng)測(cè)試目的與意義................................................................................ 41
6.2測(cè)試環(huán)境................................................................................................. 42
6.3測(cè)試過程................................................................................................. 42
6.4測(cè)試的主要內(nèi)容及結(jié)果............................................................................ 43
總結(jié)與展望.......................................................................................................... 45
參考文獻(xiàn).............................................................................................................. 46
致謝..................................................................................................................... 47
附錄:英文翻譯................................................................................................... 49
1.英文原文........................................................................................................... 49
2.中文翻譯........................................................................................................... 54
1緒論
1.1研究的背景和意義
隨著社會(huì)的進(jìn)步,人民生活水平的提高,特別是近些年來,寵物以突飛猛進(jìn)的速度進(jìn)入到百姓家里,成為人們生活中重要娛樂內(nèi)容之一。以前寵物只是貴族人的娛樂項(xiàng)目,迄今,我國已經(jīng)把寵物作為一種生活的方式已得到普遍認(rèn)可,伴隨著人民精神文明的提高,越來越多的寵物已經(jīng)和我們成為了好朋友。但是,我們?cè)撛趺春退麄內(nèi)ハ嗵?#xff0c;該怎么樣去呵護(hù)他們,畢竟他們和人類還有很大的區(qū)別,我們應(yīng)該給他們用什么樣的東西?我們應(yīng)該給他們吃些什么好呢?大多數(shù)人都不知道,他們只是簡單的知道應(yīng)該像照顧孩子一樣去照顧他們,但是他們并不會(huì)說話,甚至有些人并不會(huì)把他們當(dāng)作孩子來呵護(hù)!由此可見寵物商品的相關(guān)信息已經(jīng)成為重要的話題。
寵物作為我們?nèi)祟惖挠押玫呐笥褎?dòng)物是我們?nèi)祟惈@得快樂幸福與健康的一個(gè)重要來源,而且飼養(yǎng)寵物可以讓人們的生活的更豐富多彩,更加幸福充實(shí),同時(shí)陪著寵物運(yùn)動(dòng)對(duì)身體有很大好處能夠有效的降低身體里血壓和血脂,在當(dāng)前越發(fā)競爭激烈的社會(huì)中可以提供良好的精神支持特別當(dāng)我們遇到挫折時(shí),我們可以通過與寵物的交流,調(diào)節(jié)我們的心情有助于我們的心理健康管理,緩解我們生活中遇到的各種壓力從而提高工作上的效率。另一方面養(yǎng)可愛的寵物可以培養(yǎng)我們后代的責(zé)任心和愛心以及社會(huì)社交能力。當(dāng)我們的孩子與狗狗愉快的玩耍時(shí),狗狗可以傳遞許多正能量。而且最關(guān)鍵的是養(yǎng)寵物可以保護(hù)我們的家庭財(cái)產(chǎn)安全,可以起到家庭防止被盜竊保護(hù)作用使我們整個(gè)家庭有一種安全放心感。寵物也可以給我們以及后代帶來無限的歡樂樂趣成為幸福和快樂的源泉,并能夠幫助人們積極出去促進(jìn)進(jìn)行體育鍛煉,給我們提供了許多人與他人相互溝通交流的機(jī)會(huì)。目前養(yǎng)寵物的人數(shù)增加的非常迅速,越來越多的寵物信息的網(wǎng)站應(yīng)運(yùn)而生。將傳統(tǒng)宣傳與日益成熟的網(wǎng)絡(luò)宣傳結(jié)合在一起,打造一個(gè)兼具傳統(tǒng)和電子商務(wù)特色的寵物銷售網(wǎng)站,極具意義。
隨著電子商務(wù)的發(fā)展趨勢(shì)日趨成熟伴隨著社會(huì)發(fā)展的必然如何面對(duì)電子商務(wù)方式、以及如何適應(yīng)數(shù)字化生存并積極參與電子商務(wù)時(shí)代的國際競爭中取得良好的機(jī)會(huì)。這是關(guān)系到每一個(gè)公民、每個(gè)公司企業(yè)和部門及國家發(fā)展與生存的重要的戰(zhàn)略問題,而且也是我們國家管理部門現(xiàn)在應(yīng)該規(guī)劃、并鼓勵(lì)其大力發(fā)展的關(guān)鍵問題。
目前隨著我們的科學(xué)技術(shù)的不斷的發(fā)展提高,我們的計(jì)算機(jī)科學(xué)水平日益發(fā)展成熟,它給我們帶來的好處已被我們深刻了解,而且它已經(jīng)在我們?nèi)祟惿钌鐣?huì)的各個(gè)領(lǐng)域范圍內(nèi)發(fā)揮著越來越關(guān)鍵的作用。這主要?dú)w功與因?yàn)橛?jì)算機(jī)商品信息具有著多人工管理所不具備的優(yōu)勢(shì),比如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性良好等。這些優(yōu)勢(shì)極大的提高了信息管理的速度,這也正是將來公司企業(yè)的科學(xué)化、正規(guī)化管理,和世界接軌的至關(guān)重要的條件。所以,我們急需研制出開發(fā)一套寵物商品網(wǎng)站系統(tǒng)對(duì)有效管理相關(guān)信息是非常必要的。
1.2國內(nèi)外研究現(xiàn)狀
?? 目前社會(huì)由于隨著人們的生活水平的日益提高改善以及城市化速度的快速向前發(fā)展以及城市家庭規(guī)模的縮小,寵物慢慢的成為我們生活中的關(guān)鍵部分。根據(jù)一些資料顯示,而今中國都市擁有寵物數(shù)目已經(jīng)超過1億只,并且其數(shù)量增加速度越來越快,如日中天的寵物市場行業(yè)熱吸引了越來越多的人的關(guān)注!接下來我們將大概的闡述我國目前寵物行業(yè)的發(fā)展現(xiàn)狀。由此帶來的問題和建議以及發(fā)展前景。
最近這些年計(jì)算機(jī)和互聯(lián)網(wǎng)建設(shè)獲得了高速的發(fā)展。在中國,互聯(lián)網(wǎng)已經(jīng)是廣大人民生活的一部分。現(xiàn)在中國社會(huì)提倡互聯(lián)網(wǎng)加,互聯(lián)網(wǎng)與傳統(tǒng)行業(yè)結(jié)合,以提供效益和競爭力。使用計(jì)算機(jī)和互聯(lián)網(wǎng)對(duì)線上銷售平臺(tái)進(jìn)行管理,它有著很大的價(jià)值。同時(shí)有著特有的功能比如:檢索快速、查看方便快捷、效率高、成本低、存儲(chǔ)數(shù)據(jù)量大、使用壽命長、并且溝通成本低等,這些優(yōu)點(diǎn)能為商品銷售提供極大的便利。而且只要銷售網(wǎng)站設(shè)計(jì)合理,就可以為手機(jī)廠商添加新的銷售渠道,減少手機(jī)產(chǎn)品的庫存,利用網(wǎng)絡(luò)的共享、互動(dòng)的優(yōu)點(diǎn),結(jié)合實(shí)體銷售的優(yōu)點(diǎn),借助數(shù)據(jù)庫管理技術(shù)實(shí)現(xiàn)手機(jī)產(chǎn)品網(wǎng)上銷售規(guī)范化、個(gè)性化、人性化。寵物主要是以狗、貓為主。我們以狗為例,現(xiàn)在為什么社會(huì)越來越多的人喜歡它而且愿意養(yǎng)它呢?狗起源于狼,目前已經(jīng)得到了共識(shí),但圍繞著具體的發(fā)源地和時(shí)間則是眾說紛紜。到目前為止,最早的狗化石證據(jù)是來自于德國14000年前的一個(gè)下頜骨化石,另外一個(gè)是來源于中東大約12000年前的一個(gè)小型犬科動(dòng)物骨架化石。這不過養(yǎng)寵物對(duì)我們?nèi)祟悂碚f有諸多的好處,比如說以下幾個(gè)方面1日常生活中我們可以和狗狗玩耍,增加許多生活中的樂趣
當(dāng)我們工作或?qū)W習(xí)一天后,帶著渾身疲憊的回到家中,看見繞膝承歡的小狗后,一切煩惱憂愁不愉快都拋到到腦后。目前有很多老人,很多家里只有一個(gè)兒女,而且兒女長期在外地工作不在身邊,養(yǎng)一個(gè)狗或貓,能夠給老年人帶來很大的精神寄托,減少他們孤獨(dú)的感覺,重新幫助他們對(duì)生活的信心。
寵物也可以幫助小的孩子一顆積極純潔向上的心,而且根據(jù)有關(guān)資料顯示,狗狗也對(duì)治療兒童癡呆癥和自閉癥等疾病都有莫大的幫助,每年都有很多的志愿者,帶著他們的自己的狗狗到孤兒院或兒童心理疾病治療中心去幫助那里的孩子,給哪里的孩子帶來了許多快樂。甚至連一些患有高血壓或者心臟病的病人靠和狗狗和貓咪的交流玩耍可以降低血壓和減少心臟病的復(fù)發(fā)。
2:寵物在救援社會(huì)活動(dòng)中也扮演著至關(guān)重要的角色
狗狗在我們社會(huì)中扮演者原來越重要的角色,狗因?yàn)樘焐哂辛己玫男嵊X,它的嗅覺極其發(fā)達(dá)和靈敏,利用此特性可以發(fā)掘獵物,槍支,彈藥等。有專門的警犬用于幫助警察破案,而且發(fā)揮著至關(guān)重要的作用。
這些年來,由于數(shù)據(jù)倉庫技術(shù),網(wǎng)絡(luò)信息技術(shù),電子商務(wù)信息技術(shù)的飛速發(fā)展,可視化技術(shù)已經(jīng)涉及到人們生活的各個(gè)部分,人們提出進(jìn)一步定義數(shù)據(jù)可視化概念,特別注重在可視化大型數(shù)據(jù)庫或數(shù)據(jù)倉庫中的可視化。這是在非空間數(shù)據(jù)領(lǐng)域中應(yīng)用可視化技術(shù),使人們不需要束縛于通過關(guān)系數(shù)據(jù)表來研究和理解數(shù)據(jù),而且在一個(gè)比較直觀的方式下查詢數(shù)據(jù)和相關(guān)結(jié)構(gòu)之間的關(guān)系。在當(dāng)今社會(huì)隨著互聯(lián)網(wǎng)的高速普及,電子商務(wù)成為熱點(diǎn),由于淘寶和京東的存在,商家傳統(tǒng)的銷售渠道受到了極大的挑戰(zhàn),利潤降低并且銷量下降,傳統(tǒng)的模式的商家情況不容樂觀。而在線網(wǎng)絡(luò)銷售網(wǎng)站比實(shí)體店鋪具有更高的優(yōu)勢(shì),只需要很少的人工和互聯(lián)網(wǎng)環(huán)境就可以實(shí)現(xiàn)在線購物,用戶可以直接從網(wǎng)上查看購買所需要的網(wǎng)絡(luò)產(chǎn)品,同時(shí)網(wǎng)絡(luò)銷售網(wǎng)站提供了廣泛和快捷的搜索途徑,方便用戶查找,分類精確,購物良好、風(fēng)險(xiǎn)小,完善了消費(fèi)體驗(yàn)。所以手機(jī)銷售網(wǎng)站受到傳統(tǒng)模式企業(yè)的關(guān)注,并且紛紛開通在線手機(jī)銷售網(wǎng)站。消費(fèi)者在網(wǎng)站注冊(cè)后可以瀏覽網(wǎng)站信息、按需要搜索網(wǎng)絡(luò)產(chǎn)品、找到想購買的產(chǎn)拼后通過下定單實(shí)現(xiàn)用戶的在線購買,使交易更加迅速、準(zhǔn)確;管理員登錄后可以管理用戶、信息和定單等實(shí)現(xiàn)系統(tǒng)的更新維護(hù)。
???? 圖1-1 ????到2015年為止中國市場寵物產(chǎn)業(yè)規(guī)模現(xiàn)狀
1.3研究內(nèi)容和步驟
本文主要分為六個(gè)章節(jié),第一部分為前言,主要介紹了課題背景、研究意義、國內(nèi)外研究現(xiàn)狀、課題的研究方法、技術(shù)路線以及本文研究的主要內(nèi)容等。
第二部分為相關(guān)技術(shù)簡介,主要介紹了JSP技術(shù)、MyEclipse、Tomcat、以及Oracle數(shù)據(jù)庫等。
第三部分為系統(tǒng)分析,主要介紹了可行性分析、包括技術(shù)可行性、經(jīng)濟(jì)可行性、操作可行性等。
第四部分為需求分析,主要進(jìn)行了系統(tǒng)的功能需求分析和非功能需求分析等。
第五部分為系統(tǒng)概要設(shè)計(jì),主要介紹了系統(tǒng)設(shè)計(jì)過程。
第六部分為系統(tǒng)詳細(xì)設(shè)計(jì),對(duì)系統(tǒng)詳細(xì)設(shè)計(jì)實(shí)現(xiàn)進(jìn)行了介紹。
第七部分為測(cè)試,主要對(duì)系統(tǒng)功能進(jìn)行了測(cè)試。
2基本技術(shù)方案
2.1系統(tǒng)采用的技術(shù)
2.1.1JSP技術(shù)
Jsp技術(shù)sun倡導(dǎo)并聯(lián)合其它公司創(chuàng)建的動(dòng)態(tài)生成HTML,xml或其他文檔的技術(shù)規(guī)范,JSP是一門技術(shù)規(guī)范,也是一門腳本語言,在Jsp中我們可以使用特定語言即Java語言編寫html,xml,以及其他文檔的編寫規(guī)范。
圖2.1.1 項(xiàng)目中Jsp部分的代碼
(1)Jsp擁有java語言的所有特性,列入面向?qū)ο?#xff0c;健壯,安全,可移植,高性能,多線程等。
(2)Jsp運(yùn)行與jsp的容器之中,比較典型的有tomcat。
(3)在開發(fā)項(xiàng)目過程中,jsp文件會(huì)轉(zhuǎn)換成servlet文件,servlet會(huì)在轉(zhuǎn)換成相應(yīng)的class文件。
(4)多樣化和功能強(qiáng)大的開發(fā)工具支持。Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下
(5)支持服務(wù)器端組件。web應(yīng)用需要強(qiáng)大的服務(wù)器端組件來支持,開發(fā)人員需要利用其他工具設(shè)計(jì)實(shí)現(xiàn)復(fù)雜功能的組件供web頁面調(diào)用,以增強(qiáng)系統(tǒng)性能。JSP可以使用成熟的JAVA BEANS 組件來實(shí)現(xiàn)復(fù)雜商務(wù)功能。
內(nèi)部對(duì)象說明:request 客戶端請(qǐng)求,此請(qǐng)求會(huì)包含來自GET/POST請(qǐng)求的參數(shù); response 網(wǎng)頁傳回客戶端的響應(yīng);pageContext 網(wǎng)頁的屬性是在這里管理; session 與請(qǐng)求有關(guān)的會(huì)話; application servlet正在執(zhí)行的內(nèi)容;out 用來傳送響應(yīng)的輸出流; config 代碼片段配置對(duì)象;page JSP網(wǎng)頁本身; exception 針對(duì)錯(cuò)誤網(wǎng)頁,未捕捉的例外。
2.1.2 JavaScript技術(shù)
JavaScript是一種基于對(duì)象和事件驅(qū)動(dòng)并具有相對(duì)安全性的客戶端腳本語言。同時(shí)也是一種廣泛用于客戶端Web開發(fā)的腳本語言,常用來給HTML網(wǎng)頁添加動(dòng)態(tài)功能,比如響應(yīng)用戶的各種操作。JavaScript的一個(gè)重要功能就是面向?qū)ο蟮墓δ?#xff0c;通過基于對(duì)象的程序設(shè)計(jì),可以用更直觀、模塊化和可重復(fù)使用的方式進(jìn)行程序開發(fā)。在HTML基礎(chǔ)上,使用Javascript可以開發(fā)交互式Web網(wǎng)頁。JavaScript的出現(xiàn)使得網(wǎng)頁和用戶之間實(shí)現(xiàn)了一種實(shí)時(shí)性的、動(dòng)態(tài)的、交互性的關(guān)系,使網(wǎng)頁包含更多活躍的元素和更加精彩的內(nèi)容。在本系統(tǒng)中很多地方使用了JavaScript技術(shù),比如說,檢驗(yàn)用戶輸入數(shù)據(jù)的有效性,是否重復(fù),是否為空等等。
2.1.3Servlet技術(shù)
Servlet是servlet加applet的縮寫,applet是運(yùn)行Java客戶端中的小程序,java誕生的時(shí)候也就是因?yàn)閍pplet而聞名于世,不過現(xiàn)在applet現(xiàn)在很少有人使用了,而servlet在不斷的發(fā)展和更新之中,現(xiàn)在已經(jīng)成為很多技術(shù)的基礎(chǔ)比如spring和strutes2等等。Servlet本質(zhì)上也就是JAVA類,所以在編寫時(shí)要尊崇java規(guī)則,不過servlet與普通的java類也有所不同,比如說,它沒有main方法,他是靠服務(wù)器所運(yùn)行的,它的創(chuàng)建和銷毀都是由它自己的容器說產(chǎn)生的。這里說的容器我們這的是類似于tormat服務(wù)器。有自己的servlet規(guī)則,因此他有一些普通java類所不具有的特性。Servlet與http是緊密聯(lián)系的,所以使用servlet可以處理所有與HTTP相關(guān)的類容,這也是servlet廣泛應(yīng)用的原因之一。
圖2—1 項(xiàng)目中servlet 的代碼
我的項(xiàng)目中幾乎每一個(gè)JAVA文件都要用到servlet,其中我們使用到的最主要的方法為service(httpServlet Request,httpServletResponse)方法。
圖2—2 項(xiàng)目中service 的代碼
通過request與response的來實(shí)現(xiàn)前臺(tái)與后臺(tái)之間的數(shù)據(jù)傳輸。我們可以在xml文件中配置servlet屬性,其中servlet用來注冊(cè)個(gè)servlet,而它有兩個(gè)主要元素一個(gè)是servalet—name和servlet-class,前者用來定義servlet的名稱,后者用來確定servlet的完全限定名,還有映射servlet-mapping標(biāo)簽。下面是servlet的主要流程圖
圖2 servlet的主要流程圖
Servlet的生命周期主要有service,init,destroy等。
使用Servlet的目的是為了幫助我們減少在運(yùn)用MVC設(shè)計(jì)模型來開發(fā)Web應(yīng)用的時(shí)間。Servlet是Apache軟件基金會(huì)(ASF)贊助的一個(gè)開源項(xiàng)目。它最初是Jakarta項(xiàng)目中的一個(gè)子項(xiàng)目,并在2002年3月成為ASF的頂級(jí)項(xiàng)目。它通過采用Java Servlet/JSP技術(shù),實(shí)現(xiàn)了基于Java EE Web應(yīng)用的Model-View-Controller〔MVC〕設(shè)計(jì)模式的應(yīng)用框架〔Web Framework〕,是MVC經(jīng)典設(shè)計(jì)模式中的一個(gè)經(jīng)典產(chǎn)品。它的優(yōu)點(diǎn)在于:
(1),Servlet基于MVC架構(gòu),框架結(jié)構(gòu)清晰,開發(fā)流程一目了然,開發(fā)人員可以很好的掌控開發(fā)的過程;
(2),使用OGNL進(jìn)行參數(shù)傳遞;
(3),強(qiáng)大的攔截器;
(4),易于測(cè)試;
(5),易于擴(kuò)展的插件機(jī)制;
全局結(jié)果與聲明式異常。
2.2基于B/S的WEB應(yīng)用體系結(jié)構(gòu)
??? Web,全稱為World Wide Web,縮寫為WWW。Web有許多譯名,諸如環(huán)球網(wǎng)、萬維網(wǎng)、全球信息網(wǎng)等。簡單地說,Web是一種體系結(jié)構(gòu),通過它可以訪問分布于Internet主機(jī)上的超文本頁面。這一說法包含以下兩層含義:第一, Web是Internet提供的一種服務(wù)。 第二,Web是存儲(chǔ)在全世界Internet計(jì)算機(jī)中、數(shù)量巨大的文檔的集合,或者可以說,Web是世界上最大的電子信息倉庫[7] [8]。
Web上的海量信息是由彼此關(guān)聯(lián)的文檔組成的,這些文檔稱為主頁或頁面,它是一種超文本信息,使其聯(lián)接在一起的是超鏈接。
Web的內(nèi)容保存在Web站點(diǎn)中,用戶可以通過瀏覽器訪問Web站點(diǎn)。因此,Web是一種典型的基于B/S的體系結(jié)構(gòu)。
工作過程:如下圖2-1所示描述了Web的工作原理。
圖2-1 Web的工作原理
客戶端瀏覽器的主要作用是向Web服務(wù)器發(fā)出請(qǐng)求,當(dāng)接到Web服務(wù)器傳送回來的數(shù)據(jù)以后,對(duì)這些數(shù)據(jù)進(jìn)行解釋和顯示[14]。瀏覽器以URL為統(tǒng)一的定位格式,使用超文本傳輸協(xié)議HTTP接收采用HTML語言編寫的頁面,其基本結(jié)構(gòu)如下圖2-2所示:
圖2-2 使用超文本傳輸協(xié)議HTTP接收采用HTML語言編寫的過程
用戶通過鍵盤或鼠標(biāo)發(fā)出請(qǐng)求,該請(qǐng)求由瀏覽器中的控制器接收、檢查并分析用戶輸入,根據(jù)用戶請(qǐng)求執(zhí)行相應(yīng)動(dòng)作。如果用戶請(qǐng)求可以在本機(jī)解決,例如瀏覽已存在本機(jī)的頁面,則輸出到HTTP解釋器或其他解釋器,解釋后通過驅(qū)動(dòng)程序送入顯示器顯示。如果用戶請(qǐng)求不能在本機(jī)解決,則通過HTTP客戶機(jī)或其他客戶機(jī)及網(wǎng)絡(luò)界面與遠(yuǎn)程服務(wù)器通信,由遠(yuǎn)程服務(wù)器解決用戶請(qǐng)求,將用戶需要的HTML文檔送回,然后通過HTTP解釋器或其他解釋器,解釋后通過驅(qū)動(dòng)程序送入顯示器顯示。
目前兩大主流瀏覽器是Netscape公司的Netscape Communication(簡稱NC)和Microsoft公司的Microsoft Internet Explorer(簡稱IE)。在使用這兩種瀏覽器運(yùn)行HTML文檔時(shí),只需在地址欄中輸人文件的URL即可。NC和IE這兩大瀏覽器可執(zhí)行的程序并不完全相同
2.3MyEclipse簡介
MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipse Enterprise Workbench ,簡稱MyEclipse)是對(duì)EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate[1]。
在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類:
1. J2EE模型
2. WEB開發(fā)工具
3. EJB開發(fā)工具
4. 應(yīng)用程序服務(wù)器的連接器
5. J2EE項(xiàng)目部署服務(wù)
6. 數(shù)據(jù)庫服務(wù)
7. MyEclipse整合幫助
MyEclipse 是一個(gè)十分優(yōu)秀的用于開發(fā)Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開源產(chǎn)品的支持十分不錯(cuò)。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC數(shù)據(jù)庫鏈接工具等多項(xiàng)功能。可以說MyEclipse是幾乎囊括了目前所有主流開源產(chǎn)品的專屬eclipse開發(fā)工具。根據(jù)官方最新消息,MyEclipse 2013已經(jīng)正式發(fā)布!MyEclipse 2013支持HTML5、JQuery和主流的Javascript 庫。隨著MyEclipse 2013支持Html5,你可以添加音頻、視頻和API元素到你的項(xiàng)目,從而為移動(dòng)設(shè)備創(chuàng)建復(fù)雜的Web應(yīng)用程序。你甚至還可以通過HTML5 可視化設(shè)計(jì)器設(shè)計(jì)令人難以置信的用戶界面。同時(shí),隨著MyEclipse 2013支持JQuery,你可以通過插件提升性能,并添加動(dòng)畫效果到設(shè)計(jì)中。myeclipse 10.0系列 主要 有以下 改進(jìn):首先 在eclipse 3.7.2(Indigo) 基礎(chǔ)上構(gòu)建 最大的特色是 :? 完全支持 Java EE 6With MyEclipse 10, you can now take advantage of Java EE 6features, such as:·??????? Servlet 3.0·??????? JSF 2.0·??????? JPA 2.0·??????? EJB 3.1·??????? JAX-RS 1.1其他的改進(jìn):1. 支持maven3.02. 支持 64-bit Windows support3. WebSphere Portal Server 7 and WebSphere 84. JRebel for MyEclipse5. EJB Deployment Descriptor Editor6. Extended DB2 Support7. Extended Application Client Project Support8. Instant Deployment (Experimental)9. EJB Deploy10.J2EE Connector Architecture (JCA)2.4Tomcat簡介
Tomcat 服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web 應(yīng)用服務(wù)器,屬于輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。對(duì)于一個(gè)初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)對(duì)HTML 頁面的訪問請(qǐng)求。實(shí)際上Tomcat 部分是Apache 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。
訣竅是,當(dāng)配置正確時(shí),Apache 為HTML頁面服務(wù),而Tomcat 實(shí)際上運(yùn)行JSP 頁面和Servlet。另外,Tomcat和IIS等Web服務(wù)器一樣,具有處理HTML頁面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過,Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。目前Tomcat最新版本為8.0.0-RC1 (alpha) Released。
Tomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。
2.5Struts 2框架
Struts 2是由出色穩(wěn)定的struts1和webwork框架整合而來,吸取了兩大框架的優(yōu)點(diǎn),提高了開發(fā)效率和規(guī)范性,減少了非常多的冗余代碼,更好的實(shí)現(xiàn)了mvc架構(gòu),層與層之間的關(guān)系更加明確直接,解除了與servlet的強(qiáng)耦合性,無需啟動(dòng)服務(wù)器便可以進(jìn)行單元測(cè)試,功能測(cè)試,極大的節(jié)約了我們的時(shí)間。是在 struts 1和WebWork的技術(shù)基礎(chǔ)上進(jìn)行了合并的全新的Sruts 2框架。其全新的Struts 2的體系結(jié)構(gòu)與Struts 1的體系結(jié)構(gòu)差別巨大。Struts 2以WebWork為核心,采用攔截器的機(jī)制來處理用戶的請(qǐng)求,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯控制器能夠與ServletAPI完全脫離開,所以Struts 2可以理解為WebWork的更新產(chǎn)品。雖然從Struts 1到Struts 2有著太大的變化,但是相對(duì)于WebWork,Struts 2的變化很小。
Struts2的意義
更科學(xué)的管理:
? 使用xml文件管理程序文件對(duì)應(yīng)的關(guān)系,使我們的維護(hù)更加的簡潔更加的安全和更加的迅速。
更安全的操作:
? 1.安全的線程機(jī)制:每個(gè)action都是獨(dú)立的,在我們使用JSP和servlet開發(fā)的時(shí)候,由于servlet是單列模式,導(dǎo)致線程是不安全的,在編程的時(shí)候應(yīng)多加注意,才能避免線程混亂的情況。而strut2的action對(duì)于每一個(gè)請(qǐng)求就會(huì)生成對(duì)應(yīng)的一個(gè)實(shí)例,所以線程是安全的,簡化了開發(fā),安全性也提高了不少。
? 2.防止數(shù)據(jù)重復(fù)提交:token令牌機(jī)制,該機(jī)制可以有效的防止用戶因網(wǎng)速或者電腦卡等因素導(dǎo)致的統(tǒng)一表單數(shù)據(jù)被重復(fù)提交了兩次甚至更多遍的問題,比如說注冊(cè)界面,用戶在填寫完信息后點(diǎn)擊提交按鈕,由于網(wǎng)絡(luò)阻塞而導(dǎo)致的電腦卡頓現(xiàn)象,用戶不耐煩有反復(fù)的點(diǎn)擊提交按鈕,導(dǎo)致重復(fù)提交的現(xiàn)象。
?先進(jìn)的編程思路
?面向切面編程:攔截器(相當(dāng)于過濾器的一種,不編寫重復(fù)的代碼,減少代碼的冗余
?使用filter作為控制器的MVC應(yīng)用實(shí)戰(zhàn)
?流程概念分析
圖2-3 servlet的主要流程圖
圖2-4 struts2的主要流程圖
? 可以看出在struts2中用filter代替了servlet的作用,這是struts2的核心思想
?本項(xiàng)目中到struts2的核心程序段為:
?? 在web.xml中配置filter
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Struts.xml的代碼
!--該標(biāo)簽用于Struts默認(rèn)行為標(biāo)簽 -->
<!-- 開發(fā)模式下使用,這樣可以打印出更加詳細(xì)的錯(cuò)誤信息 -->
<constant name="struts.devMode" value="true" />
<!-- 默認(rèn)我們struts2的請(qǐng)求后綴是action,如果我們不配置該元素,我們至攔截action文件,如果我們配置了,可以攔截action/do的wenjian -->
<constant name="struts.action.extension" value="do, action"/>
<constant name="struts.multipart.saveDir" value="d:/test"></constant>
<constant name="struts.configuration.xml.reload" value="true"/>
<!-- 該標(biāo)簽為包標(biāo)簽,用于區(qū)分不同的請(qǐng)求文件標(biāo)簽 -->
<package name="admin" extends="struts-default" namespace="/admin">
<action name="usersmanager"? class="com.daowen.action.UsersAction">
</action>
圖2-4-1 struts2的核心程序段
對(duì)于Struts1框架而言,由于與JSP/Servlet耦合非常緊密,因而導(dǎo)致了一些嚴(yán)重的問題。首先,Struts1支持的表現(xiàn)層技術(shù)單一。由于Struts1出現(xiàn)的年代比較早,那個(gè)時(shí)候沒有FreeMarker、Velocity等技術(shù),因此它不可能與這些視圖層的模版技術(shù)進(jìn)行整合。其次,Struts1與Servlet API的嚴(yán)重耦合,使應(yīng)用難于測(cè)試。最后,Struts1代碼嚴(yán)重依賴于Struts1 API,屬于侵入性框架。
圖2-5 Http請(qǐng)求流轉(zhuǎn)流程圖
從目前的技術(shù)層面上看,出現(xiàn)了許多與Struts1競爭的視圖層框架,比如JSF、Tapestry和SpringMVC等。這些框架由于出現(xiàn)的年代比較近,應(yīng)用了最新的設(shè)計(jì)理念,同時(shí)也從Struts1中吸取了經(jīng)驗(yàn),克服了很多不足。這些框架的出現(xiàn)也促進(jìn)了Struts的發(fā)展。目前,Struts已經(jīng)分化成了兩個(gè)框架:第一個(gè)是在傳統(tǒng)的Struts1的基礎(chǔ)上,融合了另外的一個(gè)優(yōu)秀的Web框架WebWork的Struts2。Struts2雖然是在Struts1的基礎(chǔ)上發(fā)展起來的,但是實(shí)質(zhì)上是以WebWork為核心的。Struts2為傳統(tǒng)的Struts1注入了WebWork的先進(jìn)的設(shè)計(jì)理念,統(tǒng)一了Struts1和WebWork兩個(gè)框架。Struts1分化出來的另外一個(gè)框架是Shale。這個(gè)框架遠(yuǎn)遠(yuǎn)超出了Struts1原有的設(shè)計(jì)思想,與原有的Struts1關(guān)聯(lián)很少,使用了全新的設(shè)計(jì)思想。Shale更像一個(gè)新的框架而不是Struts1的升級(jí)。
2.6 Spring框架
Spring就是為了解決企業(yè)的復(fù)雜性而創(chuàng)建的,它的特性之一就是基于分層架構(gòu),分成架構(gòu)可以讓我們決定使用哪個(gè)組件而開發(fā)的,同時(shí)也為我們J2EE的開發(fā)創(chuàng)建了條件。Spring是一個(gè)輕量級(jí)級(jí)控制反轉(zhuǎn)(ioc)和面向切面(aop)的容器框架,他主要是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而誕生的:它的目的就是為了解決企業(yè)開發(fā)的復(fù)雜性,它的主要功能為使用基本的JAVABEAN來代替EJB,并且他提供了更多的企業(yè)級(jí)應(yīng)用功能,它的適用范圍是JAVA的任何應(yīng)用,spring不簡單單的是服務(wù)器端的開發(fā),從簡單性,可測(cè)試性,低耦合性的角度而言,任何的java應(yīng)用都可以從spring中受益,sping的核心是面向切面和控制反轉(zhuǎn),spring存在有它得天都后的優(yōu)勢(shì):
1:它定位的領(lǐng)域是許多framework而沒有的,spring致力于一個(gè)統(tǒng)一的方法來管理你的業(yè)務(wù)對(duì)象
2:spring是全面的和模塊化的,sping是分層結(jié)構(gòu)的,這意味著你可以使用孤立與它的任何一個(gè)成分,它的框架依然是內(nèi)在的和穩(wěn)定的。
3:它的設(shè)計(jì)是從底部幫助你易于測(cè)試的代碼。Spring是測(cè)試驅(qū)動(dòng)的理想的framework。
Spring有以下優(yōu)點(diǎn):
1:低侵入式設(shè)計(jì),代碼污染率極低
2:write once,Run anywhere
3:DI有效的降低了耦合度
4:aop提供了通用任務(wù)的管理
5:ORM和DAO簡化了數(shù)據(jù)庫的訪問
6:高度的開放性,并不強(qiáng)制,它的這種優(yōu)點(diǎn)貫穿與表現(xiàn)層,業(yè)務(wù)層,邏輯層,在實(shí)際的開發(fā)過程中,并不強(qiáng)制依賴spring。作為開發(fā)者你可選擇使用spring一部分框架或者全部框架來進(jìn)行你的全部開發(fā)。
?正因?yàn)镾PRING有上述優(yōu)點(diǎn)和好處,可以給我們帶來很多的好處,例如:可以有效的解決組織中間層對(duì)象,還可以減少許多對(duì)單列模式的使用。可以使用統(tǒng)一的配置文件,易于單元測(cè)試以及促進(jìn)良好的編程習(xí)慣,減少編程代價(jià)。
spring特點(diǎn):
Spring的核心模塊:
??????????????????????? 圖2-6 Mvc模塊核心圖
1.軟件應(yīng)用分層架構(gòu)
標(biāo)準(zhǔn)三層架構(gòu):
1:數(shù)據(jù)訪問層:主要是對(duì)原始數(shù)據(jù)(數(shù)據(jù)庫或者文本文件等存放數(shù)據(jù)的形式)的操作層,而不是指原始數(shù)據(jù),也就是說,是對(duì)數(shù)據(jù)的操作,而不是數(shù)據(jù)庫,具體為業(yè)務(wù)邏輯層或表示層提供數(shù)據(jù)服務(wù).
2:業(yè)務(wù)邏輯層:主要是針對(duì)具體的問題的操作,也可以理解成對(duì)數(shù)據(jù)層的操作,對(duì)數(shù)據(jù)業(yè)務(wù)邏輯處理,如果說數(shù)據(jù)層是積木,那邏輯層就是對(duì)這些積木的搭建。具體的講主要負(fù)責(zé)對(duì)數(shù)據(jù)層的操作。也就是說把一些數(shù)據(jù)層的操作進(jìn)行組合。
3:表示層:主要表示W(wǎng)EB方式,如果邏輯層相當(dāng)強(qiáng)大和完善,無論表現(xiàn)層如何定義和更改,邏輯層都能完善地提供服務(wù)。主要對(duì)用戶的請(qǐng)求接受,以及數(shù)據(jù)的返回,為客戶端提供應(yīng)用程序的訪問。
,對(duì)于spring框架來說,就是由spring來負(fù)責(zé)生命周期和對(duì)象間的關(guān)系。
傳統(tǒng)開發(fā)模式:對(duì)象之間相互依賴。
IOC開發(fā)模式:ioc容器安排對(duì)象之間的依賴。
Ioc的另外的名字叫做依賴注入(DepenDency Injection),所謂的依賴注入,就是由IOC容器在運(yùn)行期間,動(dòng)態(tài)地將某種依賴關(guān)系注入到對(duì)象之中。所以,依賴注入和控制反轉(zhuǎn)(IOC)是從不同的角度的描述的同一件事情。就是只通過引入ioc容器,利用依賴關(guān)系注入的方式,實(shí)現(xiàn)對(duì)象之間的解耦。
Ioc在對(duì)象過程中不會(huì)對(duì)業(yè)務(wù)對(duì)象構(gòu)成很強(qiáng)的侵入性,使用ioc之后,對(duì)象之間具有更好的可實(shí)現(xiàn)性,可重用性和可擴(kuò)展性:
降低對(duì)象之間的耦合度
提高開發(fā)效率和產(chǎn)品質(zhì)量
統(tǒng)一標(biāo)準(zhǔn),提高產(chǎn)品的復(fù)用性
模塊具有熱插拔特性。
圖2-7 普通處理方法
圖2-8 spring處理方法
???? Spring core(包含spring基本工具類,其它組件都會(huì)使用到這個(gè)包里的類,是其它組件的核心)
Java bean(是所有都需要用到的,它包含了訪問配置文件,創(chuàng)建和管理bean,以及控制反轉(zhuǎn)和依賴注入操作)
Spring aop(包含了使用aop特性時(shí)所使用到的類)
Spring context(為spring的核心提供了大量的擴(kuò)展,能夠找到使用application context的全部類)。
優(yōu)點(diǎn):
??? 1:開發(fā)人員可以只關(guān)注整個(gè)結(jié)構(gòu)中的其中某一層;
??? 2:可以很容易的用新的實(shí)現(xiàn)來替換原有層次的實(shí)現(xiàn);
??? 3:可以降低層與層之間的依賴;
??? 4:有利于標(biāo)準(zhǔn)化;
??? 5:利于各層邏輯的復(fù)用。
??? 6:結(jié)構(gòu)更加的明確
??? 7:在后期維護(hù)的時(shí)候,極大地降低了維護(hù)成本和維護(hù)時(shí)間
缺點(diǎn):
??? 1:降低了系統(tǒng)的性能。這是不言而喻的。如果不采用分層式結(jié)構(gòu),很多業(yè)務(wù)可以直接造訪數(shù)據(jù)庫,以此獲取相應(yīng)的數(shù)據(jù),如今卻必須通過中間層來完成。
??? 2:有時(shí)會(huì)導(dǎo)致級(jí)聯(lián)的修改。這種修改尤其體現(xiàn)在自上而下的方向。如果在表示層中需要增加一個(gè)功能,為保證其設(shè)計(jì)符合分層式結(jié)構(gòu),可能需要在相應(yīng)的業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層中都增加相應(yīng)的代碼。
??? 3:增加了開發(fā)成本。
2 Spring相關(guān)概念
1:輕量級(jí)的容器:
spring容器幫我們管理業(yè)務(wù)邏輯層,里邊有很多業(yè)務(wù)邏輯對(duì)象,有對(duì)象就有對(duì)象的生命周期的管理(創(chuàng)建,銷毀).
輕量級(jí):容器給予的業(yè)務(wù)邏輯對(duì)象多少種服務(wù)?spring給用戶提供的服務(wù)完全由用戶自己決定,spring想用什么服務(wù)自己開啟使用。但是重量級(jí)的都是只要你用就把所有的服務(wù)都給你,不能自己定制。
spring容器從來不能獨(dú)立運(yùn)行,一定借助于其他容器啟動(dòng),或者借助web容器啟動(dòng),或者ejb容器啟動(dòng)。??? ???
特點(diǎn):
應(yīng)用模塊之間耦合度小,組件都是可重用的,都是各自打包的
2:why spring?
1)動(dòng)態(tài)解藕,方便開發(fā),面向接口設(shè)計(jì)
通過Spring提供的IoC容器,我們可以將對(duì)象之間的依賴關(guān)系交由Spring進(jìn)行控制,避免硬編碼所造成的過度程序耦合。有了Spring,用戶不必再為單實(shí)例模式類、屬性文件解析等這些很底層的需求編寫代碼,可以更專注于上層的應(yīng)用
2)方便程序的測(cè)試TDD(Test-Driven Development)
可以用非容器依賴的編程方式進(jìn)行幾乎所有的測(cè)試工作,在Spring里,測(cè)試不再是昂貴的操作,而是隨手可做的事情。
3)降低Java EE API的使用難度
Spring對(duì)很多難用的Java EE API(如JDBC,JavaMail,遠(yuǎn)程調(diào)用等)提供了一個(gè)簡單的封裝層,通過Spring的簡易封裝,這些Java EE API的使用難度大為降低。
4)方便集成各種優(yōu)秀框架
Spring不排斥各種優(yōu)秀的開源框架,相反,Spring可以降低各種框架的使用難度,Spring提供了對(duì)各種優(yōu)秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。
?Aop(aspect-oriented programming )面向方面的程序設(shè)計(jì),是一種比較新穎的編程思想,aop將程序分為兩個(gè)部分,核心業(yè)務(wù)邏輯以及橫向的業(yè)務(wù)邏輯。在spring中提供了豐富的業(yè)務(wù)支持,允許通過分離業(yè)務(wù)的業(yè)務(wù)邏輯和系統(tǒng)級(jí)的服務(wù),進(jìn)行類聚性的開發(fā)Aop是對(duì)oop的一種延續(xù),也是對(duì)oop的一種補(bǔ)充,oop是一種靜態(tài)的過程,而aop是一種動(dòng)態(tài)的過程,aop的主要功能為系統(tǒng)級(jí)別的功能,列入:系統(tǒng)日志,性能統(tǒng)計(jì),安全控制,事務(wù)處理,異常處理等等這些主要功能,將實(shí)現(xiàn)上述功能的代碼從業(yè)務(wù)邏輯層中劃分出來,將它們獨(dú)立到非業(yè)務(wù)指導(dǎo)性的代碼當(dāng)中,處理這些代碼的時(shí)候不影響其它代碼的處理。使用切面代碼我們可以將面向切面的代碼植入程序,可以有效防止代碼的混亂。Aop專門用于處理系統(tǒng)中分布于各個(gè)模塊中交叉關(guān)注點(diǎn)的問題,在JAVAEE應(yīng)用中,常常通過aop來處理一些具有橫切性質(zhì)的系統(tǒng)級(jí)服務(wù),如事務(wù)管理,安全檢查,緩存,對(duì)象池管理等等,aop已經(jīng)成為一種非常常用的解決方案。
Aop代理其實(shí)是由aop動(dòng)態(tài)生成的一個(gè)對(duì)象,該對(duì)象可作為目標(biāo)對(duì)象使用,aop代理所包含的方法與目標(biāo)對(duì)象方法如下圖所示
圖2-10 aop代理所包含的方法與目標(biāo)對(duì)象方法
6)聲明式事務(wù)的支持
在Spring中,我們可以從單調(diào)煩悶的事務(wù)管理代碼中解脫出來,通過聲明式方式靈活地進(jìn)行事務(wù)的管理,提高開發(fā)效率和質(zhì)量。
7)對(duì)異常的處理方式,所有的都轉(zhuǎn)換成Unchecked的。
8)它不是一個(gè)一體化的解決方案。?
9)良好的設(shè)計(jì),容易擴(kuò)展,很多可重用的組件
3.Spring核心組件(我們主要學(xué)習(xí)的是IOC和AOP模塊)
(1)、Spring Core(IOC) 核心容器,提供組件的創(chuàng)建、裝備、銷毀
(2)、Spring Context Spring上下文,是一個(gè)接口ApplicationContext(繼承自BeanFactory接口)的實(shí)現(xiàn)
(3)、Spring Web容器,web應(yīng)用上下文,是webApplicationContext接口的實(shí)現(xiàn)
(4)、Spring DAO容器,是SpringDAO 支持模塊,是為了簡化DAO的使用
(5)、Spring ORM
(6)、Spring AOP ,對(duì)AOP編程支持的模塊 [面向切面編程,擴(kuò)展功能不是修改源代碼實(shí)現(xiàn)]
(7)、Spring MVC,類似于Spring表示層的一個(gè)框架
4.spring ioc(must):
IOC:Inversion of Control 控制反轉(zhuǎn)
?????? 一種說法:對(duì)象之間的依賴關(guān)系,由容器在運(yùn)行時(shí)依據(jù)配置文件動(dòng)態(tài)的建立
??? ???另一種說法:對(duì)象的控制器轉(zhuǎn)移了,轉(zhuǎn)到外部容器了,避免了代碼的糾纏,代碼更容易被維護(hù),模板之間的耦合性降低,容易測(cè)試
??? 比如:有一個(gè)類,在類里面有方法(不是靜態(tài)的方法),調(diào)用類里面的方法,創(chuàng)建類的對(duì)象,使用對(duì)象調(diào)用方法,
??? 創(chuàng)建類對(duì)象的過程,需要new出來對(duì)象。
??? ioc是把對(duì)象的創(chuàng)建不是通過new方式實(shí)現(xiàn),而是交給spring配置創(chuàng)建類對(duì)象
IoC 控制反轉(zhuǎn)意味著將你設(shè)計(jì)好的類交給容器去控制,而不是在類的內(nèi)部進(jìn)行控制,即控制權(quán)由應(yīng)用代碼中轉(zhuǎn)到了外部容器
?? IoC:包括兩部分內(nèi)容
????? DI:Dependency Injection依賴注入,組件不做定位查詢,只提供相應(yīng)方法,由容器創(chuàng)建對(duì)象,并調(diào)用相應(yīng)方法設(shè)置所需對(duì)象需要的組件
????? (不要求)DL:Dependency Loopup依賴查找,容器創(chuàng)建對(duì)象并提供回調(diào)接口和上下文環(huán)境給組件,需要時(shí)通過接口從容器中查找對(duì)象
?? 依賴查找,現(xiàn)在使用不太多。(EJB使用的更多,將對(duì)象創(chuàng)建好后,放到容器中。)
??? IOC解決:對(duì)象誰來創(chuàng)建的問題
??? DI解決:對(duì)象間的關(guān)系如何建立的問題。
?org.springframework.beans及org.springframework.context包是IOC容器的基礎(chǔ)。
3.系統(tǒng)需求分析
3.1功能需求分析
當(dāng)我們對(duì)已有系統(tǒng)進(jìn)行分析時(shí),通過分析系統(tǒng)的功能和實(shí)現(xiàn)去確定系統(tǒng)的即將要達(dá)成的目的。因此,我們要收集足夠的信息去驗(yàn)證我們的分析結(jié)果,在該次畢設(shè)中,我們獲取的信息大多都是從網(wǎng)上,書庫中了解到的。在任何的實(shí)踐中獲取的信息其實(shí)才是最可靠,最具有說服力的信息,所以,我們找到其他的寵物用品店,然后注冊(cè)成為會(huì)員來獲得有用信息。
用戶同時(shí)使用網(wǎng)站的注冊(cè)登錄功能,進(jìn)入系統(tǒng)后可以獲得一部分功能。在處理消息時(shí),可以進(jìn)行對(duì)寵物資料的瀏覽,進(jìn)行購買寵物用品然后對(duì)訂單進(jìn)行單個(gè)購買或者取消,同時(shí)也可以清空購物車中的所有訂單,或者全部進(jìn)行結(jié)賬等功能。
2.從網(wǎng)站的角度看:
(1)網(wǎng)站應(yīng)該包含寵物搜索功能。
(2)訂單處理功能,確認(rèn)訂單方式:
a). 電話通知方式?? ???
b).? E-mail方式
(3)管理員管理:
其任務(wù)是查看用戶訂單,查看用戶信息,并在根據(jù)查看了用戶的信息和用戶訂單之后,將商品的發(fā)送到購買者的身邊。
(4)寵物瀏覽
a). 寵物名? b).寵物類型?
c). 價(jià)格? d). 訂購號(hào)?
通過分析,系統(tǒng)主要分為前臺(tái)和后臺(tái)兩大模塊,前臺(tái)主要由用戶體驗(yàn)使用,實(shí)現(xiàn)了用戶登錄、注冊(cè)、查找商品、商品類別等功能導(dǎo)航;后臺(tái)主要由系統(tǒng)管理員操作使用,用來維護(hù)系統(tǒng),管理員主要實(shí)現(xiàn)了訂單管理、商品管理、公告管理、會(huì)員管理、用戶管理、個(gè)人信息維護(hù)等主要功能。
圖4-1 功能需求分析圖
3.2系統(tǒng)設(shè)計(jì)規(guī)則
無論哪個(gè)網(wǎng)站都要有它自己的設(shè)計(jì)規(guī)則。該系統(tǒng)也一樣,它的主要設(shè)計(jì)規(guī)則有:
簡單性:在實(shí)現(xiàn)系統(tǒng)的功能的同時(shí),盡量讓系統(tǒng)操作簡單易懂,這對(duì)于一個(gè)系統(tǒng)來說是非常重要的。
針對(duì)性:該系統(tǒng)設(shè)計(jì)是寵物商店網(wǎng)站系統(tǒng)及后臺(tái)管理的定向開發(fā)設(shè)計(jì),所以具有專業(yè)突出和很強(qiáng)的針對(duì)性。
實(shí)用性:系統(tǒng)接受來自系統(tǒng)管理員的請(qǐng)求,管理員可以對(duì)商品信息以及用戶信息進(jìn)行增、刪、改、查等操作,具有良好的實(shí)用性。
3.3系統(tǒng)的可行性分析
3.3.1技術(shù)可行性
(1)硬件可行性分析
系統(tǒng)的硬件要求方面不存在特殊的要求,只需要在普通的硬件配置就能夠輕松的實(shí)現(xiàn),只是需要確保系統(tǒng)的正常工作即可,以及擁有較高的效率。如果有特別低的硬件,它可以導(dǎo)致系統(tǒng)的低性能以及效率低,從而導(dǎo)致整個(gè)系統(tǒng)的運(yùn)行不順暢。以目前普遍的個(gè)人計(jì)算機(jī)的配置而言,這是十分容易實(shí)現(xiàn)的 。因此,本系統(tǒng)的開發(fā)在硬件方面是可行的。
(2)軟件可行性分析
Java語言提供了一個(gè)共同的機(jī)制類似的借口動(dòng)態(tài)模型,設(shè)計(jì)更集中。另外,在使用Java語言可以很容易實(shí)現(xiàn)模塊化和存儲(chǔ)信息。此外,代碼復(fù)用,也可以很好的體現(xiàn)。因此,考慮到系統(tǒng)的實(shí)際情況,選擇JAVA作為本系統(tǒng)開發(fā)語言的時(shí)候。通過上述分析,該系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)在軟件方面是可行的。
3.3.2經(jīng)濟(jì)可行性
如今是信息化時(shí)代,信息化管理可以使寵物商品管理工作更加系統(tǒng)化、快速化、全面化。這樣可以為企業(yè)帶來較高的工作效益和經(jīng)濟(jì)效益,在提高工作效率的基礎(chǔ)上,可以考慮減少工作人員的數(shù)量,本系統(tǒng)對(duì)計(jì)算機(jī)配置的要求不高,企業(yè)機(jī)房更換下來的低配置電腦都可以完全滿足需要,再者,企業(yè)在管理工作上的高效率和便捷性遠(yuǎn)遠(yuǎn)超過了開發(fā)本系統(tǒng)的成本,所以在經(jīng)濟(jì)上具有完全的可行性。
3.3.3操作可行性
系統(tǒng)的登錄界面簡單和友好,采用常見的界面窗口的登錄界面,而系統(tǒng)的開發(fā)則采用的是較為常用的JSP技術(shù)。這些策使得用戶不需要很長的時(shí)間就能夠快速熟悉系統(tǒng),并掌握系統(tǒng)的操作方法。此外,為了方便系統(tǒng)管理維護(hù)人員,用戶登錄系統(tǒng)后會(huì)給出了一些提示,使得整個(gè)系統(tǒng)更加人性化,用戶操作更簡單方便。
3.3.4 技術(shù)可行性分析
?? 本次寵物用品店系統(tǒng)的開發(fā)采用了java,jsp作為語言,采用了servlet,javaBeans技術(shù),sqlserver2008作為數(shù)據(jù)庫,Web服務(wù)器的選擇是tomcat7.0。這次的開發(fā)對(duì)于一個(gè)即將畢業(yè)的我來說是一項(xiàng)復(fù)雜的系統(tǒng)工程。但是上述所用到的語言,我們?cè)诖髮W(xué)期間都有所接觸過,在杰普基地實(shí)習(xí)的時(shí)候也都有所接觸,所以很容易著手進(jìn)行開發(fā),但是為了保證系統(tǒng)開發(fā)的成功,我們只能采用工程化的系統(tǒng)開發(fā)方法,并且可以適當(dāng)?shù)难芯坑行┓蠘?biāo)準(zhǔn)的開發(fā)方法,并研究出一些符合工程化標(biāo)準(zhǔn)的開發(fā)方法。新研究出來的開發(fā)方法是為了加快系統(tǒng)開發(fā)的速度,在保證質(zhì)量的同時(shí)盡可能的去降低開發(fā)的成本。對(duì)于任何一個(gè)物件來說,在質(zhì)量有所保證的情況下,所消耗的資源越少越好。
3.3.5 運(yùn)行可行性分析
現(xiàn)在的生活中計(jì)算機(jī)已經(jīng)普遍到每個(gè)家庭的生活當(dāng)中,自然也就越來越多的人掌握了使用計(jì)算機(jī)的基本使用方法和技能。因此,在這個(gè)信息時(shí)代中,必定會(huì)有越來越多的人利用網(wǎng)絡(luò)足不出戶就可以享受購物的便捷性,讓人們可以更快的了解到自己的需求。
3.3.6 經(jīng)濟(jì)可行性分析
?? 寵物食品店系統(tǒng)給人們帶來了方便,成為一種全新的商務(wù)模式。因此,不用出門就可以在家購買寵物食品的新時(shí)尚已經(jīng)到來,構(gòu)建一個(gè)寵物食品店系統(tǒng)在經(jīng)濟(jì)上是完全可行的。就本系統(tǒng)而言,隨著寬帶網(wǎng)絡(luò)進(jìn)入校園,為寵物主在網(wǎng)絡(luò)上進(jìn)行購物提供有利的條件。商家可以從中獲得利潤,兩全其美。通過以上的分析,開發(fā)寵物商品店系統(tǒng)是完全可行的。
3.4運(yùn)行環(huán)境
本系統(tǒng)是一個(gè)web版的應(yīng)用程序,需要在服務(wù)器上部署中間件Tomcat、Oracle數(shù)據(jù)庫,其他的客戶端通過網(wǎng)絡(luò)進(jìn)行訪問該服務(wù)器即可。
(1)開發(fā)硬件平臺(tái):
CPU:酷睿雙核 3.2GHZ
內(nèi)存:4G以上
硬盤:320GB
(2)服務(wù)器端硬件平臺(tái):
Web服務(wù)器參考配置:Intel? Xeon? Quad Core? E5530 80W 2.40GHz/5.8GT/8MB Cache, 2x2GB DDR3-1066MHz, 2.5in HS 146GB SAS,HS? 675W PSU, ServeRAID MR10i(RAID 5), 2*Giga Ethernet,Light Path, CD-RW/DVD Combo, 1U,3 Years Onsite Next Business Day. 146GB 10K 6Gbps SAS 2.5" SFF Slim-HS HDD x3550M2/x3650M2/HS22
數(shù)據(jù)庫服務(wù)器參考配置:Intel? Xeon? Quad Core? E5504 80W 2.00GHz/4.8GT/4MB Cache, 2x2GB DDR3-800MHz, 2.5in HS 146GB SAS, 670W PSU, ServeRAID BR10i(RAID 0,1), 2*Giga Ethernet,? DVD ROM,5U,3 Years Onsite Next Business Day. 146GB 10K 6Gbps SAS 2.5" SFF Slim-HS HDD x3550M2/x3650M2/HS22
(3) 開發(fā)軟件平臺(tái):
操作系統(tǒng):Windows7以上均可
數(shù)據(jù)庫:mysql
4.寵物網(wǎng)站系統(tǒng)概要設(shè)計(jì)
4.1系統(tǒng)功能結(jié)構(gòu)圖
系統(tǒng)主要分為前臺(tái)和后臺(tái)兩大模塊,前臺(tái)主要由用戶體驗(yàn)使用,實(shí)現(xiàn)了用戶登錄、注冊(cè)、查找商品、商品類別等功能導(dǎo)航;后臺(tái)主要由系統(tǒng)管理員操作使用,用來維護(hù)系統(tǒng),管理員主要實(shí)現(xiàn)了訂單管理、商品管理、公告管理、會(huì)員管理、用戶管理、個(gè)人信息維護(hù)等主要功能。系統(tǒng)功能圖如下圖5-1所示。
圖4-1系統(tǒng)功能結(jié)構(gòu)圖
4.2系統(tǒng)交互圖
系統(tǒng)架構(gòu)類的工作流程:
1、當(dāng)用戶在jsp頁面輸入了相應(yīng)的信息后,對(duì)象會(huì)根據(jù)用戶的請(qǐng)求向請(qǐng)求業(yè)務(wù)處理類處理數(shù)據(jù)。
2、當(dāng)業(yè)務(wù)處理類收到相應(yīng)的請(qǐng)求后,會(huì)向相應(yīng)的權(quán)限管理類對(duì)象發(fā)送驗(yàn)證請(qǐng)求。
3、通過權(quán)限管理類驗(yàn)證過后會(huì)把相應(yīng)的驗(yàn)證權(quán)限結(jié)果返回給相應(yīng)的業(yè)務(wù)代理類。
4、業(yè)務(wù)對(duì)象會(huì)根據(jù)接受到不同的驗(yàn)證權(quán)限結(jié)果進(jìn)行兩部不同的處理操作:若權(quán)限不符,這返回到相應(yīng)的JSP用戶界面,若權(quán)限相符,則進(jìn)行到相應(yīng)的業(yè)務(wù)邏輯類。
5、業(yè)務(wù)邏輯類的業(yè)務(wù)對(duì)象進(jìn)行相應(yīng)的業(yè)務(wù)處理。在業(yè)務(wù)處理中的數(shù)據(jù)持久化操作,靠訪問數(shù)據(jù)庫訪問類進(jìn)行操作,可以進(jìn)行讀取,寫入等操作,期間若發(fā)生任何的異常,交給異常處理類來完成。
6、業(yè)務(wù)代理對(duì)象類最后將最終結(jié)果返回給jsp用戶界面。
系統(tǒng)交互圖如下圖5-2所示:
圖4-2 系統(tǒng)交互圖
4.3數(shù)據(jù)庫設(shè)計(jì)
在概念設(shè)計(jì)中,通常用下面的四種方法:
自頂向下:第一,把全局概念結(jié)構(gòu)的框架定義好,之后再慢慢細(xì)化;自底向上:第一,把各局部應(yīng)用的概念結(jié)構(gòu)定義好,之后把他們?cè)偌掀饋?最后得到全局的概念結(jié)構(gòu);逐步擴(kuò)張: 首先把概念結(jié)構(gòu)里最核心的地方定義好,之后再向外面擴(kuò)充,最后直到總體概念結(jié)構(gòu);混合策略: 把自頂向下和自底向上兩種相結(jié)合,設(shè)計(jì)一個(gè)全局概念,使用自頂向下的策略。結(jié)構(gòu)的框架, 設(shè)計(jì)的各局部概念結(jié)構(gòu),以它為骨架集成,使用自底向上的策略。
在物理結(jié)構(gòu)設(shè)計(jì)階段,首先應(yīng)該分兩步走:
一是,在關(guān)系數(shù)據(jù)庫中,確定數(shù)據(jù)庫的物理結(jié)構(gòu),主要是指存取方法和存儲(chǔ)結(jié)構(gòu)。時(shí)間和空間效率是對(duì)物理結(jié)構(gòu)的評(píng)價(jià)。.
二是要選取存取方法,并且是正確的關(guān)系模式,存取索引方法、聚簇存取、HASH存取方法等都是常用的方法。數(shù)據(jù)庫的概念設(shè)計(jì)整體屬性E-R圖如下圖5-3所示:
圖4-3寵物商品網(wǎng)站系統(tǒng)E-R模型圖
3、數(shù)據(jù)庫設(shè)計(jì)
寵物商店網(wǎng)站系統(tǒng)ER模型中的實(shí)體轉(zhuǎn)換為物理表,得到物理表結(jié)構(gòu)部分如下:
1、寵物信息表book:表中顯示了關(guān)于寵物的所有詳細(xì)信息,對(duì)于字段的屬性也有詳細(xì)的描述。可以很明顯的看出表中的內(nèi)容顯示的是哪方面的信息。
圖4-1 寵物信息表booK
?2、管理員表admin:表中顯示了管理員的屬性信息。表中的字段就是管理員所擁有的詳細(xì)信息。
圖4-2 管理員表admin
3、寵物類型表booktypes:
圖4-4 寵物類型表types
?4、用戶注冊(cè)表users
圖4-5 用戶注冊(cè)表users
?5、定單詳細(xì)信息表orderbook
圖4-6 訂單詳情信息表
6、定單表num
圖4-7 訂單表
4.4系統(tǒng)概要設(shè)計(jì)
4.4.1系統(tǒng)的前臺(tái)
系統(tǒng)的界面按照常規(guī)的WEB界面進(jìn)行設(shè)計(jì),設(shè)計(jì)的原則是界面友好,易于操作,容易上手,盡可能的貼切用戶實(shí)際。系統(tǒng)主頁界面如下圖5-4所示。
圖a 狗狗商城
???????????? ?圖b?? 熱賣商品推薦????????????????? 圖c 精品推薦
圖4-4? 系統(tǒng)主界面圖
所有的用戶都可以進(jìn)入該首頁,想要使用購買商品等功能,需要進(jìn)行登錄操作,登錄時(shí)需要輸入用戶名、密碼進(jìn)行驗(yàn)證,通過之后才能使用這些功能。系統(tǒng)登錄功能界面如圖4-5所示:
圖4-5? 系統(tǒng)登錄界面圖
圖4-6? 系統(tǒng)注冊(cè)界面圖
圖4-7? 購買界面圖
圖4-8? 訂單信息圖
4.4.2系統(tǒng)的后臺(tái)
圖4-9? 系統(tǒng)后臺(tái)登錄界面圖
圖4-10? 會(huì)員管理界面圖
圖4-11? 網(wǎng)站后臺(tái)管理菜單
圖4-12? 商品管理界面圖
5.系統(tǒng)的詳細(xì)設(shè)計(jì)與功能實(shí)現(xiàn)
5.1應(yīng)用層配置
系統(tǒng)采用目前流行的Struts2框架進(jìn)行開發(fā)。先來看看Struts2框架是如何配置到應(yīng)用程序中的。
在WEB-INF/web.xml文件的配置代碼如下:
< <bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest"
???? name="myRequestParser" class="com.daowen.util.RequestParseWrapper"
???? scope="default" optional="true" />
??? <package name="admin" extends="struts-default" namespace="/admin">
??? <action name="usersmanager"? class="com.daowen.action.UsersAction">
??? </action>
????? <action name="friendlinkmanager" class="com.daowen.action.FriendlinkAction">
?? ??</action>
?? ???<action name="jiaodiantumanager" class="com.daowen.action.JiaodiantuAction">
????? </action>
??????? </action>
???????? <action name="sysconfigmanager" class="com.daowen.action.SysconfigAction">
??????? </action>
5.2登錄功能的實(shí)現(xiàn)
圖5-1 登錄信息
public class LoginAction extends Action {
??? public ActionForward execute(ActionMapping mapping, ActionForm form,
??? ??? ??? HttpServletRequest request, HttpServletResponse response) {
??? ??? ??? try {
??? ??? ??? response.setContentType("application/x-www-form-urlencoded; charset=UTF-8");
??? ??? ??? List userlist=null;
??? ??? ??? Session? s=HibernateSessionFactory.getSession();
??? ??? ??? Transaction t=s.beginTransaction();
??? ??? ??? String username=request.getParameter("username");
??? ??? ??? String password=request.getParameter("password");
??? ??? ??? String action=request.getParameter("action");
??? ??? ??? System.out.println("action="+action+"username="+username+"password="+password);
??? ??? ??? SQLQuery query=s.createSQLQuery("select * from [users] where username='"+username+"'");
??? ??? ??? ??? userlist=query.list();
??? ??? ??? ??? String s1="";
??? ??? ??? ??? if(!userlist.isEmpty())
??? ??? ??? ??? s1="res=true";
??? ??? ??? ??? else
??? ??? ??? ??? s1="res=false";
??? ??? ??? ????? System.out.println("json="+s1);
??? ??? ??? ????? response.getWriter().write(s1);???? ??? ??? ???
??? ??? ??? }
5.3注冊(cè)功能的實(shí)現(xiàn)
圖5-3 注冊(cè)功能
<script? src="<%=SystemParam.getSiteRoot()%>/webui/jquery/jquery-1.5.2.min.js"
??? type="text/javascript"></script>
? <script? type="text/javascript" src="<%=SystemParam.getSiteRoot() %>/webui/jquery/jquery.validate.min.js"></script>
??? <script type="text/javascript"? src="<%=SystemParam.getSiteRoot() %>/webui/jquery/jquery.metadata.js" ></script>
??? <script type="text/javascript"? src="<%=SystemParam.getSiteRoot() %>/webui/jquery/messages_cn.js" ></script>???
?? <script type="text/javascript">
?????? $(function(){
??? ???$.metadata.setType("attr","validate");
??? ???$("#form1").validate();
?????? })
5.4商品管理功能的實(shí)現(xiàn)
圖5-4 商品管理模塊
??? <tr>
??? ??? ??? ??? <td align="right">商品編號(hào):</td>
??? ??? ??? ??? <td><input name="spno"
??? ??? ??? ??? ??? validate="{required:true,messages:{required:'請(qǐng)輸入商品編號(hào)'}}"
??? ??? ??? ??? ??? value="${requestScope.shangpin.spno}" class="input-txt" type="text"
??? ??? ??? ??? ??? id="spno" />
??? ??? ??? ??? </td>
??? ??? ??? </tr>
??? ??? ??? <tr>
??? ??? ??? ??? <td align="right">商品類別:</td>
??? ??? ??? ??? <td><input type="hidden" name="sptype" /> <input type="hidden"
??? ??? ??? ??? ??? name="sptypeid" /> <web:dropdownlist id="sptype"? cssclass="dropdown"
??? ??? ??? ??? ??? ??? value="${requestScope.shangpin.sptypeid}"
??? ??? ??? ??? ??? ??? datasource="${sptype_datasource}" textfieldname="mingcheng"
??? ??? ??? ??? ??? ??? valuefieldname="id">
??? ??? ??? ??? ??? </web:dropdownlist></td>
??? ??? ??? </tr>
??? ??? </div>
5.5訂單管理模塊的實(shí)現(xiàn)
訂單管理模塊主要實(shí)現(xiàn)管理員對(duì)進(jìn)行中的訂單、歷史訂單信息的查詢,進(jìn)行退款、拒絕、介紹并發(fā)貨等操作。訂單管理模塊如圖6-2所示。
圖5-5 訂單管理模塊
<link href="<%=SystemParam.getSiteRoot() %>/webui/treetable/skin/jquery.treetable.theme.default.css" rel="stylesheet"
??????? type="text/css" />
?????? <script src="<%=SystemParam.getSiteRoot() %>/webui/treetable/js/jquery.treetable.js" type="text/javascript"></script>
??????? <script src="<%=SystemParam.getSiteRoot() %>/webui/combo/combo.js" type="text/javascript"></script>
??? ??? <script type="text/javascript">
??? ??? ??? $(function() {
??? ??? ??? ??? $(".ui-record-table").recordTable();
??? ??? ??? ??? $("#btnDelete").click(function(){
??? ??? ??? ??????? if($(".check:checked").length<1)
??? ??? ??? ??????? {
??? ??? ??? ?????????? $.dialog.alert("請(qǐng)選擇需要?jiǎng)h除的記錄");
??? ??? ??? ?????????? return;
??? ??? ??? ??????? }
5.6會(huì)員管理模塊的實(shí)現(xiàn)
圖5-6 會(huì)員管理模塊
<head>
<title>會(huì)員信息</title>
<link href="<%=SystemParam.getSiteRoot()%>/admin/css/common.css"
??? rel="stylesheet" type="text/css" />
<link href="<%=SystemParam.getSiteRoot()%>/admin/css/web2table.css"
??? rel="stylesheet" type="text/css" />
<script type="text/javascript"
??? src="<%=SystemParam.getSiteRoot()%>/webui/jquery/jquery-1.9.0.js"></script>
<link
??? href="<%=SystemParam.getSiteRoot()%>/webui/artDialog/skins/default.css"
??? rel="stylesheet" type="text/css" />
<script
??? src="<%=SystemParam.getSiteRoot()%>/webui/artDialog/jquery.artDialog.source.js"
??? type="text/javascript"></script>
<script
??? src="<%=SystemParam.getSiteRoot()%>/webui/artDialog/iframeTools.source.js"
??? type="text/javascript"></script>
6.測(cè)試與性能分析
6.1系統(tǒng)測(cè)試目的與意義
(1)測(cè)試的重要性
不管是什么技術(shù),以及如何使用的方法,但該軟件,該軟件將仍然是放錯(cuò)了地方。減少引入的錯(cuò)誤,您可以使用新的語言,先進(jìn)的開發(fā)方法,改進(jìn)開發(fā)過程,但這是不可能完全消除軟件錯(cuò)誤,由于需要進(jìn)行測(cè)試,以找出引入的錯(cuò)誤,你必須通過測(cè)試誤差估計(jì)密度在軟件中。對(duì)于可行性研究而言,其任務(wù)就是用最低的代價(jià)在最短的時(shí)間內(nèi)做出一個(gè)判斷當(dāng)前系統(tǒng)實(shí)現(xiàn)后的價(jià)值。為了避免在花費(fèi)了大量的資源之后才發(fā)現(xiàn)該功能的實(shí)現(xiàn)完成不了或者完成了之后也沒有多少實(shí)用性的價(jià)值。從而造成更多的浪費(fèi)。
所有工程學(xué)科的基本單元是一個(gè)測(cè)試,這是軟件發(fā)展的一個(gè)非常重要的組成部分。測(cè)試陪同,從編程本身的日子。統(tǒng)計(jì)顯示,在一個(gè)典型的軟件開發(fā)項(xiàng)目,往往占總工作量的測(cè)試軟件的軟件開發(fā)工作量的40%以上。但成本為這個(gè)測(cè)試是30%至50%的軟件開發(fā)總成本的。如果考慮把維護(hù)階段包含在內(nèi),在討論整個(gè)軟件的生存期時(shí),有所降低的也許是測(cè)試的成本比例,但維護(hù)工作,實(shí)際上是相當(dāng)于第二次的開發(fā),甚至是多次開發(fā),許多測(cè)試工作也一定包含在其中。這次的開發(fā)對(duì)于一個(gè)即將畢業(yè)的我來說是一項(xiàng)復(fù)雜的系統(tǒng)工程。但是上述所用到的語言,我們?cè)诖髮W(xué)期間都有所接觸過,在杰普基地實(shí)習(xí)的時(shí)候也都有所接觸,所以很容易著手進(jìn)行開發(fā),但是為了保證系統(tǒng)開發(fā)的成功,我們只能采用工程化的系統(tǒng)開發(fā)方法,并且可以適當(dāng)?shù)难芯坑行┓蠘?biāo)準(zhǔn)的開發(fā)方法,并研究出一些符合工程化標(biāo)準(zhǔn)的開發(fā)方法。新研究出來的開發(fā)方法是為了加快系統(tǒng)開發(fā)的速度,在保證質(zhì)量的同時(shí)盡可能的去降低開發(fā)的成本。對(duì)于任何一個(gè)物件來說,在質(zhì)量有所保證的情況下,所消耗的資源越少越好。
在實(shí)踐中,因?yàn)檫€有一個(gè)感知測(cè)試這是不正確的和錯(cuò)誤的態(tài)度,難以在軟件測(cè)試往往過高或敷衍,現(xiàn)在的生活中計(jì)算機(jī)已經(jīng)普遍到每個(gè)家庭的生活當(dāng)中,自然也就越來越多的人掌握了使用計(jì)算機(jī)的基本使用方法和技能。因此,在這個(gè)信息時(shí)代中,必定會(huì)有越來越多的人利用網(wǎng)絡(luò)足不出戶就可以享受購物的便捷性,讓人們可以更快的了解到自己的需求。
包括:
假設(shè)測(cè)試,也很難帶來成就試驗(yàn)人員從某種意義上說,作為設(shè)計(jì)和編碼一樣容易取得進(jìn)展:
那個(gè)戒指是不是建立在自然破裂,找到軟件錯(cuò)誤作為測(cè)試的目標(biāo),他們負(fù)責(zé)的負(fù)面測(cè)試工作中發(fā)現(xiàn)錯(cuò)位;
測(cè)試可以不感興趣,沉悶;
測(cè)試工作是困難的,艱苦的工作;
準(zhǔn)備他們的信心盲目的過程,發(fā)現(xiàn)錯(cuò)誤后,所表達(dá)的意見對(duì)他們的發(fā)展能力的擔(dān)憂。
軟件測(cè)試,這種觀點(diǎn)是不賺錢,提高軟件產(chǎn)品的質(zhì)量,必須澄清認(rèn)識(shí),態(tài)度。
(2)測(cè)試的目的
如果你說,要找出盡可能測(cè)試的目的是錯(cuò)誤的,那么測(cè)試應(yīng)直接向軟件的一部分,是更復(fù)雜或更錯(cuò)誤之前。
該過程發(fā)現(xiàn)錯(cuò)誤和軟件測(cè)試的執(zhí)行情況;
該測(cè)試是為了證明其中的一個(gè)節(jié)目,而不是沒有錯(cuò)誤的認(rèn)證程序;
這就是它沒有被發(fā)現(xiàn)的錯(cuò)誤,這是一個(gè)很好的例子
發(fā)現(xiàn)一個(gè)測(cè)試沒有找到一個(gè)成功的測(cè)試。
為了測(cè)試錯(cuò)誤,因?yàn)檫@個(gè)視圖的中心可以提醒人們,而不是正常運(yùn)作的演示軟件。但可能會(huì)非常棘手,真的只是給這純粹是為軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤,找不到錯(cuò)誤的測(cè)試,其實(shí)不是這樣的。
首先,測(cè)試,而不是目的只是為了找到錯(cuò)誤。但是,因誤差分析和分配可以幫助項(xiàng)目經(jīng)理更好的軟件過程發(fā)現(xiàn)現(xiàn)在是在一個(gè)殘疾的存在使用,以方便日后的改進(jìn)。在同一時(shí)間,根據(jù)該分析還可以幫助我們?cè)O(shè)計(jì)的目標(biāo)檢測(cè)方法,以提高測(cè)試的效率。其次,沒有在測(cè)試中發(fā)現(xiàn)的錯(cuò)誤也是有價(jià)值的評(píng)估試驗(yàn)的質(zhì)量的方式來完成測(cè)試。
6.2測(cè)試環(huán)境
?????? WIN7 64位,FireFox,TOMCAT6,JDK1.6
6.3測(cè)試過程
在測(cè)試之初,由于將數(shù)據(jù)庫中的數(shù)據(jù)是隨便輸入,沒有實(shí)用性,為了使系統(tǒng)更加完善,在系統(tǒng)測(cè)試的過程中,本系統(tǒng)將一開始編程隨便輸入的數(shù)據(jù)全部清理后,輸入了一些有效的測(cè)試數(shù)據(jù),這樣可以更真實(shí)的反映系統(tǒng)的功能實(shí)現(xiàn)情況。
測(cè)試的每個(gè)步驟在邏輯上與前一個(gè)步驟都有關(guān)聯(lián)。準(zhǔn)確來說是上一個(gè)步驟的繼續(xù)。每個(gè)模塊寫的是不同的功能,多個(gè)模塊,就相對(duì)于多個(gè)功能組成了一個(gè)系統(tǒng),而多個(gè)小的系統(tǒng)組成了一個(gè)大型的系統(tǒng),所以,大型的軟件系統(tǒng)的測(cè)試是分布進(jìn)行的,就類似如下所述:
(1)模塊測(cè)試:該測(cè)試中發(fā)現(xiàn)的一般是編碼和詳細(xì)設(shè)計(jì)的錯(cuò)誤。
(2)系統(tǒng)測(cè)試:該測(cè)試中發(fā)現(xiàn)的一般是軟件設(shè)計(jì)中的錯(cuò)誤,也可能發(fā)現(xiàn)需求說明中的錯(cuò)誤。
(3)驗(yàn)收測(cè)試:該測(cè)試中發(fā)現(xiàn)的一般是系統(tǒng)需求說明書中的錯(cuò)誤。
這樣不斷發(fā)現(xiàn)問題,經(jīng)過反復(fù)的測(cè)試、調(diào)試,把問題一個(gè)個(gè)的解決,最終系統(tǒng)可以正常運(yùn)行。
6.4測(cè)試的主要內(nèi)容及結(jié)果
(1)單元測(cè)試
單元測(cè)試是檢查每個(gè)軟件中單位最小的,通過檢測(cè)去發(fā)現(xiàn)原來定義該模塊的功能說明和本身所需要實(shí)現(xiàn)的實(shí)際的功能是不符合要求的狀況,或者檢測(cè)出模塊的錯(cuò)誤。
身份認(rèn)證時(shí)候要保證在以下輸入情況時(shí)候系統(tǒng)能夠健康運(yùn)行:
- 輸入的用戶ID:不存在
- 輸入的用戶ID:重復(fù)
- 輸入的用戶ID:輸入信息為空。
- ?輸入的用戶ID:與密碼不相符合。
- ?輸入的用戶的信息 格式不正確
(2)集成測(cè)試
(3)確認(rèn)測(cè)試
(4)系統(tǒng)測(cè)試
測(cè)試結(jié)果:注冊(cè)測(cè)試:輸入的錯(cuò)誤信息符合要求如圖
圖7-1 注冊(cè)失敗情
圖7-2 注冊(cè)成功情況
圖7-2 登錄失敗情況
| 模塊名稱 | 測(cè)試用例 | 預(yù)期結(jié)果 | 實(shí)際結(jié)果 | 是否通過 |
| 登錄模塊 | 用戶名:null?? 密碼:null? | 彈出錯(cuò)誤提示,請(qǐng)輸入用戶名 | 登錄失敗,提示請(qǐng)輸入用戶名 | 通過 |
| 登錄模塊 | 用戶名:m1 密碼:null? | 彈出錯(cuò)誤提示,請(qǐng)輸入密碼 | 失敗,提示輸入密碼 | 通過 |
| 登錄模塊 | 用戶名:m1 ?密碼:1 | 彈出錯(cuò)誤提示,用戶名或者密碼錯(cuò)誤 | 登錄失敗,提示用戶名或者密碼錯(cuò)誤 | 通過 |
| 商品管理模塊 | 添加商品信息后提交 | 添加成功 | 錄入成功 | 通過 |
| 用戶密碼修改 | 隨意一個(gè)用戶登錄,修改密碼 | 修改成功,退出后用新密碼登錄,并登錄成功 | 修改成功 | 通過 |
總結(jié)與展望
本文主要闡述了如何利用JSP技術(shù)的Struts2框架開發(fā)一個(gè)性能優(yōu)化、可擴(kuò)展性強(qiáng)和安全可靠的寵物商店管理系統(tǒng)。系統(tǒng)主要分為前臺(tái)和后臺(tái)兩大模塊,前臺(tái)主要實(shí)現(xiàn)了用戶登錄、注冊(cè)、查找商品、商品類別等功能導(dǎo)航;后臺(tái)主要實(shí)現(xiàn)了訂單管理、商品管理、公告管理、會(huì)員管理、用戶管理、個(gè)人信息維護(hù)等主要功能。然后根據(jù)這些功能進(jìn)行分析設(shè)計(jì),對(duì)所有到的技術(shù)Struts2框架就行簡要的介紹。接著進(jìn)行需求分析的描述。接著是概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。描述這個(gè)系統(tǒng)的部分功能的實(shí)現(xiàn)方案及過程。
本設(shè)計(jì)所實(shí)現(xiàn)的是一個(gè)寵物商品系統(tǒng),主要介紹了JSP,Struts2技術(shù)。系統(tǒng)按照總體設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、各個(gè)模塊設(shè)計(jì)和代碼分析,寵物商品系統(tǒng)的基本功能已得到實(shí)現(xiàn)。由于時(shí)間及本人所學(xué)有限,該系統(tǒng)還有許多地方需要改進(jìn),并且還有許多自己未起到的功能,本人會(huì)在以后的學(xué)習(xí)過程中進(jìn)一步加強(qiáng)和完善。
本系統(tǒng)具有以下優(yōu)點(diǎn):
1、該系統(tǒng)可以運(yùn)行在多個(gè)操作系統(tǒng)平臺(tái)(Windows 7和Windows 8),數(shù)據(jù)庫采用mysql,開發(fā)語言選擇Java,可移植性好。
2、系統(tǒng)的用戶權(quán)限進(jìn)行劃分,分為會(huì)員用戶和管理員,不同的用戶具有不同的操作權(quán)限。這不僅方便了用戶,也保證了系統(tǒng)的安全性。
3、該系統(tǒng)界面簡單,操作方便,容易使用。
但也存在以下缺點(diǎn):
1、界面跳轉(zhuǎn)復(fù)雜,接口不能被刷新,可以改進(jìn)。
2、功能比較簡單,沒有進(jìn)一步提高一些選修的程序等,不能更好的為用戶提供服務(wù)。
3、數(shù)據(jù)庫設(shè)計(jì)有冗余,需要進(jìn)一步優(yōu)化。
參考文獻(xiàn)
[1] 劉志誠.JSP程序設(shè)計(jì)實(shí)例教程.北京:人民郵電出版社,2009.5?
[2 ]孫衛(wèi)琴.精通Struts:基于MVC的JavaWeb設(shè)計(jì)與開發(fā).北京:電子工業(yè)出版社,2004.11
[3] 李剛.整合Struts+hibernate+Spring應(yīng)用開發(fā)詳解.北京:清華大學(xué)出版.
[4] 張桂元、賈燕楓.Struts開發(fā)入門與項(xiàng)目實(shí)踐.北京:人民郵電出版社,2005.12?
[5]孫衛(wèi)琴.Tomcat與Java Web開發(fā)技術(shù)詳解.北京:電子工業(yè)出版社,2003.11
[6] 吳其慶.Java模塊設(shè)計(jì)實(shí)例經(jīng)典.北京:冶金工業(yè)出版社2004.6?
[7] 劉斌.《精通Java Web整合開發(fā)》,電子工業(yè)出版社,2007.11?
[8] [美]Rogers Cadenhead. Java編程入門經(jīng)典.梅興文譯.第4版.北京:人民郵電出版社,2007
[9] 趙文靖.Java程序設(shè)計(jì)基礎(chǔ)與上機(jī)指導(dǎo).北京:清華大學(xué)出版社,2006
[10] 趙毅.跨平臺(tái)程序設(shè)計(jì)語言——Java.西安:西安電子科技大學(xué)出版社,2006
[11] 王路群.Java高級(jí)程序設(shè)計(jì).北京:中國水利水電出版社,2006
[12]雍俊海.Java程序設(shè)計(jì)習(xí)題集.北京:清華大學(xué)出版社,2006
[13] 朱福喜.Java語言習(xí)題與解析.北京:清華大學(xué)出版社,2006
[14] 吳其慶.Java程序設(shè)計(jì)實(shí)例教程.北京:冶金工業(yè)出版社,2006
- servlet和JSP技術(shù)概述
1.1 servlet的功用
Servlet是運(yùn)行在Web服務(wù)器或應(yīng)用服務(wù)器上的Java程序,它是一個(gè)中間層,負(fù)責(zé)連接來自Web瀏覽器或其他HTTP客戶程序的請(qǐng)求和HTTP服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序。
?? ?1.2 動(dòng)態(tài)構(gòu)建網(wǎng)頁的原因
· 網(wǎng)頁基于客戶發(fā)送的數(shù)據(jù)
?? 例如,搜索引擎生成的頁面,以及在線商店的訂單確認(rèn)頁面,都要針對(duì)特定的用戶請(qǐng)求而產(chǎn)生。在沒有讀取到用戶提交的數(shù)據(jù)之前,我們不知道顯示什么,要記住,用戶提交兩種類型的數(shù)據(jù):顯示(即HTML表單的數(shù)據(jù))和隱式(即HTTP請(qǐng)求的報(bào)頭)。兩種輸入都可用來構(gòu)建輸出頁面。基于cookie值針對(duì)具體用戶構(gòu)建頁面的情況尤其普遍。
· 網(wǎng)頁由頻繁改變的數(shù)據(jù)導(dǎo)出
?? 如果頁面需要根據(jù)每個(gè)具體的請(qǐng)求做出相應(yīng)的更改,當(dāng)然需要在請(qǐng)求發(fā)生時(shí)構(gòu)建響應(yīng)。但是,如果頁面周期性地改變,我們可以用兩種方式來處理它:周期性地在服務(wù)器上構(gòu)建新的網(wǎng)頁(和客戶請(qǐng)求無關(guān)),或者僅僅在用戶請(qǐng)求該頁面時(shí)再構(gòu)建。具體應(yīng)該采取哪種方式要依具體情況而定,但后一種方式常常更為方便,因?yàn)樗恍韬唵蔚氐却脩舻恼?qǐng)求。例如,天氣預(yù)報(bào)或新聞網(wǎng)站可能會(huì)動(dòng)態(tài)地構(gòu)建頁面,也可能會(huì)返回之前構(gòu)建的頁面(如果它還是最新的話)。
· 網(wǎng)頁中使用了來自公司數(shù)據(jù)庫或其他服務(wù)器端數(shù)據(jù)源的信息
?? 如果數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中,那么,即使客戶端使用動(dòng)態(tài)Web內(nèi)容,比如applet,我們依舊需要執(zhí)行服務(wù)器端處理。想象下,如果一個(gè)搜索引擎網(wǎng)站完全使用applet,那么用戶將會(huì)看到:“正在下載50TB的applet,請(qǐng)等待!”。顯然,者很愚蠢:這種情況下,我們需要與數(shù)據(jù)庫(二層結(jié)構(gòu))更靈活,也更安全,而性能上的損失很少甚至沒有。畢竟數(shù)據(jù)庫調(diào)用通常是對(duì)速度影響最大的步驟,因?yàn)榻?jīng)過Web服務(wù)器不會(huì)帶來性能上的明顯降低。實(shí)際上,三層結(jié)構(gòu)常常更快,因?yàn)橹虚g層可以執(zhí)行高緩存和連接共享。
理論上講,servlet并非只用于處理HTTP請(qǐng)求的Web服務(wù)器或應(yīng)用服務(wù)器,它同樣可以用于其他類型的服務(wù)器。例如,servlet能夠嵌入到FTP或郵件服務(wù)器中,擴(kuò)展它們的功能。而且,用于會(huì)話啟動(dòng)協(xié)議服務(wù)器的servlet API最近已經(jīng)被標(biāo)準(zhǔn)化(參見http://jcp.org/en/jsr/detail?Id=116)。但在實(shí)踐中,servlet的這種用法尚不流行,在此,我們只論述了HTTP servlet。
2.1 下載和安裝Java軟件開發(fā)工具包
您可能早已安裝了Java平臺(tái),如果尚未安裝,那么第一步就是安裝Java平臺(tái),當(dāng)前版本的servlet和JSP API需要Java 2平臺(tái)(標(biāo)準(zhǔn)版,J2EE,或企業(yè)版,J2EE)。如果不準(zhǔn)備使用J2EE的特性,如Enterprise JavaBeans(EJB)或Java消息服務(wù)(Java messaging service,JMS),我們建議使用標(biāo)準(zhǔn)版。服務(wù)器會(huì)提供向Java 2標(biāo)準(zhǔn)版加入servlet和JSP支持所需的類。
但我們需要Java的哪個(gè)版本呢?這要使用哪種servlet/JSP API,以及使用的是與J2EE完全兼容的應(yīng)用服務(wù)器(例如:WebSphere,WebLogic或JBoss),還是獨(dú)立的servlet/JSP容器(例如Tomcat,JRun或Resin)而定。如果從零做起,我們推薦使用Java的最新版本(1.4);這樣可以得到最佳的性能,并保證與獎(jiǎng)勵(lì)的版本兼容。但是,如果您希望了解最低的支持版本,下面是一個(gè)簡略的匯總。
·servlet 2.3和JSP(獨(dú)立服務(wù)器)。Java 1.2或更新的版本。
·J2EE 1.3(包括servlet和JSP 1.2)。Java 1.3或更新的版本。
·servlet 2.4 和JSP 2.0(獨(dú)立服務(wù)器)。Java 1.3或更新版本。
·J2EE 1.4(包括servlet 2.4和JSP 2.0)。Java 1.4或更新版本。
本書以Java 1.4為例進(jìn)行介紹。
對(duì)于Solaris,Windows和Linux,可以到http://java.sun.com/j2se/1.4/獲取Java 1.4,http://java.sun.com/j2se/1.3/獲取Java 1.3.要確保下載的是SDK(軟件開發(fā)工具包),而非僅僅是JRE(Java runtime environment,Java運(yùn)行環(huán)境)JRE只執(zhí)行已經(jīng)編譯好的Java類文件,不提供編譯器。對(duì)于其他平臺(tái),首先檢查這些平臺(tái)是預(yù)裝了Java 2的實(shí)現(xiàn),請(qǐng)到http://java.sun.com/cgi-bin/java-ports.cgi查詢Sun提供的第三方Java實(shí)現(xiàn)餓清單。
您使用的Java實(shí)現(xiàn)應(yīng)該擁有完整的配置操作指南,但關(guān)鍵是設(shè)置環(huán)境變量PATH(不是CLASSPATH),使之指出包括Java和Javac的目錄,一般是java_install_dir/bin。例如,如果您使用windows操作系統(tǒng),并將SDK安裝在C:\j2sdk1.4.1_01中,您可能需要將下面的行加入到C:\autexec.bat文件。切記,autoexec.bat只在系統(tǒng)啟動(dòng)時(shí)執(zhí)行。
Set PATH=C:\j2sdk1.4_01\bin;%PATH%
如果您想下載已經(jīng)配置好的autoexec.bat文件,包含PATH設(shè)定以及本章論述的其他設(shè)置,可以到http://www.eoreservlets.com/,轉(zhuǎn)到相應(yīng)的源代碼檔案文件后,選擇第2章。
在windows NT/2000/XP中,您還可以在My Computer上右擊鼠標(biāo),選擇Properties.然后選擇Advanced,再選擇Environment variables【我的電腦】|【屬性】|【高級(jí)】|【環(huán)境變量】。更新PATH的值,然后單擊OK按鈕。
在UNIX中,如果SDK安裝在/usr/j2sdk1.4.1_01中,并且您使用C外殼。您需要將下面的內(nèi)容放入到.cshrc文件中。
Setenv PATH/usr/j2sdk1.4.1_01
重啟后(視窗;沒有必要的,如果你以交互方式設(shè)置的變量)或注銷并重新登錄的(UNIX),驗(yàn)證Java的設(shè)置是通過打開一個(gè)DOS窗口(Windows)或shell(UNIX)并鍵入java的版本正確, javac的互助。你應(yīng)該看到一個(gè)真實(shí)的結(jié)果兩次,不是一個(gè)未知的命令的錯(cuò)誤消息。另外,如果您使用的集成開發(fā)環(huán)境(IDE),如Borland公司的JBuilder,Eclipse中,IntelliJ IDEA的,或Sun ONE Studio中編譯和運(yùn)行一個(gè)簡單的程序,以確認(rèn)該IDE知道您安裝Java。
總結(jié)
以上是生活随笔為你收集整理的基于java的宠物管理系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 抖音矩阵系统,抖音矩阵系统源码,抖音SE
- 下一篇: 讯时网站管理系统通杀0DAY漏洞