2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  目 錄</b></p><p><b>  目 錄1</b></p><p><b>  摘 要1</b></p><p><b>  前 言3</b></p><p><b>  第一章 緒論

2、4</b></p><p>  1.1 研究背景4</p><p>  1.2 設(shè)計(jì)目標(biāo)4</p><p>  1.3 本文結(jié)構(gòu)5</p><p>  第二章 系統(tǒng)開(kāi)發(fā)環(huán)境與技術(shù)6</p><p>  2.1 系統(tǒng)開(kāi)發(fā)環(huán)境6</p><p>  2.1.1 My

3、Eclipse插件介紹6</p><p>  2.1.2 Tomcat服務(wù)器介紹6</p><p>  2.2 系統(tǒng)開(kāi)發(fā)技術(shù)7</p><p>  2.2.1 JSP與Servlet技術(shù)7</p><p>  2.2.2 JavaScript簡(jiǎn)介10</p><p>  2.2.3 MVC模式11

4、</p><p>  2.2.4 Struts框架11</p><p>  2.2.5 Spring框架13</p><p>  2.2.6 Hibernate框架15</p><p>  第三章 系統(tǒng)需求分析與前臺(tái)設(shè)計(jì)17</p><p>  3.1 需求分析17</p><p

5、>  3.1.1 系統(tǒng)前臺(tái)簡(jiǎn)要設(shè)計(jì)概述17</p><p>  3.1.2 系統(tǒng)用例圖18</p><p>  3.2 系統(tǒng)設(shè)計(jì)18</p><p>  3.2.1 系統(tǒng)層次劃分18</p><p>  3.2.2 數(shù)據(jù)庫(kù)設(shè)計(jì)19</p><p>  3.2.3 成本管理模塊時(shí)序圖22&l

6、t;/p><p>  第四章 系統(tǒng)詳細(xì)設(shè)計(jì)與功能實(shí)現(xiàn)27</p><p>  4.1 系統(tǒng)項(xiàng)目的文件夾結(jié)構(gòu)27</p><p>  4.2 成本管理模塊的具體實(shí)現(xiàn)28</p><p>  4.2.1 查詢(xún)成本信息列表功能的實(shí)現(xiàn)28</p><p>  4.2.2 添加成本信息功能的實(shí)現(xiàn)33</p&

7、gt;<p>  4.2.3 修改成本信息功能的實(shí)現(xiàn)36</p><p>  4.2.4 刪除成本信息功能的實(shí)現(xiàn)39</p><p>  4.2.5 查看成本明細(xì)信息功能的實(shí)現(xiàn)41</p><p>  第五章 總結(jié)與展望43</p><p>  5.1 課題總結(jié)43</p><p> 

8、 5.2 進(jìn)一步開(kāi)發(fā)的展望43</p><p><b>  參考文獻(xiàn)44</b></p><p><b>  致 謝45</b></p><p><b>  摘 要</b></p><p>  服飾企業(yè)生產(chǎn)狀況聯(lián)絡(luò)表是針對(duì)企業(yè)的實(shí)際情況而進(jìn)行設(shè)計(jì)、開(kāi)發(fā)的,而成本管理

9、模塊則是為了保持產(chǎn)品的成本信息及時(shí)的保存、更新。利用JSP技術(shù)和SSH框架以及相應(yīng)的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)實(shí)現(xiàn)了基于Web的系統(tǒng)。該框架可以減少模塊之間的耦合性,讓開(kāi)發(fā)人員減輕重新建立解決復(fù)雜問(wèn)題方案的負(fù)擔(dān),并且可以被擴(kuò)展以進(jìn)行內(nèi)部的定制化。通過(guò)使用JSP技術(shù)建設(shè)動(dòng)態(tài)網(wǎng)站,充分發(fā)揮了Java語(yǔ)言所獨(dú)有的易用性、跨平臺(tái)性和安全性,從而構(gòu)建了一個(gè)運(yùn)行高效、安全可靠、適用性廣的管理系統(tǒng),實(shí)現(xiàn)了企業(yè)信息資源的網(wǎng)上管理,滿(mǎn)足了公司業(yè)務(wù)處理的需要,使企業(yè)適

10、應(yīng)了網(wǎng)絡(luò)經(jīng)濟(jì)時(shí)代發(fā)展的要求。</p><p>  論文首先簡(jiǎn)要介紹了企業(yè)管理系統(tǒng)的一些研究與應(yīng)用背景,其次介紹了該網(wǎng)站系統(tǒng)所采用的開(kāi)發(fā)工具、平臺(tái)以及開(kāi)發(fā)環(huán)境。在此基礎(chǔ)上,論文詳盡描述了成本管理系統(tǒng)情況。</p><p>  關(guān)鍵詞:JSP,SSH框架,成本管理 </p><p><b>  作者:XX</b></p><p&

11、gt;<b>  指導(dǎo)老師:XX</b></p><p><b>  Abstract</b></p><p>  Apparel enterprise production situation contact sheets is designed and developed according to enterprise's actua

12、l situation,and the cost management module is to keep the cost of the product information timely preservation, updated. It's the corresponding With the rapid development of science technique, computer technique have

13、extended to every aspect of our life, and play a very important role in industry, agriculture, business and so on. Computer have been a part of our life. The computer’s com</p><p>  Residence management syst

14、em is developed management software about arisen residence area now. It can improve residence area’s intelligentize management, disentangle many employers from heavy hand works, and improve effectiveness of residence man

15、agement and reduce error.</p><p>  Tent user interface, hint perfect message, good interface, and have good appetency; The system apply SQL Server’s special from PowerBuilder interface to link background dat

16、abase. </p><p>  The system mostly complete daily management about residence area, It’s function The system have the function of writing, modifying , deleting, finding and printing and so on , improve event

17、management too, it can satisfy modenrized handling official business’s need.</p><p>  Key Words: JSP,Struts Spring Hibernate Framework,cost management</p><p>  Supervised by XX</p><p

18、><b>  前 言</b></p><p>  隨著科學(xué)技術(shù)的飛速發(fā)展,計(jì)算機(jī)技術(shù)已延伸倒我們?nèi)粘I畹母鱾€(gè)方面。在工業(yè)、農(nóng)業(yè)、商業(yè)等方面起著巨大的作用。計(jì)算機(jī)已成為我們?nèi)粘I钪胁豢苫蛉钡囊徊糠至?。?jì)算機(jī)的廣泛應(yīng)用對(duì)提高經(jīng)濟(jì)效益、實(shí)現(xiàn)管理現(xiàn)代化、科學(xué)化、智能化起到了重要作用,并且取得了顯著的效果。</p><p>  小區(qū)管理系統(tǒng)是針對(duì)當(dāng)前興起的住宅小區(qū)而

19、開(kāi)發(fā)的管理軟件。它能夠提高對(duì)小區(qū)的智能化管理,能夠把大量的工作人員從繁重的手工工作中解脫出來(lái),提高小區(qū)管理工作的工作效率并減少錯(cuò)誤的發(fā)生。 </p><p>  本系統(tǒng)后臺(tái)采用SQL Server 2000開(kāi)發(fā)和管理數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)操作采用事務(wù)處理機(jī)制,具有強(qiáng)大的錯(cuò)誤處理功能;系統(tǒng)的前臺(tái)應(yīng)用PowerBuilder 9.0開(kāi)發(fā)和管理用戶(hù)界面,提示信息完善,界面友好,有較強(qiáng)的親和力;系統(tǒng)采用PowerBuilder

