學(xué)生頂崗實(shí)習(xí)管理系統(tǒng)畢業(yè)設(shè)計(jì)論文_第1頁
已閱讀1頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  學(xué)生頂崗實(shí)習(xí)管理系統(tǒng)</p><p><b>  摘要</b></p><p>  隨著高專教育的不斷發(fā)展,高等職業(yè)教育兩年制改革的推行,我院于2011年在09級(jí)學(xué)生中開始實(shí)行高職新”2+1”教育模式;兩年在校學(xué)習(xí),一年生產(chǎn)頂崗實(shí)習(xí)、實(shí)訓(xùn)。新“2+1”模式以兩年制高職教育為基礎(chǔ),通過頂崗實(shí)習(xí)專業(yè)培訓(xùn)或綜合培訓(xùn)使學(xué)生獲得職業(yè)崗位技能和自身綜合素質(zhì)的

2、全面提升。部分本科學(xué)生最后一學(xué)期,因特殊原因不能在校完成畢業(yè)設(shè)計(jì),需在外頂崗實(shí)習(xí)。由于最后一年學(xué)生在外頂崗實(shí)習(xí),學(xué)生的頂崗實(shí)習(xí)質(zhì)量直接影響著學(xué)生的成才與就業(yè)因而這一環(huán)節(jié)的管理與指導(dǎo)顯的尤為重要,一方面,我們要讓學(xué)生一年崗位實(shí)習(xí)滿意,能受益非淺,畢業(yè)后能獲得一個(gè)不錯(cuò)的職位,另一方面能讓老師對(duì)學(xué)生頂崗實(shí)習(xí)及就業(yè)指導(dǎo)高效快捷地開展進(jìn)行;再者就是讓學(xué)院的管理層及時(shí)了解學(xué)生的實(shí)習(xí)動(dòng)態(tài)及就業(yè)情況。在這種背景下,我準(zhǔn)備設(shè)計(jì)、開發(fā)一套符合本校、功能完善

3、的基于web的學(xué)生頂崗實(shí)習(xí)管理系統(tǒng)。主要內(nèi)容如下:</p><p><b>  1.教師客戶端功能</b></p><p>  登陸后可以修改自己的密碼和個(gè)人信息</p><p>  可以查看所有學(xué)生的個(gè)人信息和實(shí)習(xí)信息。</p><p>  可以根據(jù)學(xué)號(hào)查詢學(xué)生的個(gè)人及實(shí)習(xí)信息。</p><p>

4、;<b>  可以發(fā)布通知。</b></p><p>  可以進(jìn)行組織管理,及對(duì)系別和班級(jí)的管理。以供學(xué)生注冊(cè)時(shí)選擇。</p><p><b>  2.學(xué)生客戶端功能</b></p><p>  注冊(cè)自己的個(gè)人信息。</p><p>  登陸后可以修改自己的密碼和個(gè)人信息。</p>&

5、lt;p>  查看老師發(fā)布的信息。</p><p>  添加、修改和管理自己的實(shí)習(xí)信息。</p><p>  關(guān)鍵字:學(xué)生頂崗實(shí)習(xí);JSP+Servlet;Mysql;Myeclipes;tomcat;MVC; struts;spring;hibernate</p><p>  Students internship management system<

6、/p><p><b>  Abstract</b></p><p>  With the continuous development of higher vocational education, system reform of higher occupation education two years of implementation, our hospital

7、started to implement the new "2+1" mode of Higher Vocational Education in 2011 in the class of 09; two years at school, one year production practice, practice. The new "2+1" mode on the basis of two-y

8、ear higher vocational education system, through the practice of professional training or training to enable students to obtain the occupation skill a</p><p>  1, the teacher client function</p><p&

9、gt;  ● after landing can modify their password and personal information</p><p>  ●That can view all the personal information of students and student information.</p><p>  ● according to student

10、number query student information and practice.</p><p>  ●That can release notice.</p><p>  ●That can be the organization management, and management of the Department and class. For students to r

11、egister selection.</p><p>  2 the students client function</p><p>  ● go to register their personal information.</p><p>  ● after landing can modify their password and personal info

12、rmation.</p><p>  ●That the teacher information.</p><p>  ●That add, modify and manage their own practice information.</p><p>  Keywords:Student;internship;JSP+Servle;Mysql;Myeclipe

13、s;tomcat;MVC</p><p><b>  目 錄</b></p><p>  第一章 引 言4</p><p>  1.1開發(fā)背景及目的4</p><p>  1.2本文的目的與系統(tǒng)開發(fā)的意義5</p><p>  第二章 項(xiàng)目構(gòu)架分析與設(shè)計(jì)5</p>

14、<p>  2.1 物理構(gòu)架5</p><p>  2.2 邏輯構(gòu)架5</p><p>  2.3 開發(fā)工具6</p><p>  第三章 需求分析10</p><p>  3.1 系統(tǒng)功能需求分析10</p><p>  3.2 數(shù)據(jù)需求分析10</p><p>

15、;  3.3 技術(shù)解決方案需求分析11</p><p>  第四章 總體設(shè)計(jì)11</p><p>  4.1 數(shù)據(jù)庫manage設(shè)計(jì)11</p><p>  4.2 學(xué)生客戶端設(shè)計(jì)13</p><p>  4.3 老師客戶端設(shè)計(jì)13</p><p>  第五章 界面設(shè)計(jì)14</p>

16、<p>  5.1 用戶注冊(cè)14</p><p>  5.2 學(xué)生客戶端登錄界面14</p><p>  5.3 老師客戶端登錄界面18</p><p>  第六章 開發(fā)環(huán)境配置說明21</p><p>  6.1 開發(fā)環(huán)境配置21</p><p>  第七章 開發(fā)與測試22</p&

17、gt;<p>  7.1 開發(fā)流程22</p><p>  7.2 測試23</p><p>  第八章 所用技巧及難點(diǎn)分析23</p><p>  8.1 mvc技術(shù)23</p><p>  第九章 總結(jié)與展望31</p><p>  9.1 總結(jié)31</p>&l

18、t;p>  9.2 展望31</p><p><b>  致 謝31</b></p><p><b>  參考文獻(xiàn)32</b></p><p>  附錄:實(shí)現(xiàn)代碼32</p><p><b>  第一章 引 言</b></p><p>

19、  1.1開發(fā)背景及目的</p><p>  隨著高專教育的不斷發(fā)展,高等職業(yè)教育兩年制改革的推行,我院于2011年在09級(jí)學(xué)生中開始實(shí)行高職新”2+1”教育模式;兩年在校學(xué)習(xí),一年生產(chǎn)頂崗實(shí)習(xí)、實(shí)訓(xùn)。新“2+1”模式以兩年制高職教育為基礎(chǔ),通過頂崗實(shí)習(xí)專業(yè)培訓(xùn)或綜合培訓(xùn)使學(xué)生獲得職業(yè)崗位技能和自身綜合素質(zhì)的全面提升。部分本科學(xué)生最后一學(xué)期,因特殊原因不能在校完成畢業(yè)設(shè)計(jì),需在外頂崗實(shí)習(xí)。由于最后一年學(xué)生在外頂崗

20、實(shí)習(xí),學(xué)生的頂崗實(shí)習(xí)質(zhì)量直接影響著學(xué)生的成才與就業(yè)因而這一環(huán)節(jié)的管理與指導(dǎo)顯的尤為重要,一方面,我們要讓學(xué)生一年崗位實(shí)習(xí)滿意,能受益非淺,畢業(yè)后能獲得一個(gè)不錯(cuò)的職位,另一方面能讓老師對(duì)學(xué)生頂崗實(shí)習(xí)及就業(yè)指導(dǎo)高效快捷地開展進(jìn)行;再者就是讓學(xué)院的管理層及時(shí)了解學(xué)生的實(shí)習(xí)動(dòng)態(tài)及就業(yè)情況。</p><p>  1.2本文的目的與系統(tǒng)開發(fā)的意義</p><p><b>  1.2.1 意義

21、</b></p><p>  學(xué)生管理系統(tǒng)能提高老師管理學(xué)生的效率,增強(qiáng)教學(xué)的計(jì)劃性。原來,老師需要第三方軟件的支持來管理學(xué)生,如qq等通訊軟件。此系統(tǒng)針對(duì)性的設(shè)計(jì),及多種第三方軟件與一體,使老師更方便高效的管理學(xué)生。</p><p>  1.2.2 本文的目的</p><p>  本文的主要目的如下:</p><p>  介紹本

22、次畢業(yè)課題的目的和背景;</p><p>  介紹本次畢業(yè)設(shè)計(jì)的模塊;</p><p>  介紹所用技術(shù)和開發(fā)工具;</p><p>  闡述系統(tǒng)的工作流程;</p><p>  研究的基本內(nèi)容與擬解決的主要問題;</p><p>  第二章 項(xiàng)目構(gòu)架分析與設(shè)計(jì)</p><p><b&g

23、t;  2.1 物理構(gòu)架</b></p><p>  (1)網(wǎng)絡(luò)服務(wù)器操作系統(tǒng):Windows 7;</p><p>  (2)Web服務(wù)器:Tomcat 6.0;</p><p>  (3)后臺(tái)數(shù)據(jù)庫系統(tǒng):MySQL;</p><p>  (4)JSP運(yùn)行環(huán)境:J2SDK 1.6。</p><p>&l

24、t;b>  2.2 邏輯構(gòu)架</b></p><p>  2.2.1 JSP+JavaBean+Servlet框架介紹</p><p>  Servlet+JSP+JavaBean(MVC)模式適合開發(fā)復(fù)雜的web應(yīng)用,在這種模式下,servlet負(fù)責(zé)處理用戶請(qǐng)求,jsp負(fù)責(zé)數(shù)據(jù)顯示,javabean負(fù)責(zé)封裝數(shù)據(jù)。 Servlet+JSP、JavaBean模式程序各個(gè)

25、模塊之間層次清晰,web開發(fā)推薦采用此種模式。</p><p>  JSP+JavaBean+Servlet三層結(jié)構(gòu)的實(shí)質(zhì)是比jsp+javaBean兩層結(jié)構(gòu)多了一個(gè)Controller:Servlet來分發(fā)客戶端瀏覽器的請(qǐng)求。如果把起控制器作用的Servlet的作用理解為對(duì)客戶端的請(qǐng)求進(jìn)行預(yù)處理對(duì)理解Servlet將有很大的幫助。通過web.xml配置文件可以找到用戶請(qǐng)求和特定的Servlet的對(duì)應(yīng)關(guān)系,每個(gè)S

26、ervlet都有一個(gè)特定的Servlet對(duì)象與之對(duì)應(yīng),所以說處理用戶請(qǐng)求的就是一個(gè)繼承自HttpServlet的Servlet對(duì)象。</p><p>  當(dāng)然也可以把這些處理操作完全寫在jsp程序中,不過這樣的jsp頁面可能就有成百上千行,光看代碼就是一個(gè)頭疼的事情,更不用說修改了,這對(duì)以后的代碼維護(hù)增加很大的難度,而且可能同樣的代碼會(huì)在一個(gè)頁面當(dāng)中出現(xiàn)多次,這不但降低了代碼的可讀性也降低了代碼的重用性。由此可見

27、,通過JavaBean可以很好地實(shí)現(xiàn)邏輯的封裝、程序的易于維護(hù)等等。 如果使用Jsp開發(fā)程序,一個(gè)很好的習(xí)慣就是多使用JavaBean。其工作原理如圖2-1所示。</p><p><b>  JDBC</b></p><p>  http請(qǐng)求 forward</p><p><b>  設(shè)置Control</b&

28、gt;</p><p><b>  讀取</b></p><p>  圖 2-1 三層架構(gòu)的工作原理</p><p>  2.2.2 JSP簡介</p><p>  JSP(Java Server Pages)技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能

29、通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁所需要的功能。</p><p>  JSP技

30、術(shù)還有如下幾個(gè)優(yōu)點(diǎn):(1)一次編寫,到處運(yùn)行;</p><p>  (2)系統(tǒng)的多平臺(tái)支持;</p><p>  (3)強(qiáng)大的可伸縮性;</p><p>  (4)多樣化和功能強(qiáng)大的開發(fā)工具支持。</p><p>  2.2.3 JavaBean簡介</p><p>  JavaBean是sun微系統(tǒng)的一個(gè)面向?qū)ο?/p>

31、的編程接口,它可以讓開發(fā)展建可重用應(yīng)用程序或能在網(wǎng)絡(luò)中任何主流操作系統(tǒng)平臺(tái)上配置的程序塊,稱作組件。用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用java代碼創(chuàng)造的對(duì)象進(jìn)行打包,并且其他的開發(fā)者可以通過內(nèi)部的jsp頁面、servlet、其他JavaBean、applet程序或者應(yīng)用來使用這些對(duì)象。用戶可以認(rèn)為JavaBean提供了一種隨時(shí)隨地的復(fù)制和粘貼的功能,而不用關(guān)心任何改變。</p><