20、的SQL Server專(zhuān)用接口連接后臺(tái)數(shù)據(jù)庫(kù)。</p><p>  本系統(tǒng)主要完成對(duì)住宅小區(qū)的日常管理,主要功能包括:住戶(hù)和住宅情況的管理;建筑管理;維修管理;保安管理;車(chē)輛管理;收費(fèi)管理。系統(tǒng)具有錄入、修改、刪除、查找和打印等功能這樣不但大大提高了工作效率,加快了管理步伐,同時(shí),也提高了業(yè)務(wù)管理水平,符合現(xiàn)代化辦公的需要。</p><p><b>  本文的結(jié)構(gòu)如下:</

21、b></p><p>  第一章是緒論部分,敘述了本系統(tǒng)的開(kāi)發(fā)背景、開(kāi)發(fā)目標(biāo)、開(kāi)發(fā)意義以及國(guó)內(nèi)外的一些比較。</p><p>  第二章介紹了本系統(tǒng)的開(kāi)發(fā)環(huán)境及開(kāi)發(fā)技術(shù)。</p><p>  第三章是系統(tǒng)需求分析與前臺(tái)設(shè)計(jì),闡述了在系統(tǒng)開(kāi)發(fā)前的分析工作、系統(tǒng)的整體設(shè)計(jì)以及數(shù)據(jù)庫(kù)設(shè)計(jì)。</p><p>  第四章是系統(tǒng)的詳細(xì)設(shè)計(jì)與功能實(shí)現(xiàn)

22、。</p><p>  第五章總結(jié)和展望,對(duì)整個(gè)項(xiàng)目的過(guò)程和感悟進(jìn)行總結(jié),并對(duì)項(xiàng)目未來(lái)的開(kāi)發(fā)做出展望。</p><p><b>  第一章 緒論</b></p><p><b>  1.1 研究背景</b></p><p>  當(dāng)今時(shí)代信息技術(shù)飛速發(fā)展,人們已經(jīng)處于數(shù)字化的生存空間之中。Inte

23、rnet構(gòu)造了無(wú)限的信息資源,它的普遍使用已經(jīng)從根本上改變了人們的生活方式和工作方式,也改變了企業(yè)的經(jīng)營(yíng)方式和服務(wù)方式。</p><p>  傳統(tǒng)的人為管理模式已經(jīng)遠(yuǎn)遠(yuǎn)無(wú)法滿(mǎn)足現(xiàn)在的企業(yè),那么企業(yè)對(duì)于企業(yè)管理系統(tǒng)的需求是必然的。通過(guò)管理系統(tǒng),能夠大大提高企業(yè)的各個(gè)方面效率,同時(shí)方便了企業(yè)與職工之間的交流,便于滿(mǎn)足將來(lái)的業(yè)務(wù)需求。</p><p>  網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展使得基于Web的各類(lèi)信

24、息系統(tǒng)成為目前信息系統(tǒng)中最為流行的展現(xiàn)形式之一。基于Web的信息系統(tǒng)具有如下一些特點(diǎn):</p><p>  有利于信息的及時(shí)更新和發(fā)布;</p><p><b>  便于操作和管理;</b></p><p>  擁有良好的用戶(hù)界面和接口;</p><p><b>  靈活性和可擴(kuò)展性;</b><

25、;/p><p><b>  系統(tǒng)功能的通用性;</b></p><p>  正是在這樣的社會(huì)大背景下,我們開(kāi)始進(jìn)行“服飾生產(chǎn)企業(yè)生產(chǎn)狀況聯(lián)絡(luò)表——成本管理”的課題研究,其目的在于通過(guò)網(wǎng)站的形式實(shí)現(xiàn)基于Web的信息系統(tǒng)的上述優(yōu)點(diǎn)和特點(diǎn),以展現(xiàn)該類(lèi)信息系統(tǒng)在全球信息網(wǎng)——Internet網(wǎng)中快速、便捷、準(zhǔn)確地發(fā)布信息,提供資源共享的強(qiáng)大功能和作用。</p>&l

26、t;p>  成本管理可以幫助企業(yè)實(shí)現(xiàn)對(duì)成本更好的控制,透明的各項(xiàng)成本支出,長(zhǎng)期積累下來(lái)的數(shù)據(jù)可以幫助企業(yè)對(duì)成本進(jìn)行分析,以達(dá)到節(jié)約成本的目的。系統(tǒng)中的成本信息與負(fù)責(zé)人相關(guān)聯(lián),以達(dá)到可追溯的目的,使得企業(yè)對(duì)于成本管理做到可監(jiān)控。</p><p><b>  1.2 設(shè)計(jì)目標(biāo)</b></p><p>  開(kāi)發(fā)設(shè)計(jì)本系統(tǒng)的任務(wù)是管理該公司的成本信息,通過(guò)該系統(tǒng)能夠讓

27、用戶(hù)對(duì)成本信息查詢(xún)、新增、修改和刪除。</p><p>  開(kāi)發(fā)系統(tǒng)的目標(biāo)是對(duì)成本信息及其明細(xì)信息進(jìn)行管理,滿(mǎn)足的要求具體可包括如下幾個(gè)方面:</p><p>  網(wǎng)頁(yè)風(fēng)格符合企業(yè)員工的特點(diǎn),簡(jiǎn)單實(shí)用。</p><p>  能夠?qū)崿F(xiàn)對(duì)于成本信息的符合實(shí)際企業(yè)需求的管理。</p><p><b>  網(wǎng)站運(yùn)行安全穩(wěn)定。</b&g

28、t;</p><p><b>  1.3 本文結(jié)構(gòu)</b></p><p>  本文的章節(jié)安排如下:</p><p>  第一章緒論部分,說(shuō)明本文的研究背景和設(shè)計(jì)目標(biāo)。為接下來(lái)的系統(tǒng)后臺(tái)的分析與設(shè)計(jì)做基礎(chǔ)準(zhǔn)備。</p><p>  第二章背景技術(shù),簡(jiǎn)單介紹系統(tǒng)實(shí)現(xiàn)所用到的平臺(tái)與技術(shù)。如MyEclipse、Tomcat服

29、務(wù)器、JSP與Servlet原理、JavaScript、SSH(Struts-Spring-Hibernate)框架等。</p><p>  第三章系統(tǒng)分析與設(shè)計(jì),對(duì)企業(yè)的門(mén)戶(hù)網(wǎng)站的后臺(tái)進(jìn)行需求分析,根據(jù)需求分析設(shè)計(jì)相應(yīng)的功能與表結(jié)構(gòu)。</p><p>  第四章系統(tǒng)實(shí)現(xiàn),給出系統(tǒng)后臺(tái)的具體實(shí)現(xiàn),包括實(shí)現(xiàn)效果和核心代碼說(shuō)明。</p><p>  第五章總結(jié)與展望,對(duì)

30、本文所做的工作進(jìn)行總結(jié),并針對(duì)目前工作中的不足對(duì)未來(lái)工作的展望。</p><p>  第二章 系統(tǒng)開(kāi)發(fā)環(huán)境與技術(shù)</p><p>  2.1 系統(tǒng)開(kāi)發(fā)環(huán)境</p><p>  企業(yè)訂單管理系統(tǒng)以Eclipse為開(kāi)發(fā)平臺(tái),使用MyEclipse作為Eclipse的插件,并由Tomcat 6.0充當(dāng)Web服務(wù)器來(lái)開(kāi)發(fā)實(shí)現(xiàn)的。</p><p>

31、  2.1.1 MyEclipse插件介紹</p><p>  MyEclipse是一個(gè)商業(yè)軟件(商業(yè)插件)、基于Java和Eclipse的可擴(kuò)展開(kāi)發(fā)平臺(tái)(比如MS Visual Studio開(kāi)發(fā)平臺(tái)中的VC、VB等。Borland公司的Delphi、Borland、C++、Builder)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境。</p><p>  雖然