32、;p><b>  2.3 開發(fā)工具</b></p><p>  2.3.1 Myeclipse簡介</p><p>  MyEclipse,是一個(gè)十分優(yōu)秀的用于開發(fā)Java, J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開源產(chǎn)品的支持十分不錯(cuò)。 </p><p>  MyEclips

33、e企業(yè)級(jí)工作平臺(tái)(MyEclipse Enterprise Workbench ,簡稱MyEclipse)是對(duì)Eclipse IDE的擴(kuò)展,利用它可以在數(shù)據(jù)庫和J2EE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大地提高工作效率。它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML、 Struts、 JSF、 CSS、 Javascript、 SQL、 Hibernate。</p>

34、<p>  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)功能??梢哉fMyEclipse幾乎囊括了目前所有主流開源產(chǎn)品的專屬

35、eclipse開發(fā)工具。[1]</p><p>  根據(jù)官方最新消息,MyEclipse 2013已經(jīng)正式發(fā)布!MyEclipse 2013[2]支持HTML5、JQuery和主流的Javascript 庫。隨著MyEclipse 2013支持Html5,你可以添加音頻、視頻和API元素到你的項(xiàng)目,從而為移動(dòng)設(shè)備創(chuàng)建復(fù)雜的Web應(yīng)用程序。你甚至還可以通過HTML5 可視化設(shè)計(jì)器設(shè)計(jì)令人難以置信的用戶界面。同時(shí),隨

36、著MyEclipse 2013支持JQuery,你可以通過插件提升性能,并添加動(dòng)畫效果到設(shè)計(jì)中。</p><p>  MyEclipse 8.5 版本</p><p>  經(jīng)過了MyEclipse 8.5 M1和MyEclipse 8.5 M2兩個(gè)版本,MyEclipse Enterprise Workbench 8.5 for Eclipse 3.5.2終于在2010年3月28號(hào)正式發(fā)布

37、了!在官方網(wǎng)站上 MyEclipse 8.5 可以下載了,該版本集成了 Eclipse 3.5.2,提升了團(tuán)隊(duì)協(xié)作開發(fā)、開發(fā)周期管理以及 Spring 和 Hibernate 的更好支持。</p><p>  簡單而言,MyEclipse是Eclipse的插件,也是一款功能強(qiáng)大的J2EE集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯(cuò)。</p><p>  2.3.2 TOMCAT6.0簡

38、介</p><p>  Tomcat 6.0服務(wù)器是Apache組織開發(fā)的一種JSP引擎,本身具有WEB服務(wù)器的功能,可以作為獨(dú)立的WEB服務(wù)器來使用。Tomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能,而且它還是一個(gè)免費(fèi)開源的系統(tǒng),任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,

39、是開發(fā)和調(diào)試JSP 程序的首選。但是,在作為WEB服務(wù)器方面,Tomcat出來靜態(tài)HTML頁面時(shí)不如Apache迅速,也沒有Apache健壯,所以一般將Tomcat與Apache配合使用,讓Apache對(duì)網(wǎng)站的靜態(tài)頁面請(qǐng)求提供服務(wù),而Tomcat作為專用的JSP引擎,提供JSP解析,以得到更好的性能。Tomcat是Java程序,所以只要有JDK就可以使用,不需要考慮具體的操作系統(tǒng)平臺(tái)。</p><p>  2.3

40、.3 mysql簡介</p><p>  MySQL是一個(gè)開放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。</p><p>  與其他的大型數(shù)據(jù)庫例如Oracle、DB2、

41、SQL Server等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQLCluster的功能和效率都相對(duì)比較差)等,但是這絲毫也沒有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。</p><p>  目前Internet上流行的網(wǎng)站構(gòu)架方式(Linux+Apache+MySQL+PHP/Pe

42、rl/Python)和LNMP(Linux+Nginx+MySQL+php/perl/Python),即使用Linux作為操作系統(tǒng),Apache和Nginx作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫,PHP/Perl/Python作為服務(wù)器端腳本解釋器。由于這四個(gè)軟件都是免費(fèi)或開放源碼軟件(FLOSS),因此使用這種方式不用花一分錢(除開人工成本)就可以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)。</p><p>  2.3.4

43、 servlet簡介</p><p>  Servlet是一種服務(wù)器端的Java應(yīng)用程序,具有獨(dú)立于平臺(tái)和協(xié)議的特性,可以生成動(dòng)態(tài)的Web頁面。 它擔(dān)當(dāng)客戶請(qǐng)求(Web瀏覽器或其他HTTP客戶程序)與服務(wù)器響應(yīng)(HTTP服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序)的中間層。 Servlet是位于Web 服務(wù)器內(nèi)部的服務(wù)器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動(dòng)的Java應(yīng)用程序不同,Servlet由Web服務(wù)器進(jìn)行加載,該We

44、b服務(wù)器必須包含支持Servlet的Java虛擬機(jī)。</p><p>  servlet是在服務(wù)器上運(yùn)行的小程序。這個(gè)詞是在Java applet的環(huán)境中創(chuàng)造的,Java applet是一種當(dāng)作單獨(dú)文件跟網(wǎng)頁一起發(fā)送的小程序,它通常用于在服務(wù)器端運(yùn)行,結(jié)果得到為用戶進(jìn)行運(yùn)算或者根據(jù)用戶互作用定位圖形等服務(wù)。</p><p>  服務(wù)器上需要一些程序,常常是根據(jù)用戶輸入訪問數(shù)據(jù)庫的

45、程序。這些通常是使用公共網(wǎng)關(guān)接口(CGI(Common Gateway Interface))應(yīng)用程序完成的。然而,在服務(wù)器上運(yùn)行Java,這種程序可使用Java編程語言實(shí)現(xiàn)。在通信量大的服務(wù)器上,Java servlet的優(yōu)點(diǎn)在于它們的執(zhí)行速度更快于CGI程序。各個(gè)用戶請(qǐng)求被激活成單個(gè)程序中的一個(gè)線程,而無需創(chuàng)建單獨(dú)的進(jìn)程,這意味著服務(wù)器端處理請(qǐng)求的系統(tǒng)開銷將明顯降低。</p><p><b>  實(shí)

46、現(xiàn)過程</b></p><p>  最早支持Servlet技術(shù)的是JavaSoft的Java Web Server。此后,一些其它的基于Java的WebServer開始支持標(biāo)準(zhǔn)的ServletAPI。Servlet的主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動(dòng)態(tài)Web內(nèi)容。這個(gè)過程為:</p><p>  客戶端發(fā)送請(qǐng)求至服務(wù)器端;</p><p>  服

47、務(wù)器將請(qǐng)求信息發(fā)送至Servlet</p><p>  Servlet生成響應(yīng)內(nèi)容并將其傳給服務(wù)器。響應(yīng)內(nèi)容動(dòng)態(tài)生成,通常取決于客戶端的請(qǐng)求</p><p>  服務(wù)器將響應(yīng)返回給客戶端</p><p>  Servlet看起來像是通常的Java程序。Servlet導(dǎo)入特定的屬于Java ServletAPI的包。因?yàn)槭菍?duì)象字節(jié)碼,可動(dòng)態(tài)地從網(wǎng)絡(luò)加載,可以說Serv

48、let對(duì)Server就如同Applet對(duì)Client一樣,但是,由于Servlet運(yùn)行于Server中,它們并不需要一個(gè)圖形用戶界面。從這個(gè)角度講,Servlet也被稱為FacelessObject。</p><p>  一個(gè)servlet就是Java編程語言中的一個(gè)類,它被用來擴(kuò)展服務(wù)器的性能,服務(wù)器上駐留著可以通過“請(qǐng)求-響應(yīng)”編程模型來訪問的應(yīng)用程序。雖然servlet可以對(duì)任何類型的請(qǐng)求產(chǎn)生響應(yīng),但通常只

49、用來擴(kuò)展Web服務(wù)器的應(yīng)用程序。</p><p>  2.3.5 JDBC簡介</p><p>  JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)

50、庫應(yīng)用程序,同時(shí),JDBC也是個(gè)商標(biāo)名。</p><p>  JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為工具/數(shù)據(jù)庫開發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的API,據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠用純 Java API 編寫數(shù)據(jù)庫應(yīng)用程序

51、,同時(shí),JDBC也是個(gè)商標(biāo)名。</p><p>  有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語句就是一件很容易的事。換言之,有了JDBC API,就不必為訪問Sybase數(shù)據(jù)庫專門寫一個(gè)程序,為訪問Oracle數(shù)據(jù)庫又專門寫一個(gè)程序,或?yàn)樵L問Informix數(shù)據(jù)庫又編寫另一個(gè)程序等等,程序員只需用JDBC API寫一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫發(fā)送SQL調(diào)用。同時(shí),將Java語言和JDBC結(jié)合起來使程序員不必為不

52、同的平臺(tái)編寫不同的應(yīng)用程序,只須寫一遍程序就可以讓它在任何平臺(tái)上運(yùn)行,這也是Java語言“編寫一次,處處運(yùn)行”的優(yōu)勢(shì)。</p><p>  Java數(shù)據(jù)庫連接體系結(jié)構(gòu)是用于Java應(yīng)用程序連接數(shù)據(jù)庫的標(biāo)準(zhǔn)方法。JDBC對(duì)Java程序員而言是API,對(duì)實(shí)現(xiàn)與數(shù)據(jù)庫連接的服務(wù)提供商而言是接口模型。作為API,JDBC為程序開發(fā)提供標(biāo)準(zhǔn)的接口,并為數(shù)據(jù)庫廠商及第三方中間件廠商實(shí)現(xiàn)與數(shù)據(jù)庫的連接提供了標(biāo)準(zhǔn)方法。JDBC使

53、用已有的SQL標(biāo)準(zhǔn)并支持與其它數(shù)據(jù)庫連接標(biāo)準(zhǔn),如ODBC之間的橋接。JDBC實(shí)現(xiàn)了所有這些面向標(biāo)準(zhǔn)的目標(biāo)并且具有簡單、嚴(yán)格類型定義且高性能實(shí)現(xiàn)的接口。</p><p>  Java 具有堅(jiān)固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動(dòng)下載等特性,是編寫數(shù)據(jù)庫應(yīng)用程序的杰出語言。所需要的只是 Java應(yīng)用程序與各種不同數(shù)據(jù)庫之間進(jìn)行對(duì)話的方法。而 JDBC 正是作為此種用途的機(jī)制。</p><p&

54、gt;  JDBC 擴(kuò)展了 Java 的功能。例如,用 Java 和 JDBC API 可以發(fā)布含有 applet 的網(wǎng)頁,而該 applet 使用的信息可能來自遠(yuǎn)程數(shù)據(jù)庫。企業(yè)也可以用 JDBC 通過 Intranet 將所有職員連到一個(gè)或多個(gè)內(nèi)部數(shù)據(jù)庫中(即使這些職員所用的計(jì)算機(jī)有 Windows、 Macintosh 和UNIX 等各種不同的操作系統(tǒng))。隨著越來越多的程序員開始使用Java 編程語言,對(duì)從 Java 中便捷地訪問數(shù)

55、據(jù)庫的要求也在日益增加。</p><p>  MIS管理員們都喜歡 Java 和 JDBC 的結(jié)合,因?yàn)樗剐畔鞑プ兊萌菀缀徒?jīng)濟(jì)。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫,并能便捷地存取信息,即使這些信息是儲(chǔ)存在不同數(shù)據(jù)庫管理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人就都可得到最新版本的應(yīng)用程序。對(duì)于商務(wù)上的銷售信息服務(wù), Java 和

56、JDBC 可為外部客戶提供獲取信息更新的更好方法。用途</p><p>  簡單地說,JDBC 可做三件事:與數(shù)據(jù)庫建立連接、發(fā)送 操作數(shù)據(jù)庫的語句并處理結(jié)果。下列代碼段給出了以上三步的基本示例:</p><p>  Connection con = DriverManager.getConnection("jdbc:odbc:wombat","login&q

57、uot;,</p><p>  "password");</p><p>  Statement stmt = con.createStatement();</p><p>  ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");</p>

58、<p>  while (rs.next()) {</p><p>  int x = rs.getInt("a");</p><p>  String s = rs.getString("b");</p><p>  float f = rs.getFloat("c");</p>

59、<p><b>  }</b></p><p>  上述代碼對(duì)基于JDBC的數(shù)據(jù)庫訪問做了經(jīng)典的總結(jié),當(dāng)然,在本小節(jié)的后續(xù)部分會(huì)對(duì)它做詳盡的分析講解。</p><p>  2.3.6 Hibernate簡介</p><p>  Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java

60、程序員可以隨心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。</p><p>  Hibernate的核心接口一共有6個(gè),分別為:Session、SessionFactory、Trans

61、action、Query、Criteria和Configuration。這6個(gè)核心接口在任何開發(fā)中都會(huì)用到。通過這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對(duì)這6個(gè)核心接口分別加以介紹。</p><p><b>  Session接口</b></p><p>  Session接口負(fù)責(zé)執(zhí)行被持久化對(duì)象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫的交