32、大多數(shù)用戶(hù)很樂(lè)于將MyEclipse當(dāng)做Java IDE(Integrated Development Environment)來(lái)使用,但MyEclipse的目標(biāo)并不僅限于此。MyEclipse還包括插件開(kāi)發(fā)環(huán)境(Plug-in Development Environment-PDE),當(dāng)然,這個(gè)功能的實(shí)現(xiàn)主要是Eclipse,這個(gè)組件主要針對(duì)希望擴(kuò)展Eclipse核心的軟件開(kāi)發(fā)人員,因?yàn)樗试S他們構(gòu)建與Eclipse環(huán)境無(wú)縫集成的工具

33、。由于Eclipse中的每樣?xùn)|西都是插件,對(duì)于給Eclipse提供插件,以及給用戶(hù)提供一致和統(tǒng)一的集成開(kāi)發(fā)環(huán)境而言,所有工具開(kāi)發(fā)人員都具有同等的發(fā)揮場(chǎng)所。</p><p>  這種平等和一致性并不僅限于Java開(kāi)發(fā)工具。盡管Eclipse是使用Java語(yǔ)言開(kāi)發(fā)的,但它的用途并不限于Java語(yǔ)言。例如:支持諸如C/C++、COBOL和Eiffel及Perl等編程語(yǔ)言的插件。</p><p>

34、  MyEclipse是一款功能強(qiáng)大的J2EE集成開(kāi)發(fā)環(huán)境,支持代碼編寫(xiě)、配置、測(cè)試及除錯(cuò)。程序功能包括:HTML智能編輯器、Struts、JSF、CSS、JavaScript、SQL、Hibernate、Spring等,帶有自動(dòng)完成與語(yǔ)法高亮顯示功能的J2EE編輯器。在Eclipse中安裝這個(gè)插件可以大大提高開(kāi)發(fā)J2EE的效率。</p><p>  2.1.2 Tomcat服務(wù)器介紹</p>&

35、lt;p>  Tomcat是一個(gè)免費(fèi)開(kāi)源的Servlet容器,它是Apache 軟件基金會(huì)(Apache Software Foundation)Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun 和其他一些公司及個(gè)人共同開(kāi)發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 7 支持最新的Servlet 3.0 和JSP 2.2 規(guī)范。Tomcat不僅

36、是一個(gè)Servlet容器,它也具有傳統(tǒng)的Web服務(wù)器的功能,如處理HTML頁(yè)面,簡(jiǎn)單的域名管理,配置JNDI等。因?yàn)門(mén)omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛(ài)好者的喜愛(ài)并得到了部分軟件開(kāi)發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。</p><p>  Tomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開(kāi)發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不

37、斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。</p><p>  Tomcat 是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶(hù)不是很多的場(chǎng)合下被普遍使用,是開(kāi)發(fā)和調(diào)試JSP 程序的首選。對(duì)于一個(gè)初學(xué)者來(lái)說(shuō),可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)對(duì)HTML 頁(yè)面的訪問(wèn)請(qǐng)求。實(shí)際上Tomcat 部分是Apache 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所

38、以當(dāng)你運(yùn)行Tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。</p><p>  這里的訣竅是,當(dāng)配置正確時(shí),Apache 為HTML頁(yè)面服務(wù),而Tomcat 實(shí)際上運(yùn)行JSP 頁(yè)面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁(yè)面的功能,另外它還是一個(gè)Servlet和 JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過(guò),Tom

39、cat處理靜態(tài)HTML的能力不如Apache服務(wù)器。</p><p>  2.2 系統(tǒng)開(kāi)發(fā)技術(shù)</p><p>  服飾企業(yè)生產(chǎn)狀況聯(lián)絡(luò)表系統(tǒng)的開(kāi)發(fā)技術(shù)是基于J2EE架構(gòu)的SSH組合技術(shù)。開(kāi)發(fā)平臺(tái)是Eclipse,以MyEclipse作為插件,Tomcat 6.0作為服務(wù)器,JDK1.6.0_13作為工具包。</p><p>  2.2.1 JSP與Servle

40、t技術(shù)</p><p>  JSP技術(shù)是建立在Servlet技術(shù)之上的。先有Servlet技術(shù),后推出的JSP技術(shù)。JSP最終要編譯為Servlet運(yùn)行。進(jìn)行Web應(yīng)用開(kāi)發(fā)的時(shí)候,結(jié)合Servlet和JSP能夠使開(kāi)發(fā)的分工和層次更加清晰。JSP注重于頁(yè)面的呈現(xiàn),處理邏輯應(yīng)該盡量減少,這樣方便網(wǎng)頁(yè)設(shè)計(jì)人員在美工上多下功夫:Servlet程序則側(cè)重于對(duì)邏輯的控制,根據(jù)需要對(duì)JSP頁(yè)面進(jìn)行導(dǎo)航。</p>

41、<p>  Servlet是一種獨(dú)立于平臺(tái)和協(xié)議的服務(wù)器端的Java應(yīng)用程序,可以生成動(dòng)態(tài)的Web頁(yè)面。Servlet位于Web服務(wù)器內(nèi)部,由Web服務(wù)器進(jìn)行加載,該Web服務(wù)器必須包含支持Servlet的Java虛擬機(jī)。</p><p>  JSP(Java Server Pages)是一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn),是基于Java Servlet和整個(gè)Java體系的Web開(kāi)發(fā)技術(shù)。它在動(dòng)態(tài)網(wǎng)頁(yè)的建設(shè)中有著強(qiáng)大

42、而特別的功能,它的以下優(yōu)點(diǎn)使很多人認(rèn)為它將是最有發(fā)展前途的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)[3]。</p><p>  將內(nèi)容的生成和顯示進(jìn)行分離</p><p>  用JSP技術(shù),Web頁(yè)面開(kāi)發(fā)人員可以使用HTML或者XML標(biāo)識(shí)來(lái)設(shè)計(jì)和格式化最終頁(yè)面,并使用JSP標(biāo)識(shí)或者小腳本來(lái)生成頁(yè)面上的動(dòng)態(tài)內(nèi)容。Web管理人員和頁(yè)面設(shè)計(jì)者,能夠編輯和使用JSP頁(yè)面,而不影響內(nèi)容的生成。</p><p

43、><b>  采用標(biāo)識(shí)</b></p><p>  Web頁(yè)面開(kāi)發(fā)人員不會(huì)都是熟悉腳本語(yǔ)言的編程人員。JSP技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)識(shí)中進(jìn)行動(dòng)態(tài)內(nèi)容生成所需要的。</p><p>  JSP的執(zhí)行流程是這樣的:第一個(gè)用戶(hù)請(qǐng)求JSP文件的時(shí)候,JSP容器(如Tomcat)把JSP文件轉(zhuǎn)換成Java文件(Servlet類(lèi)文件),

44、然后編譯成class文件,常駐內(nèi)存;當(dāng)有客戶(hù)請(qǐng)求的時(shí)候,直接開(kāi)一個(gè)線程,無(wú)須重新編譯,直接執(zhí)行第一次已經(jīng)編譯好的class文件,速度比每次都要重新編譯JSP文件要快的多。</p><p>  2.2.1.1 JSP的工作原理</p><p>  JSP頁(yè)面以擴(kuò)展名為JSP的純文本文件的形式存在服務(wù)器上,當(dāng)服務(wù)器接收到客戶(hù)端對(duì)某個(gè)JSP頁(yè)面的請(qǐng)求時(shí),如果這是對(duì)該頁(yè)面創(chuàng)建或修改后的第一次請(qǐng)求

45、時(shí),那么JSP引擎就把該JSP頁(yè)面內(nèi)容轉(zhuǎn)換成一個(gè)純Java語(yǔ)言的Servlet源碼,然后將其編譯成Servlet字節(jié)代碼,最后將Servlet的執(zhí)行結(jié)果返回至瀏覽器。JSP頁(yè)面被編譯成Servlet之后,其執(zhí)行代碼以獨(dú)立線程的形式一直存在服務(wù)器的內(nèi)存中,以后對(duì)該JSP頁(yè)面提出請(qǐng)求時(shí),不需要重新編譯,直到該頁(yè)面被修改或WEB應(yīng)用程序重新啟動(dòng)。其工作原理如圖2-2所示。</p><p>  圖2-2 JSP的工作原理

46、</p><p>  2.2.1.2 JSP技術(shù)語(yǔ)法</p><p><b>  常用JSP命令:</b></p><p>  1)page---頁(yè)面指令,主要用來(lái)指定當(dāng)前JSP頁(yè)面的屬性。</p><p>  2)<jsp:include>---允許包含其他動(dòng)態(tài)和靜態(tài)文件。</p><

47、p>  3)<jsp:forward>---將一個(gè)JSP文件傳給另一個(gè)JSP文件。</p><p>  4)<jsp:plugin>---可以通過(guò)Java插件在瀏覽器中運(yùn)行Java Applet 。</p><p>  5)<jsp:useBean>---標(biāo)記是用來(lái)訪問(wèn)JavaBean的動(dòng)作標(biāo)記。當(dāng)JSP頁(yè)面使用<jsp:useBean>

48、;標(biāo)記時(shí),表示將引用一個(gè)JavaBean的實(shí)例。JavaBean標(biāo)記的語(yǔ)法格式如下:</p><p>  <jsp:useBean id=“實(shí)例名稱(chēng)” scope=“范圍” class=“類(lèi)名稱(chēng)” type=“類(lèi)的類(lèi)型” beanName=“JavaBean的名稱(chēng)/>。</p><p>  JSP內(nèi)置對(duì)象[6]:</p><p>  為了方便Web頁(yè)面的

49、開(kāi)發(fā),JSP提供了一些內(nèi)置的對(duì)象。這些內(nèi)置對(duì)象可以不經(jīng)顯式聲明而在程序中直接使用,JSP的幾個(gè)主要內(nèi)置對(duì)象有Request、Response、Session、Out。通過(guò)這些內(nèi)置對(duì)象,可以實(shí)現(xiàn)頁(yè)面的一些基本的請(qǐng)求輸入、輸出功能,且可實(shí)現(xiàn)數(shù)據(jù)在頁(yè)面之間的交互。本系統(tǒng)主要用到的有以下幾個(gè)對(duì)象[4]:</p><p>  1)Request對(duì)象:主要功能是接受客戶(hù)端以HTTP方式傳送的數(shù)據(jù),使服務(wù)器端的應(yīng)用程序可以根據(jù)

50、這些數(shù)據(jù)做進(jìn)一步的信息處理,實(shí)現(xiàn)與客戶(hù)進(jìn)行交互的功能。一般常用的是它的getParameter(String name)這個(gè)方法來(lái)獲取傳遞的參數(shù)。其接口為javax.servlet.http.HttpServletRequest。</p><p>  2)Response對(duì)象:主要功能是用來(lái)對(duì)客戶(hù)的請(qǐng)求做出響應(yīng),與Request對(duì)象對(duì)應(yīng)的就是Response對(duì)象。Response對(duì)象用于將服務(wù)器的數(shù)據(jù)發(fā)送到客戶(hù)端

51、,輸出的數(shù)據(jù)可以是各種數(shù)據(jù)類(lèi)型,甚至是文件。一般經(jīng)常用到的是它的sendRedirect(URL url)這個(gè)方法來(lái)重定向當(dāng)前用戶(hù)訪問(wèn)的url。Response對(duì)象的接口為javax.servlet.http.HttpServletResponse。</p><p>  3)Session對(duì)象:主要功能用來(lái)保存每個(gè)用戶(hù)在會(huì)話期間的數(shù)據(jù)信息,這樣就方便了會(huì)話處理工作。當(dāng)用戶(hù)登錄網(wǎng)站時(shí),系統(tǒng)將為其生成一個(gè)獨(dú)一無(wú)二的s

52、ession對(duì)象,用以記錄該用戶(hù)的個(gè)人信息,一旦該用戶(hù)退出網(wǎng)站,那么這個(gè)session對(duì)象將會(huì)注銷(xiāo)。Session對(duì)象可以綁定若干個(gè)人信息或Java對(duì)象。Session對(duì)象的接口為javax.servlet.http.HttpServletSession。</p><p>  4)Out對(duì)象:主要功能是用于動(dòng)態(tài)地向客戶(hù)端輸出數(shù)據(jù)信息,其主要作用是在Web瀏覽器內(nèi)輸出信息。這個(gè)對(duì)象使用比較頻繁,在數(shù)據(jù)的輸出方面經(jīng)常

53、用到它的println(parameter)這個(gè)方法。同時(shí),它也是進(jìn)行糾錯(cuò)處理時(shí)一個(gè)比較有效的輸出方法。</p><p>  2.2.2 JavaScript簡(jiǎn)介</p><p>  JavaScript是適應(yīng)動(dòng)態(tài)網(wǎng)頁(yè)制作的需要而誕生的一種新的編程語(yǔ)言,如今越來(lái)越廣泛地使用于Internet網(wǎng)頁(yè)制作上。JavaScript是由Netscape公司開(kāi)發(fā)的一種腳本語(yǔ)言(scripting l

54、anguage),或者稱(chēng)為描述語(yǔ)言。在HTML基礎(chǔ)上,使用JavaScript可以開(kāi)發(fā)交互式Web網(wǎng)頁(yè)。JavaScript的出現(xiàn)使得網(wǎng)頁(yè)和用戶(hù)之間實(shí)現(xiàn)了一種實(shí)時(shí)性的、動(dòng)態(tài)的、交互性的關(guān)系,使網(wǎng)頁(yè)包含更多活躍的元素和更加精彩的內(nèi)容。JavaScript短小精悍,又是在客戶(hù)機(jī)上執(zhí)行的,大大提高了網(wǎng)頁(yè)的瀏覽速度和交互能力。同時(shí)它又是專(zhuān)門(mén)為制作Web網(wǎng)頁(yè)而量身定做的一種簡(jiǎn)單的編程語(yǔ)言。</p><p>  JavaSc

55、ript加入網(wǎng)頁(yè)有兩種辦法[7]:</p><p>  1.直接加入HTML文檔</p><p>  這是最常用的方法,大部分含有JavaScript的網(wǎng)頁(yè)都采用這種方法,如:</p><p>  <script language="Javascript"></p><p><b>  <!--

56、</b></p><p>  document.writeln("這是Javascript!采用直接插入的方法!");</p><p>  //-Javascript結(jié)束--></p><p><b>  </script></b></p><p>  <scrip

57、t language="Javascript”>用來(lái)告訴瀏覽器這是用JavaScript編寫(xiě)的程序,需要調(diào)動(dòng)相應(yīng)的解釋程序進(jìn)行解釋。</p><p>  HTML的注釋標(biāo)簽<!--和-->:用來(lái)去掉瀏覽器所不能識(shí)別的JavaScript源代碼的,這對(duì)不支持Javascript語(yǔ)言的瀏覽器來(lái)說(shuō)是很有用的。</p><p>  //-Javascript結(jié)束:雙斜杠

58、表示JavaScript的注釋部分,即從//開(kāi)始到行尾的字符都被忽略。<script></script>的位置并不是固定的,可以包含在<head></head> 或<body></body>中的任何地方。</p><p>  2.引用方式:如果已經(jīng)存在一個(gè)JavaScript源文件(以js為擴(kuò)展名),則可以采用這種引用的方式,以提高程序代碼的

59、利用率。其基本格式如下:</p><p>  <script src=url language="Javascript"></script> </p><p>  其中的url就是程序文件的地址。同樣的,這樣的語(yǔ)句可以放在HTML文檔頭部或主體的任何部分。如果要實(shí)現(xiàn)“直接插入方式”中所舉例子的效果,可以首先創(chuàng)建一個(gè)JavaScript源代碼文件“