62、流,包含了很多常見的SQL語句。)。但需要注意的是Session對(duì)象是非線程安全的。同時(shí),Hibernate的session不同于JSP應(yīng)用中的HttpSession。這里當(dāng)使用session這個(gè)術(shù)語時(shí),其實(shí)指的是Hibernate中的session,而以后會(huì)將HttpSession對(duì)象稱為用戶session。</p><p>  SessionFactory接口</p><p>  Se

63、ssionFactory接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session對(duì)象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級(jí)的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè)SessionFactory就夠,當(dāng)需要操作多個(gè)數(shù)據(jù)庫時(shí),可以為每個(gè)數(shù)據(jù)庫指定一個(gè)SessionFactory。</p><p>  Configuration類</p>&l

64、t;p>  Configuration類負(fù)責(zé)配置并啟動(dòng)Hibernate,創(chuàng)建SessionFactory對(duì)象。在Hibernate的啟動(dòng)的過程中,Configuration類的實(shí)例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory對(duì)象。[1]</p><p>  Transaction接口</p><p>  Transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選

65、的,開發(fā)人員也可以設(shè)計(jì)編寫自己的底層事務(wù)處理代碼</p><p>  Query和Criteria接口</p><p>  Query和Criteria接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用HQL語句或SQL語句兩種表達(dá)方式。</p><p><b>  第三章 需求分析</b></p><p>  3.1 系統(tǒng)功能需

66、求分析</p><p>  3.1.1 學(xué)生功能需求確定</p><p>  1.學(xué)生對(duì)自己的個(gè)人信息進(jìn)行維護(hù),以便老師管理。</p><p>  2.學(xué)生對(duì)自己的實(shí)習(xí)信息進(jìn)行分類整理統(tǒng)計(jì),讓老師能更清晰的了解自己的動(dòng)態(tài)。</p><p>  3.需要定期修改自己的密碼。</p><p>  4.能夠及時(shí)看到老師發(fā)布

67、的消息,以免耽誤或措施一些重要的通知。</p><p>  3.1.2 老師功能需求分析</p><p>  1.可以清晰的看到學(xué)生實(shí)習(xí)的動(dòng)態(tài)。何時(shí)在何地何公司進(jìn)行了實(shí)習(xí)。現(xiàn)在在何時(shí)何地實(shí)習(xí)。實(shí)習(xí)間學(xué)到了哪些知識(shí),有哪些感悟。</p><p>  2.管理組織機(jī)構(gòu)。添加系別和班級(jí)。學(xué)生注冊(cè)的時(shí)候,根據(jù)老師所進(jìn)行的操作,選擇自己的系別,班級(jí)進(jìn)行注冊(cè)。</p&g

68、t;<p>  3.老師需要發(fā)布自己的信息,有了變更后,可以方便的通知學(xué)生。無需一個(gè)一個(gè)通知。</p><p>  4.根據(jù)學(xué)號(hào)查詢某個(gè)學(xué)生的信息,動(dòng)態(tài)。</p><p>  3.2 數(shù)據(jù)需求分析</p><p>  3.2.1 數(shù)據(jù)庫需求分析</p><p>  數(shù)據(jù)庫的設(shè)計(jì)通常是以一個(gè)已經(jīng)存在的數(shù)據(jù)庫管理系統(tǒng)為基礎(chǔ)的,常

69、用的數(shù)據(jù)庫管理系統(tǒng)有Access、SQL Server、Oracle等。根據(jù)用戶的需求和系統(tǒng)分析,本系統(tǒng)采用mysql數(shù)據(jù)庫管理系統(tǒng)。在mysql數(shù)據(jù)庫管理系統(tǒng)中建立名稱為manage的數(shù)據(jù)庫。這個(gè)數(shù)據(jù)庫需要提供各種信息的保存、更新和查詢,這就要求數(shù)據(jù)庫結(jié)構(gòu)充分滿足各種信息的輸出和輸入。搜集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)處理的流程,組成一個(gè)詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計(jì)打下基礎(chǔ)。</p><p>  在manage的

70、數(shù)據(jù)庫中,根據(jù)項(xiàng)目的需求建立相應(yīng)的數(shù)據(jù)表,如下:</p><p>  1、class(班級(jí)表),包括數(shù)據(jù)項(xiàng):表id,班級(jí)名稱。</p><p>  2、company( 公司表),包括數(shù)據(jù)項(xiàng):表id,公司名,地址,負(fù)責(zé)人,聯(lián)系方式,,簡介,入職時(shí)間,辭職時(shí)間,職務(wù),工作描述,學(xué)生id;</p><p>  3、Document</p><p>

71、;  (文件表),包括數(shù)據(jù)項(xiàng):表id,上傳文件名,文件路徑,上傳者(學(xué)生),上傳者(老師);</p><p>  4、Department</p><p>  (系別表),包括數(shù)據(jù)項(xiàng):表id、系別;</p><p><b>  5、Message</b></p><p> ?。ㄐ畔⒈恚〝?shù)據(jù)項(xiàng):表id,標(biāo)題,內(nèi)容,上

72、傳者,發(fā)布時(shí)間等。</p><p><b>  6、Teacher</b></p><p>  (老師表),包括數(shù)據(jù)項(xiàng):表id,姓名,密碼,聯(lián)系方式,性別,年齡等;</p><p><b>  7、Student</b></p><p>  (學(xué)生表),包括數(shù)據(jù)項(xiàng):表id,姓名,密碼,學(xué)號(hào),性別,年

73、齡,聯(lián)系方式,班級(jí)id,系id。</p><p>  3.3 技術(shù)解決方案需求分析</p><p>  (1) WebServer – Tomcat 6.0;</p><p>  (2) DataBase – mysql;</p><p>  (3) 開發(fā)環(huán)境 – MyEclipse 8.5。</p><p><

74、;b>  第四章 總體設(shè)計(jì)</b></p><p>  4.1 數(shù)據(jù)庫manage設(shè)計(jì)</p><p>  本設(shè)計(jì)的數(shù)據(jù)庫名字為manage,此數(shù)據(jù)庫中總共有七張表分別為:class(班級(jí)表)、company( 公司表)、Document(文件表)、Department(系別表)、Message</p><p> ?。ㄐ畔⒈恚eacher(

75、老師表),Student(學(xué)生表)。</p><p>  4.1.1 class(班級(jí)表)的設(shè)計(jì)</p><p><b>  Class</b></p><p>  4.1.2 company( 公司表)的設(shè)計(jì)</p><p><b>  Company</b></p><p