60、Script.js”,其內(nèi)容如下:document.writeln("這是Javascript!采用直接插入的方法!")。在網(wǎng)頁(yè)中可以這樣調(diào)用程序:</p><p>  <script src=”Script.js” language=”Javascript”></script></p><p>  2.2.3 MVC模式</p>

61、<p>  MVC即Model-View-Controller,M代表業(yè)務(wù)邏輯,V代表視圖,C代表控制層。通過(guò)使用MVC模式就把軟件層次分為三個(gè)層:模型層、視圖層、控制層[1]。</p><p>  模型(Model)層:也就是軟件業(yè)務(wù)的實(shí)現(xiàn)部分。一個(gè)軟件有什么功能,它如何實(shí)現(xiàn)功能,這些功能之間的聯(lián)系都是在模型層進(jìn)行處理的??梢赃@樣說(shuō),模型層是一個(gè)軟件的核心,軟件功能的好壞、軟件功能是否完善,業(yè)務(wù)層起

62、到了決定性的作用。</p><p>  視圖(View)層:就是用戶(hù)能看到的并與之交互的界面。在J2EE技術(shù)中,常用的表示層技術(shù)主要由JSP、JSF、Freemarker等組成。視圖向用戶(hù)顯示相關(guān)的數(shù)據(jù),并能接受用戶(hù)的輸入數(shù)據(jù),但是它不能進(jìn)行任何實(shí)際的業(yè)務(wù)處理。視圖還可以接受模型發(fā)出來(lái)的數(shù)據(jù)更新事件,從而對(duì)用戶(hù)界面進(jìn)行同步更新。</p><p>  控制(Controller)層:Stru

63、ts中的控制層和Servlet的功能功能一模一樣,就是調(diào)用業(yè)務(wù)層,然后進(jìn)行視圖的切換??刂茖訋缀醪蛔鋈魏闻c業(yè)務(wù)有關(guān)的事情,比如登錄驗(yàn)證這些。所以在軟件的分層結(jié)構(gòu)設(shè)計(jì)中,控制層的代碼量幾乎是最少的,但它的作用也是非常重要的。</p><p>  通過(guò)將模型、視圖與控制層的分離,各個(gè)層之間的聯(lián)系非常少,但這樣做的好處是,控制層可以隨意的切換到自己想要展示的頁(yè)面,然后控制層調(diào)用業(yè)務(wù)邏輯層和持久化保存數(shù)據(jù)層,來(lái)實(shí)現(xiàn)軟件的

64、功能,再轉(zhuǎn)回到控制層,最后將最終的結(jié)果顯示到視圖層,這實(shí)際上是一種模型的變化——傳播機(jī)制。模型、視圖、控制層三者之間的關(guān)系和各自的主要功能如圖2-1所示。</p><p>  圖2- 1 MVC組件關(guān)系和功能</p><p>  2.2.4 Struts框架</p><p>  Struts已經(jīng)提供了一個(gè)非常好的MVC框架,利用Struts開(kāi)發(fā)MVC系統(tǒng)時(shí)可以大

65、大加快開(kāi)發(fā)速度。在開(kāi)發(fā)時(shí)可以采用的開(kāi)發(fā)流程如下。</p><p>  收集和定義應(yīng)用需求。</p><p>  基于數(shù)據(jù)采集和顯示的原則定義和開(kāi)發(fā)用戶(hù)界面的需求。</p><p>  為每一個(gè)用戶(hù)界面JSP文件定義訪問(wèn)路徑。</p><p>  定義ActionMapping建立應(yīng)用業(yè)務(wù)邏輯之間的聯(lián)系。</p><p>

66、;  開(kāi)發(fā)滿(mǎn)足用戶(hù)界面需求的所有支持對(duì)象。</p><p>  基于每一個(gè)用戶(hù)界面需求提供的數(shù)據(jù)屬性來(lái)創(chuàng)建對(duì)應(yīng)的ActionForm對(duì)象。</p><p>  開(kāi)發(fā)被ActionMapping調(diào)用的Action對(duì)象。</p><p>  開(kāi)發(fā)應(yīng)用業(yè)務(wù)邏輯對(duì)象(Bean、EJB等)。</p><p>  對(duì)應(yīng)ActionMapping設(shè)計(jì)的流程

67、創(chuàng)建JSP頁(yè)面。</p><p>  建立合適的配置文件struts-config.xml、web.xml。</p><p><b>  開(kāi)發(fā)/測(cè)試/部署。</b></p><p>  利用Sruts開(kāi)發(fā)MVC流程,如圖2-2所示。</p><p>  圖2- 2 Struts框架MVC流程圖</p>&

68、lt;p>  在使用Struts框架時(shí),對(duì)應(yīng)各個(gè)部分的具體開(kāi)發(fā)工作主要包括一下部分。</p><p>  Model部分:采用JavaBean或EJB組件或Spring的Bean,設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)邏輯。根據(jù)不同的請(qǐng)求從Action派生具體Action處理對(duì)象。完成“做什么”的任務(wù)來(lái)調(diào)用由Bean構(gòu)成的業(yè)務(wù)組件。創(chuàng)建由ActionForm的派生類(lèi)實(shí)現(xiàn)對(duì)客戶(hù)端表單數(shù)據(jù)的封裝及簡(jiǎn)單的校驗(yàn)。</p>

69、<p>  Controller部分:Struts為我們提供了核心控制部分的實(shí)現(xiàn)。只需要配置ActionMapping對(duì)象即可完成URI地址的映射及匹配用戶(hù)界面表單和ActionForm類(lèi)的對(duì)應(yīng)關(guān)系。</p><p>  View部分:為了使用Model中的ActionForm對(duì)象,必須用Struts提供的自定義標(biāo)記創(chuàng)建HTML表單。利用Struts提供的自定義標(biāo)記庫(kù)編寫(xiě)用戶(hù)界面,把應(yīng)用邏輯和顯示邏

70、輯分離。Struts框架通過(guò)這些自定義標(biāo)記建立了View和Model之間的聯(lián)系。Struts的自定義標(biāo)記還提供了很多定制頁(yè)面的功能。</p><p>  同時(shí),需要編輯兩個(gè)配置文件:web.xml和struts-config.xml。通過(guò)它們配置Struts系統(tǒng)中的各個(gè)模塊之間的交互。</p><p>  圖2-2描述了一個(gè)Struts應(yīng)用程序的簡(jiǎn)要執(zhí)行流程。</p><

71、;p>  客戶(hù)端瀏覽器發(fā)出請(qǐng)求。</p><p>  服務(wù)器端的Struts中心類(lèi)ActionServlet找到struts-config.xml文件,并放入到內(nèi)存,將文件中的內(nèi)容作為請(qǐng)求路徑映射。</p><p>  ActionServlet類(lèi)在struts-config.xml文件中找到相關(guān)的請(qǐng)求路徑映射后填充ActionForm類(lèi),將前臺(tái)傳進(jìn)來(lái)的表單域打包成Bean。<

72、/p><p>  然后轉(zhuǎn)到Action類(lèi)進(jìn)行業(yè)務(wù)邏輯功能的實(shí)現(xiàn),比如增、刪、改、查數(shù)據(jù)庫(kù)中的數(shù)據(jù)。</p><p>  再通過(guò)struts-config.xml文件的映射,找到功能邏輯處理結(jié)束后顯示給客戶(hù)端用戶(hù)看到的頁(yè)面,轉(zhuǎn)發(fā)功能通過(guò)ActionForward對(duì)象實(shí)現(xiàn)。</p><p>  由圖2-2“Struts框架MVC流程圖”結(jié)構(gòu)來(lái)看,Struts框架可以將軟件的

73、功能進(jìn)行分層化,這樣可以將精通不同技術(shù)的人員工作模塊化、分工化。比如精通UI用戶(hù)界面設(shè)計(jì)的可以只管View視圖層,而精通Java程序設(shè)計(jì)的程序員可以開(kāi)發(fā)Model層的代碼。</p><p>  2.2.5 Spring框架</p><p>  Spring框架是一個(gè)開(kāi)放源代碼的輕量級(jí)Java框架。主要作用是為了解決企業(yè)應(yīng)用程序維護(hù)的復(fù)雜性而創(chuàng)建的。Spring框架的解決辦法就是用分層架構(gòu)

74、,分層架構(gòu)允許程序員選擇使用哪一個(gè)組件,同時(shí)為J2EE應(yīng)用程序開(kāi)發(fā)提供集成的容器。</p><p>  Spring框架就是實(shí)現(xiàn)了AOP功能的IOC容器。在IOC容器的基礎(chǔ)上加入AOP不僅可以做到松耦合開(kāi)發(fā),還具有面向切面編程的功能。</p><p>  Spring2.0七大模塊的架構(gòu),如圖2-3所示。</p><p>  圖2- 3 Spring架構(gòu)</

75、p><p>  組成 Spring 框架的每個(gè)模塊(或組件)都可以單獨(dú)存在,或者與其他一個(gè)或多個(gè)模塊聯(lián)合實(shí)現(xiàn)。每個(gè)模塊的功能如下: </p><p>  Spring Core:核心容器提供 Spring 框架的基本功能。核心容器的主要組件是 BeanFactory,它是工廠模式的實(shí)現(xiàn)。BeanFactory 使用控制反轉(zhuǎn) (IOC) 模式將應(yīng)用程序的配置和依賴(lài)性規(guī)范與實(shí)際的應(yīng)用程序代碼分開(kāi)。

76、 </p><p>  Spring Context:Spring Context是一個(gè)配置文件,向 Spring 框架提供上下文信息。Spring Context包括企業(yè)服務(wù),例如 JNDI、EJB、電子郵件、國(guó)際化、校驗(yàn)和調(diào)度功能。 </p><p>  Spring AOP:通過(guò)配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring 框架中。所以,可以

77、很容易地使 Spring 框架管理的任何對(duì)象支持 AOP。Spring AOP 模塊為基于 Spring 的應(yīng)用程序中的對(duì)象提供了事務(wù)管理服務(wù)。通過(guò)使用 Spring AOP,不用依賴(lài) EJB 組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。 </p><p>  Spring DAO:JDBC DAO 抽象層提供了有意義的異常層次結(jié)構(gòu),可用該結(jié)構(gòu)來(lái)管理異常處理和不同數(shù)據(jù)庫(kù)供應(yīng)商拋出的錯(cuò)誤消息。異常層次結(jié)構(gòu)簡(jiǎn)化了錯(cuò)

78、誤處理,并且極大地降低了需要編寫(xiě)的異常代碼數(shù)量(例如打開(kāi)和關(guān)閉連接)。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結(jié)構(gòu)。 </p><p>  Spring ORM:Spring 框架插入了若干個(gè) ORM 框架,從而提供了 ORM 的對(duì)象關(guān)系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有這些都遵從 Spring 的通用事務(wù)和 DAO 異常層次結(jié)構(gòu)。

79、 </p><p>  Spring Web 模塊:Web 上下文模塊建立在應(yīng)用程序上下文模塊之上,為基于 Web 的應(yīng)用程序提供了上下文。所以,Spring 框架支持與 Jakarta Struts 的集成。Web 模塊還簡(jiǎn)化了處理多部分請(qǐng)求以及將請(qǐng)求參數(shù)綁定到域?qū)ο蟮墓ぷ鳌?</p><p>  Spring Web MVC:MVC 框架是一個(gè)全功能的構(gòu)建 Web 應(yīng)用程序的 MVC

80、實(shí)現(xiàn)。通過(guò)策略接口,MVC 框架變成為高度可配置的,MVC 容納了大量視圖技術(shù),其中包括 JSP、Velocity、Tiles、iText 和 POI。</p><p>  Spring 框架的功能可以用在任何 J2EE 服務(wù)器中,大多數(shù)功能也適用于不受管理的環(huán)境。Spring 的核心要點(diǎn)是:支持不綁定到特定 J2EE 服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)訪問(wèn)對(duì)象。毫無(wú)疑問(wèn),這樣的對(duì)象可以在不同 J2EE 環(huán)境 (Web 或

81、EJB)、獨(dú)立應(yīng)用程序、測(cè)試環(huán)境之間重用。</p><p>  控制反轉(zhuǎn)模式(也稱(chēng)作依賴(lài)性介入)的基本概念是:不創(chuàng)建對(duì)象,但是描述創(chuàng)建它們的方式。在代碼中不直接與對(duì)象和服務(wù)連接,但在配置文件中描述哪一個(gè)組件需要哪一項(xiàng)服務(wù)。容器 (在 Spring 框架中是 IOC 容器) 負(fù)責(zé)將這些聯(lián)系在一起。</p><p>  在典型的 IOC 場(chǎng)景中,容器創(chuàng)建了所有對(duì)象,并設(shè)置必要的屬性將它們連接在

82、一起,決定什么時(shí)間調(diào)用方法。下表列出了 IOC 的一個(gè)實(shí)現(xiàn)模式。</p><p>  Spring 框架的 IOC 容器采用類(lèi)型 2 和類(lèi)型3 實(shí)現(xiàn)。</p><p>  面向方面的編程,即 AOP,是一種編程技術(shù),它允許程序員對(duì)橫切關(guān)注點(diǎn)或橫切典型的職責(zé)分界線的行為(例如日志和事務(wù)管理)進(jìn)行模塊化。AOP 的核心構(gòu)造是方面,它將那些影響多個(gè)類(lèi)的行為封裝到可重用的模塊中。</p>

83、;<p>  AOP 和 IOC 是補(bǔ)充性的技術(shù),它們都運(yùn)用模塊化方式解決企業(yè)應(yīng)用程序開(kāi)發(fā)中的復(fù)雜問(wèn)題。在典型的面向?qū)ο箝_(kāi)發(fā)方式中,可能要將日志記錄語(yǔ)句放在所有方法和 Java 類(lèi)中才能實(shí)現(xiàn)日志功能。在 AOP 方式中,可以反過(guò)來(lái)將日志服務(wù)模塊化,并以聲明的方式將它們應(yīng)用到需要日志的組件上。當(dāng)然,優(yōu)勢(shì)就是 Java 類(lèi)不需要知道日志服務(wù)的存在,也不需要考慮相關(guān)的代碼。所以,用 Spring AOP 編寫(xiě)的應(yīng)用程序代碼是松散

84、耦合的。</p><p>  AOP 的功能完全集成到了 Spring 事務(wù)管理、日志和其他各種特性的上下文中。</p><p>  Spring 設(shè)計(jì)的核心是 org.springframework.beans 包,它的設(shè)計(jì)目標(biāo)是與 JavaBean 組件一起使用。這個(gè)包通常不是由用戶(hù)直接使用,而是由服務(wù)器將其用作其他多數(shù)功能的底層中介。下一個(gè)最高級(jí)抽象是 BeanFactory 接口,

85、它是工廠設(shè)計(jì)模式的實(shí)現(xiàn),允許通過(guò)名稱(chēng)創(chuàng)建和檢索對(duì)象。BeanFactory 也可以管理對(duì)象之間的關(guān)系。</p><p>  BeanFactory 支持兩個(gè)對(duì)象模型。</p><p>  單態(tài) 模型提供了具有特定名稱(chēng)的對(duì)象的共享實(shí)例,可以在查詢(xún)時(shí)對(duì)其進(jìn)行檢索。Singleton 是默認(rèn)的也是最常用的對(duì)象模型。對(duì)于無(wú)狀態(tài)服務(wù)對(duì)象很理想。</p><p>  原型 模型