76、>  4.1.3 Document(文件表)的設(shè)計(jì)</p><p><b>  Document</b></p><p>  4.1.4 Department(系別表)的設(shè)計(jì)</p><p>  Department</p><p>  4.1.5 Message(信息表)的設(shè)計(jì)</p><

77、;p><b>  Message</b></p><p>  4.1.6 Teacher(老師表)的設(shè)計(jì)</p><p><b>  Teacher</b></p><p>  4.1.7 Student(學(xué)生表)的設(shè)計(jì)</p><p><b>  Student</b>

78、</p><p>  4.2 學(xué)生客戶端設(shè)計(jì)</p><p><b>  4.2.1注冊(cè) </b></p><p>  打開系統(tǒng)首頁后,先進(jìn)行注冊(cè).注冊(cè)時(shí),學(xué)生需認(rèn)真填寫自己的用戶名,學(xué)號(hào),密碼.并選擇系別,班級(jí),性別.還需填寫自己的年齡和電話號(hào)碼.</p><p><b>  4.2.2學(xué)生登陸</b

79、></p><p>  學(xué)生根據(jù)自己注冊(cè)過的用戶名和密碼進(jìn)行填寫,并在身份欄中選擇老師.登陸后進(jìn)行相應(yīng)的操作.可以在密碼修改頁面進(jìn)行密碼修改.在個(gè)人信息欄更改自己的電話和年齡.在查看信息欄中,可以查看老師發(fā)布的信息.在我的實(shí)習(xí)欄中,可以對(duì)自己的實(shí)習(xí)信息進(jìn)行查看,修改和刪除.在添加實(shí)習(xí)欄中,添加自己的實(shí)習(xí)信息.</p><p>  4.3 老師客戶端設(shè)計(jì)</p><

80、;p><b>  4.3.1老師登陸</b></p><p>  老師根據(jù)自己的用戶名和密碼進(jìn)行登陸,并在身份欄中選擇老師.登陸后,可以在密碼修改欄中進(jìn)行密碼修改. 在個(gè)人信息欄更改自己的電話和年齡.在組織管理欄中,進(jìn)行系別和班級(jí)的添加,刪除.在消息管理欄中,對(duì)自己發(fā)布的消息進(jìn)行操作.如查看,修改和刪除.學(xué)生注冊(cè)時(shí),可根據(jù)老師在此編輯的系別,班級(jí)進(jìn)行選擇.在消息發(fā)布欄中,可以編輯自己要

81、發(fā)布給學(xué)生的內(nèi)容.其發(fā)布的內(nèi)容,將會(huì)加載在老師客戶端的消息管理欄和學(xué)生客戶端的查看信息欄中.每一個(gè)學(xué)生登陸后,都將會(huì)看到這兒發(fā)布的內(nèi)容.在頂崗實(shí)習(xí)欄中,老師可以查看所有學(xué)生的詳細(xì)個(gè)人信息和實(shí)習(xí)信息.并可根據(jù)學(xué)生的學(xué)號(hào)進(jìn)行針對(duì)性的查詢.</p><p><b>  第五章 界面設(shè)計(jì)</b></p><p><b>  5.1 用戶注冊(cè)</b>&

82、lt;/p><p><b>  5.1.1 界面</b></p><p>  當(dāng)進(jìn)入注冊(cè)界面,需學(xué)生需認(rèn)真填寫自己的用戶名,學(xué)號(hào),密碼.并選擇系別,班級(jí),性別.還需填寫自己的年齡和電話號(hào)碼.</p><p>  都輸入完成之后可以單擊“注冊(cè)”按鈕進(jìn)行注冊(cè).注冊(cè)完成時(shí),將會(huì)提示注冊(cè)完成請(qǐng)登錄.如果填寫有誤,可單擊“重置”按鈕進(jìn)行重新填寫.具體效果如

83、圖 5-1-1所示。</p><p>  5.1.2 流程圖</p><p>  5.2 學(xué)生客戶端登錄界面</p><p>  5.2.1 登陸界面</p><p>  5.2.2 密碼修改界面</p><p>  5.2.3我的實(shí)習(xí)界面</p><p>  5.2.4 查看信息界面<

84、;/p><p>  5.2.5 個(gè)人信息界面</p><p>  5.2.6 添加實(shí)習(xí)界面</p><p>  5.3 老師客戶端登錄界面</p><p>  5.3.1 登陸界面</p><p>  5.3.2 密碼修改界面</p><p>  5.3.3 個(gè)人信息界面</p>&l

85、t;p>  5.3.4 組織管理界面</p><p>  5.3.5 組織管理界面</p><p>  5.3.6 消息發(fā)布界面</p><p>  5.3.7 頂崗實(shí)習(xí)界面</p><p>  第六章 開發(fā)環(huán)境配置說明</p><p>  6.1 開發(fā)環(huán)境配置</p><p>  本

86、人在設(shè)計(jì)的過程中,需要搭建一個(gè)普通WEB開發(fā)環(huán)境,具體的環(huán)境配置如下:</p><p>  第一步:到官方網(wǎng)站下載JDK1.6、Tomcat6.0、mysql軟件,以及Navicat Premium管理組件等軟件。</p><p>  第二步:安裝jdk和配置環(huán)境變量和Tomcat6.0</p><p>  1.安裝J2SE的JDK1.6以后,需要配置一下環(huán)境變量,

87、在我的電腦->屬性->高級(jí)->環(huán)境變量->系統(tǒng)變量中添加以下環(huán)境變量:</p><p>  JAVA_HOME=D:\Java\jdk1.6.0_30</p><p>  classpath= .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;(.;一定不能少,因?yàn)樗硎井?dāng)前路徑)</p><p>  p

88、ath= %JAVA_HOME%\bin;</p><p><b>  如圖6-1所示:</b></p><p><b>  圖 6-1</b></p><p>  接著可以寫一個(gè)簡單的啟動(dòng)MS-DOS窗口來測試J2SDK是否已安裝成功,點(diǎn)擊->開始->運(yùn)行->輸入cmd->點(diǎn)擊確定。在DOS窗口中

89、輸入javac,按<Enter>鍵,系統(tǒng)會(huì)輸出javac命令的使用幫助信息,如下圖6-2所示。這說明JDK配置成功,否則需要檢查上面各步驟的配置是否正確。</p><p><b>  圖 6-2</b></p><p>  接著可以啟動(dòng)tomcat,在IE中訪問http://localhost:8080,如果看到tomcat的歡迎頁面的話說明安裝成功了。&

90、lt;/p><p>  第三步:安裝mysql</p><p>  在安裝mysql的過程后,要安裝Navicat for MySQL這個(gè)軟件,它相當(dāng)于數(shù)據(jù)庫的一個(gè)圖形界面工具,可以查看數(shù)據(jù)庫中的所有數(shù)據(jù)庫及表的信息。</p><p>  第三步:安裝MyEclips8.5</p><p>  雙擊MyEclips8.5可以進(jìn)行安裝,選擇適當(dāng)路徑

91、進(jìn)行安裝。等待安裝完成之后,啟動(dòng)MyEclipse之后必須設(shè)置的兩項(xiàng)是設(shè)置Java的JDK路徑和服務(wù)器(Tomcat6.0)路徑。當(dāng)啟動(dòng)完成之后,新建一個(gè)Web項(xiàng)目,命名為manageSystem。</p><p>  第七章 開發(fā)與測試</p><p><b>  7.1 開發(fā)流程</b></p><p>  本人在設(shè)計(jì)的過程中,采用循序

92、漸進(jìn)的方式進(jìn)行開發(fā),為使開發(fā)的過程是一個(gè)循序漸進(jìn)的過程,為此本人按如下步驟進(jìn)行開發(fā):</p><p> ?、?完成數(shù)據(jù)庫manage的設(shè)計(jì)。</p><p>  ⑵ 完成學(xué)生注冊(cè)模塊。</p><p> ?、?完成學(xué)生登錄模塊以及服務(wù)功能(用戶信息修改),從而驗(yàn)證用戶注冊(cè)模塊。</p><p>  (4)完成學(xué)生頂崗實(shí)習(xí)信息填寫模塊。<

93、/p><p>  (5)轉(zhuǎn)入老師功能設(shè)計(jì)。首先完成對(duì)學(xué)生管理模塊(增刪改查等功能),再完成對(duì)系別班級(jí)的管理模塊。</p><p>  (6) 完成對(duì)系別班級(jí)管理模塊,可以對(duì)上一步驟的驗(yàn)證。</p><p>  (7) 再轉(zhuǎn)入前臺(tái)設(shè)計(jì)。在前臺(tái)進(jìn)行注冊(cè)測試,看是否能成功加載老師管理的信息。</p><p>  (8) 再轉(zhuǎn)入后臺(tái)設(shè)計(jì),完成信息發(fā)布模塊

94、。</p><p>  (9) 完成后臺(tái)對(duì)學(xué)生實(shí)習(xí)信息管理模塊。</p><p>  (10)整個(gè)系統(tǒng)在功能模塊基本完成了之后,最后的任務(wù)就是給系統(tǒng)界面的美化,使所有的頁面變的美觀,以及對(duì)代碼的完善和最后綜合測試。</p><p><b>  7.2 測試</b></p><p>  由于開發(fā)的方式是采用的螺旋遞增的方

95、式進(jìn)行開發(fā)的,所以在測試的過程也同樣采用螺旋遞增的方式進(jìn)行測試即:—開發(fā)—測試—開發(fā)—測試。也就是在開發(fā)的過程之中伴隨著測試,測試的同時(shí)也是為下一個(gè)模塊的開發(fā)做鋪墊,這樣不但可以提高開發(fā)的效率,同時(shí)也可以在開發(fā)的過程中及時(shí)發(fā)現(xiàn)錯(cuò)誤,避免了那種瀑布型開發(fā)模式的不足,在整個(gè)系統(tǒng)開發(fā)完畢再去測試,給最后的測試帶來了很大的困難。</p><p>  在整個(gè)設(shè)計(jì)的過程中,本人感觸最深的就是測試的重要性還有前期準(zhǔn)備工作的重要

96、性。不重視測試,若是老想著把所有工作做完后再去測試,結(jié)果總是很不理想。因?yàn)槿绻患皶r(shí)進(jìn)行測試,當(dāng)把所有的代碼都寫完的時(shí)候才去測試,結(jié)果發(fā)現(xiàn)很多錯(cuò)誤出現(xiàn)的具體位置在哪,這增加了測試的難度。</p><p>  第八章 所用技巧及難點(diǎn)分析</p><p>  8.1 mvc技術(shù)</p><p>  MVC全名是Model View Controller,是模型(mo

97、del)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計(jì)典范,用于組織代碼用一種業(yè)務(wù)邏輯和數(shù)據(jù)顯示分離的方法,這個(gè)方法的假設(shè)前提是如果業(yè)務(wù)邏輯被聚集到一個(gè)部件里面,而且界面和用戶圍繞數(shù)據(jù)的交互能被改進(jìn)和個(gè)性化定制而不需要重新編寫業(yè)務(wù)邏輯MVC被獨(dú)特的發(fā)展起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶界面的結(jié)構(gòu)中。</p><p>  MVC開始是存在于Desktop程序中的,M

98、是指數(shù)據(jù)模型,V是指用戶界面,C則是控制器,使用MVC的目的是將M和V的實(shí)現(xiàn)代碼分離,從而使同一個(gè)程序可以使用不同的表現(xiàn)形式。比如一批統(tǒng)計(jì)數(shù)據(jù)可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應(yīng)該同步更新。</p><p>  模型-視圖-控制器(MVC)是Xerox PARC在二十世紀(jì)八十年代為編程語言Smalltalk-80發(fā)明的一種軟件設(shè)計(jì)模式,已被廣泛使用。后來被推薦為Orac

99、le旗下Sun公司Java EE平臺(tái)的設(shè)計(jì)模式,并且受到越來越多的使用ColdFusion和PHP的開發(fā)者的歡迎。模型-視圖-控制器模式是一個(gè)有用的工具箱,它有很多好處,但也有一些缺點(diǎn)。</p><p>  MVC是一個(gè)框架模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。最典型的MVC就是JSP + servlet + javab

100、ean的模式。</p><p><b>  8.1.1視圖</b></p><p>  視圖是用戶看到并與之交互的界面。對(duì)老式的Web應(yīng)用程序來說,視圖就是由HTML元素組成的界面,在新式的Web應(yīng)用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術(shù)已層出不窮,它們包括Adobe Flash和像XHTML,XML/XSL,WML等一些標(biāo)識(shí)語言和Web ser

101、vices.</p><p>  MVC好處是它能為應(yīng)用程序處理很多不同的視圖。在視圖中其實(shí)沒有真正的處理發(fā)生,不管這些數(shù)據(jù)是聯(lián)機(jī)存儲(chǔ)的還是一個(gè)雇員列表,作為視圖來講,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。</p><p><b>  8.1.2 模型</b></p><p>  模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個(gè)部件中,模型擁有