86、確保每次檢索都會(huì)創(chuàng)建單獨(dú)的對(duì)象。在每個(gè)用戶(hù)都需要自己的對(duì)象時(shí),原型模型最適合。 </p><p>  bean 工廠的概念是 Spring 作為 IOC 容器的基礎(chǔ)。IOC 將處理事情的責(zé)任從應(yīng)用程序代碼轉(zhuǎn)移到框架。正如我將在下一個(gè)示例中演示的那樣,Spring 框架使用 JavaBean 屬性和配置數(shù)據(jù)來(lái)指出必須設(shè)置的依賴(lài)關(guān)系。</p><p>  2.2.6 Hibernate框架&

87、lt;/p><p>  Hibernate是目前最流行的ORM框架,其采用非常優(yōu)雅的方式將SQL操作完全包裝成對(duì)象化的操作。其作者Gavin King在持久層設(shè)計(jì)上極富經(jīng)驗(yàn),采用非常少的代碼實(shí)現(xiàn)了整個(gè)框架,同時(shí)完全開(kāi)放源代碼,即使偶爾遇到無(wú)法理解的情況,也可以參照源代碼來(lái)理解其在持久層上靈巧而智能的設(shè)計(jì)。</p><p>  目前Hibernate在國(guó)內(nèi)的開(kāi)發(fā)人員相當(dāng)多,Hibernate的文

88、檔也非常豐富,這些都為學(xué)習(xí)Hibernate鋪平了道路,因而Hibernate的學(xué)習(xí)相對(duì)簡(jiǎn)單一些。下面通過(guò)對(duì)比來(lái)了解Hibernate和傳統(tǒng)JDBC操作數(shù)據(jù)庫(kù)持久層之間的差異。</p><p>  當(dāng)前的軟件開(kāi)發(fā)語(yǔ)言已經(jīng)全面轉(zhuǎn)向面向?qū)ο?,而?shù)據(jù)庫(kù)系統(tǒng)仍停留在關(guān)系數(shù)據(jù)庫(kù)階段。面對(duì)復(fù)雜的企業(yè)環(huán)境,同時(shí)使用面向?qū)ο笳Z(yǔ)言和關(guān)系數(shù)據(jù)庫(kù)是相當(dāng)麻煩的,不但中間的過(guò)度難以理解,而且其開(kāi)發(fā)周期也相當(dāng)長(zhǎng)。</p>&l

89、t;p>  Hibernate是一個(gè)面向Java環(huán)境的對(duì)象/關(guān)系數(shù)據(jù)庫(kù)映射工具(Object/Relational Mapping),用來(lái)把對(duì)象模型表示的對(duì)象映射到基于SQL的關(guān)系模型數(shù)據(jù)結(jié)構(gòu)中去。</p><p>  Hibernate的目標(biāo)是:釋放開(kāi)發(fā)者通常的數(shù)據(jù)持久化相關(guān)的變成任務(wù)的95%。對(duì)于以數(shù)據(jù)為中心的程序而言,往往在數(shù)據(jù)庫(kù)中使用存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn)商業(yè)邏輯,Hibernate可能不是最好的解決方案。

90、但對(duì)于那些基于Java的中間件應(yīng)用中,設(shè)計(jì)采用面向?qū)ο蟮臉I(yè)務(wù)模型和商業(yè)邏輯時(shí),Hibernate是最有用的。不管怎樣,Hibernate能消除那些針對(duì)特定數(shù)據(jù)庫(kù)廠商的SQL代碼,并且把結(jié)果集由表格式的形式轉(zhuǎn)換成值對(duì)象的形式。</p><p>  Hibernate不僅管理Java類(lèi)到數(shù)據(jù)庫(kù)表的映射(包括Java數(shù)據(jù)類(lèi)型到SQL數(shù)據(jù)類(lèi)型的映射),還提供數(shù)據(jù)查詢(xún)和獲取數(shù)據(jù)的方法,可以大幅度地減少在開(kāi)發(fā)時(shí)人工使用SQL

91、和JDBC處理數(shù)據(jù)的時(shí)間。</p><p>  Hibernate能在眾多的ORM框架中脫穎而出,因?yàn)镠ibernate與其他ORM框架對(duì)比具有如下優(yōu)勢(shì)。</p><p>  開(kāi)源和免費(fèi)的License,方便需要是研究源代碼、改寫(xiě)源代碼并進(jìn)行功能定制。</p><p>  輕量級(jí)封裝,避免引入過(guò)多復(fù)雜的問(wèn)題,調(diào)試容易,減輕程序員負(fù)擔(dān)。</p><

92、p>  具有可擴(kuò)展性,API開(kāi)放。功能不夠用時(shí),可以自己編碼進(jìn)行擴(kuò)展。</p><p>  開(kāi)發(fā)者活躍,產(chǎn)品有穩(wěn)定的發(fā)展保障。</p><p>  第三章 系統(tǒng)需求分析與前臺(tái)設(shè)計(jì)</p><p><b>  3.1 需求分析</b></p><p>  根據(jù)軟件開(kāi)發(fā)過(guò)程的要求,在技術(shù)實(shí)現(xiàn)可行性確定的基礎(chǔ)上,我們

93、首先要進(jìn)行的是系統(tǒng)流程的分析。需求分析就是描述系統(tǒng)的需求情況。結(jié)合用戶(hù)的需求,本模塊是用于服裝企業(yè)的成本管理,對(duì)成本信息進(jìn)行添加,刪除,修改以及查詢(xún)等一系列的操作。本系統(tǒng)主要應(yīng)有如下要求:</p><p>  網(wǎng)頁(yè)風(fēng)格符合企業(yè)員工的特點(diǎn),簡(jiǎn)單實(shí)用。</p><p>  符合企業(yè)實(shí)際的成本管理方式。</p><p>  要求完成成本信息相關(guān)的所有基本操作,包括添加、刪

94、除、修改以及查詢(xún)等操作。</p><p>  要求能夠上傳與成本相關(guān)的文件,方便以后的查找管理。</p><p>  3.1.1 系統(tǒng)前臺(tái)簡(jiǎn)要設(shè)計(jì)概述</p><p>  該成本管理系統(tǒng)主要是針對(duì)服裝企業(yè)的,其成本管理模塊的前臺(tái)主要能完成以下功能:</p><p>  在用戶(hù)登錄之后,選擇成本管理中的成本明細(xì)維護(hù),能夠看到自己權(quán)限范圍內(nèi)的所

95、有成本信息。 </p><p>  用戶(hù)可以使用多字段,查詢(xún)自己需要查詢(xún)的成本信息,并可以點(diǎn)擊查看該成本信息的詳細(xì)內(nèi)容</p><p>  除了查詢(xún)功能外,用戶(hù)還必須能夠?qū)σ延械某杀拘畔⑦M(jìn)行修改。</p><p>  用戶(hù)可以添加新的成本信息。</p><p>  對(duì)于添加錯(cuò)誤的成本信息,可以進(jìn)行對(duì)其進(jìn)行刪除操作,但刪除操作可以不單獨(dú)列出一個(gè)

96、界面,直接從顯示列表和數(shù)據(jù)庫(kù)中刪除即可。</p><p>  圖3-1表示前臺(tái)頁(yè)面主菜單結(jié)構(gòu)圖:</p><p>  圖3- 1 前臺(tái)頁(yè)面主菜單</p><p>  3.1.2 系統(tǒng)用例圖</p><p>  圖3-2 成本管理模塊用例圖</p><p><b>  3.2 系統(tǒng)設(shè)計(jì)</b>

97、;</p><p>  3.2.1 系統(tǒng)層次劃分</p><p>  該系統(tǒng)模塊中,模塊系統(tǒng)共分為五層,分別為表現(xiàn)層、控制層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層,數(shù)據(jù)層,如圖3-2所示。</p><p>  圖3-3 網(wǎng)站模塊分層</p><p>  表現(xiàn)層中,系統(tǒng)主要采用了JSP技術(shù),將Action傳遞過(guò)來(lái)的數(shù)據(jù)封裝在ActionForm中,進(jìn)行一

98、定的處理之后,再反饋給前臺(tái)頁(yè)面。</p><p>  控制層主要是為了控制協(xié)調(diào)系統(tǒng)中各模塊的執(zhí)行流程,在控制層中,Struts中的ActionServlet控制系統(tǒng)流程轉(zhuǎn)向。</p><p>  業(yè)務(wù)邏輯層,主要采用Javabean,來(lái)實(shí)現(xiàn)具體系統(tǒng)的業(yè)務(wù)邏輯處理。</p><p>  數(shù)據(jù)訪問(wèn)層,主要是采用Hibernate持久層方案,通過(guò)Hibernate封裝對(duì)數(shù)

99、據(jù)層的操作,方便于在不同的數(shù)據(jù)庫(kù)系統(tǒng)間移植。Hibernate也采用了面向?qū)ο蟮乃枷雭?lái)操作數(shù)據(jù)庫(kù)。</p><p>  數(shù)據(jù)層存放系統(tǒng)中的數(shù)據(jù),本系統(tǒng)采用MySQL數(shù)據(jù)庫(kù)。</p><p>  3.2.2 數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p>  數(shù)據(jù)庫(kù)就是存放數(shù)據(jù)的倉(cāng)庫(kù),即數(shù)據(jù)按照一定的規(guī)律存放在計(jì)算機(jī)中,是信息系統(tǒng)的核心和基礎(chǔ),是信息系統(tǒng)開(kāi)發(fā)和建設(shè)的重要組成部分,把信息

100、系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來(lái),提供存儲(chǔ)、維護(hù)、檢索數(shù)據(jù)的功能,使信息系統(tǒng)可以方便、及時(shí)、準(zhǔn)確地從數(shù)據(jù)庫(kù)中獲得所需的信息。數(shù)據(jù)庫(kù)設(shè)計(jì)是信息資源管理最有效的手段,數(shù)據(jù)庫(kù)設(shè)計(jì)就是根據(jù)具體的應(yīng)用環(huán)境,構(gòu)造合理數(shù)據(jù)庫(kù)模式,建立數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu),有效存儲(chǔ)數(shù)據(jù),滿(mǎn)足用戶(hù)實(shí)際需求和系統(tǒng)應(yīng)用處理要求。在動(dòng)態(tài)網(wǎng)站設(shè)計(jì)中數(shù)據(jù)庫(kù)的重要性不言而喻。合理地設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)可以提高系統(tǒng)運(yùn)行的效率。如果設(shè)計(jì)不當(dāng),查詢(xún)起來(lái)就非常吃力,程序的性能也會(huì)受到影響[2]。&

101、lt;/p><p>  數(shù)據(jù)庫(kù)的設(shè)計(jì)一般主要包括兩個(gè)部分:</p><p>  對(duì)網(wǎng)站系統(tǒng)的設(shè)計(jì)進(jìn)行需求分析,確定所需要在數(shù)據(jù)庫(kù)中保存的信息。</p><p>  確定每個(gè)表的字段屬性等數(shù)據(jù)庫(kù)信息。</p><p>  根據(jù)系統(tǒng)設(shè)計(jì)和業(yè)務(wù)邏輯分析,與我所做模塊連接比較緊密的數(shù)據(jù)表有:</p><p><b>  

102、USER表</b></p><p>  SINGLE_MATERIAL_BILL表</p><p>  SINGLE_MATERIAL_BILL_ITEM表</p><p>  STYLE_COMPONENT表</p><p>  如表3-1所示,該表為USER表結(jié)構(gòu),用于保存登錄用戶(hù)的信息。</p><p&g

103、t;  表3-1 USER表</p><p>  如表3-2所示,該表為SINGLE_MATERIAL_BILL表結(jié)構(gòu),用于保存成本明細(xì)信息,不包括各成本子項(xiàng)明細(xì)信息。</p><p>  表3-2 SINGLE_MATERIAL_BILL表</p><p>  如表3-3所示,該表為SINGLE_MATERIAL_BILL_ITEM表結(jié)構(gòu),用于保存各成本子項(xiàng)明

104、細(xì)信息。</p><p>  表3-3 SINGLE_MATERIAL_BILL_ITEM表</p><p>  如表3-4所示,該表為STYLE_COMPONENT表結(jié)構(gòu),用于保存各成本子項(xiàng)配置信息。</p><p>  表3-4 STYLE_COMPONENT表</p><p>  3.2.3 成本管理模塊時(shí)序圖</p>

105、<p>  3.2.3.1 查詢(xún)成本信息列表時(shí)序圖</p><p>  如圖3-4所示,該圖為查詢(xún)成本信息列表時(shí)序圖。</p><p>  圖3-4 查詢(xún)成本信息列表時(shí)序圖</p><p><b>  具體步驟如下:</b></p><p>  用戶(hù)單擊成本維護(hù)界面右側(cè)的查詢(xún)按鈕時(shí),Struts的Act

106、ionForward通過(guò)struts-config.xml的配置轉(zhuǎn)發(fā)至Cost_Ma.jsp頁(yè)面。</p><p>  用戶(hù)填完新的成本信息后單擊提交按鈕時(shí),Struts會(huì)通過(guò)struts-config.xml的配置調(diào)用CostDetailAction類(lèi)的queryMa ()方法。</p><p>  CostDetailAction類(lèi)的queryMa ()調(diào)用SingleMaterial

107、ProcessImpl類(lèi)的getSingleMaterialBillsByTerm ()方法。</p><p>  調(diào)用SingleMaterialBillDAOImplHibernate類(lèi)的findSingleMaterialBillByTerm ()方法。</p><p>  調(diào)用HibernateTemplate類(lèi)的find()方法。</p><p><

108、b>  返回成本信息列表。</b></p><p>  3.2.3.2 添加成本信息時(shí)序圖</p><p>  如圖3-5所示,該圖為添加成本信息時(shí)序圖。</p><p>  圖3-5 添加成本信息時(shí)序圖</p><p><b>  具體步驟如下:</b></p><p> 

109、 用戶(hù)單擊成本維護(hù)界面右側(cè)的添加按鈕時(shí),Struts的ActionForward通過(guò)struts-config.xml的配置轉(zhuǎn)發(fā)至Cost_Add.jsp頁(yè)面。</p><p>  用戶(hù)填完新的成本信息后單擊提交按鈕時(shí),Struts會(huì)通過(guò)struts-config.xml的配置調(diào)用CostDetailAction類(lèi)的submitSingleMaterialBill ()方法。</p><p&g

110、t;  CostDetailAction類(lèi)的submitSingleMaterialBill()調(diào)用SingleMaterialProcessImpl類(lèi)的createSingleMaterialBill ()方法。</p><p>  調(diào)用SingleMaterialBillDAOImplHibernate類(lèi)的saveSingleMaterialBill()方法。</p><p>  調(diào)用

111、HibernateTemplate類(lèi)的save()方法。</p><p>  返回“添加成功”信息。</p><p>  3.2.3.3 修改成本信息列表時(shí)序圖</p><p>  如圖3-6所示,該圖為修改成本明細(xì)信息時(shí)序圖。</p><p>  圖3-6 修改成本明細(xì)信息時(shí)序圖</p><p><b>

溫馨提示

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

評(píng)論

0/150

提交評(píng)論