102、最多的處理任務(wù)。例如它可能用像EJBs和ColdFusion Components這樣的構(gòu)件對(duì)象來處理數(shù)據(jù)庫,被模型返回的數(shù)據(jù)是中立的,就是說模型與數(shù)據(jù)格式無關(guān),這樣一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù),由于應(yīng)用于模型的代碼只需寫一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性。</p><p><b>  8.1.3控制器</b></p><p>  控制器接受用戶的輸入并

103、調(diào)用模型和視圖去完成用戶的需求,所以當(dāng)單擊Web頁面中的超鏈接和發(fā)送HTML表單時(shí),控制器本身不輸出任何東西和做任何處理。它只是接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后再確定用哪個(gè)視圖來顯示返回的數(shù)據(jù)。</p><p><b>  8.1.4區(qū)別</b></p><p>  框架模式和設(shè)計(jì)模式的區(qū)別</p><p>  有很多程序員往往把

104、框架模式和設(shè)計(jì)模式混淆,認(rèn)為MVC是一種設(shè)計(jì)模式。實(shí)際上它們完全是不同的概念。[7]</p><p>  框架、設(shè)計(jì)模式這兩個(gè)概念總?cè)菀妆换煜鋵?shí)它們之間還是有區(qū)別的??蚣芡ǔJ谴a重用,而設(shè)計(jì)模式是設(shè)計(jì)重用,架構(gòu)則介于兩者之間,部分代碼重用,部分設(shè)計(jì)重用,有時(shí)分析也可重用。在軟件生產(chǎn)中有三種級(jí)別的重用:內(nèi)部重用,即在同一應(yīng)用中能公共使用的抽象塊;代碼重用,即將通用模塊組合成庫或工具集,以便在多個(gè)應(yīng)用和領(lǐng)域都能

105、使用;應(yīng)用框架的重用,即為專用領(lǐng)域提供通用的或現(xiàn)成的基礎(chǔ)結(jié)構(gòu),以獲得最高級(jí)別的重用性。</p><p>  框架與設(shè)計(jì)模式雖然相似,但卻有著根本的不同。設(shè)計(jì)模式是對(duì)在某種環(huán)境中反復(fù)出現(xiàn)的問題以及解決該問題的方案的描述,它比框架更抽象;框架可以用代碼表示,也能直接執(zhí)行或復(fù)用,而對(duì)模式而言只有實(shí)例才能用代碼表示;設(shè)計(jì)模式是比框架更小的元素,一個(gè)框架中往往含有一個(gè)或多個(gè)設(shè)計(jì)模式,框架總是針對(duì)某一特定應(yīng)用領(lǐng)域,但同一模式

106、卻可適用于各種應(yīng)用??梢哉f,框架是軟件,而設(shè)計(jì)模式是軟件的知識(shí)。</p><p>  框架模式有哪些?MVC、MTV、MVP、CBD、ORM等等;</p><p>  框架有哪些?C++語言的QT、MFC、gtk,Java語言的SSH,php語言的 smarty(MVC模式),python語言的django(MTV模式)等等</p><p>  設(shè)計(jì)模式有哪些?工廠

107、模式、適配器模式、策略模式等等</p><p>  簡而言之:框架模式是大智慧,用來對(duì)軟件設(shè)計(jì)進(jìn)行分工;設(shè)計(jì)模式是小技巧,對(duì)具體問題提出解決方案,以提高代碼復(fù)用率、降低耦合度。</p><p>  8.1.5常見MVC</p><p>  8.1.5.1 Struts</p><p>  Struts是Apache軟件基金下Jakarta項(xiàng)

108、目的一部分。Struts框架的主要架構(gòu)設(shè)計(jì)和開發(fā)者是Craig R.McClanahan。Struts 是Java Web MVC框架中不爭的王者。經(jīng)過長達(dá)五年的發(fā)展,Struts已經(jīng)逐漸成長為一個(gè)穩(wěn)定、成熟的框架,并且占有了MVC框架中最大的市場份額。但是Struts某些技術(shù)特性上已經(jīng)落后于新興的MVC框架。面對(duì)Spring MVC、Webwork2這些設(shè)計(jì)更精密,擴(kuò)展性更強(qiáng)的框架,Struts受到了前所未有的挑戰(zhàn)。但站在產(chǎn)品開發(fā)的角

109、度而言,Struts仍然是最穩(wěn)妥的選擇。</p><p>  Struts有一組相互協(xié)作的類(組件)、Servlet以及jsp tag lib組成。基于struts構(gòu)架的web應(yīng)用程序基本上符合JSP Model2的設(shè)計(jì)標(biāo)準(zhǔn),可以說是MVC設(shè)計(jì)模式的一種變化類型。根據(jù)上面對(duì)framework的描述,很容易理解為什么說Struts是一個(gè)web framework,而不僅僅是一些標(biāo)記庫的組合。但 Struts 也包含

110、了豐富的標(biāo)記庫和獨(dú)立于該框架工作的實(shí)用程序類。Struts有其自己的控制器(Controller),同時(shí)整合了其他的一些技術(shù)去實(shí)現(xiàn)模型層(Model)和視圖層(View)。在模型層,Struts可以很容易的與數(shù)據(jù)訪問技術(shù)相結(jié)合,包括EJB,JDBC和Object Relation Bridge。在視圖層,Struts能夠與JSP, Velocity Templates,XSL等等這些表示層組件相結(jié)合。[8]</p><

111、;p>  8.1.5 .2 Spring</p><p>  Spring實(shí)際上是Expert One-on-One J2EE Design and Development 一書中所闡述的設(shè)計(jì)思想的具體實(shí)現(xiàn)。在One-on-One 一書中,Rod Johnson倡導(dǎo)J2EE實(shí)用主義的設(shè)計(jì)思想,并隨書提供了一個(gè)初步的開發(fā)框架實(shí)現(xiàn)(interface21 開發(fā)包)。而Spring 正是這一思想的更全面和具體的

112、體現(xiàn)。Rod Johnson 在interface21 開發(fā)包的基礎(chǔ)之上,進(jìn)行了進(jìn)一步的改造和擴(kuò)充,使其發(fā)展為一個(gè)更加開放、清晰、全面、高效的開發(fā)框架。</p><p>  Spring是一個(gè)開源框架,由Rod Johnson創(chuàng)建并且在他的著作《J2EE設(shè)計(jì)開發(fā)編程指南》里進(jìn)行了描述。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使使用基本的JavaBeans來完成以前只可能由EJB完成的事情變得可能了。

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論