選排課系統(tǒng)畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  畢業(yè)設(shè)計(jì)(論文)</b></p><p>  基于Java EE的湘南學(xué)院體育選向課程</p><p><b>  網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)</b></p><p>  姓 名 </p><p>  系 別 、專 業(yè)

2、計(jì)算機(jī)科學(xué)系、計(jì)算機(jī)</p><p><b>  科學(xué)與技術(shù)(師范)</b></p><p>  導(dǎo)師姓名、職稱 </p><p>  完 成 時(shí) 間 2012年4月28日 </p><p><b>  目 錄</b></p><p

3、><b>  摘 要I</b></p><p>  AbstractII</p><p><b>  1 概述1</b></p><p>  1.1 選向課程平臺(tái)介紹1</p><p>  1.2開(kāi)發(fā)背景及意義1</p><p>  1.3 國(guó)內(nèi)外研究動(dòng)態(tài)

4、2</p><p>  1.4 論文的組織結(jié)構(gòu)2</p><p>  2系統(tǒng)開(kāi)發(fā)環(huán)境及相關(guān)技術(shù)理論介紹3</p><p><b>  2.1開(kāi)發(fā)環(huán)境3</b></p><p>  2.2 相關(guān)技術(shù)簡(jiǎn)介3</p><p><b>  3 系統(tǒng)分析11</b></

5、p><p>  3.1系統(tǒng)功能需求分析11</p><p>  3.2 可行性分析11</p><p>  4 系統(tǒng)總體設(shè)計(jì)13</p><p>  4.1 系統(tǒng)功能總體框架13</p><p>  4.2 系統(tǒng)各功能模塊設(shè)計(jì)14</p><p>  5 系統(tǒng)詳細(xì)設(shè)計(jì)17</p&g

6、t;<p>  5.1系統(tǒng)設(shè)計(jì)的原則和目標(biāo)17</p><p>  5.2 系統(tǒng)體系結(jié)構(gòu)的設(shè)計(jì)17</p><p>  5.3 數(shù)據(jù)庫(kù)設(shè)計(jì)17</p><p>  6 系統(tǒng)的實(shí)現(xiàn)23</p><p>  6.1 系統(tǒng)實(shí)現(xiàn)的流程圖23</p><p>  6.2 系統(tǒng)具體功能模塊的實(shí)現(xiàn)24<

7、;/p><p>  7 系統(tǒng)的測(cè)試32</p><p>  7.1軟件測(cè)試目的32</p><p>  7.2軟件測(cè)試方法32</p><p>  7.3測(cè)試計(jì)劃32</p><p>  7.4軟件需求測(cè)試結(jié)論37</p><p>  7.5系統(tǒng)維護(hù)37</p><p

8、><b>  結(jié) 論38</b></p><p><b>  參考文獻(xiàn)39</b></p><p><b>  致 謝40</b></p><p><b>  摘 要</b></p><p>  湘南學(xué)院體育選向課程平臺(tái)是針對(duì)在校學(xué)生

9、和教師使用的一個(gè)選排課系統(tǒng),其開(kāi)發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面。本系統(tǒng)采用B/S架構(gòu),構(gòu)建于JAVA EE平臺(tái)之上,整個(gè)系統(tǒng)應(yīng)用了MVC三層架構(gòu)模式。</p><p>  本系統(tǒng)主要用戶是學(xué)生、教師、系教務(wù)管理員和系統(tǒng)管理員。系統(tǒng)管理員管理系統(tǒng)的基本信息,學(xué)生和教師通過(guò)系統(tǒng)完成不同的工作。系統(tǒng)需要實(shí)現(xiàn)的功能主要有4個(gè),系統(tǒng)管理員對(duì)整個(gè)系統(tǒng)基本信息的維護(hù),教務(wù)人員對(duì)課程的編排,教師對(duì)

10、應(yīng)的查課功能,以及學(xué)生對(duì)應(yīng)的選課功能。</p><p>  論文首先對(duì)系統(tǒng)進(jìn)行大致的說(shuō)明,再介紹了設(shè)計(jì)開(kāi)發(fā)過(guò)程中用到的技術(shù),其次是系統(tǒng)需求分析,系統(tǒng)總體設(shè)計(jì),系統(tǒng)詳細(xì)設(shè)計(jì),然后具體講解了系統(tǒng)的實(shí)現(xiàn)與測(cè)試,最后對(duì)本次論文做了一個(gè)小結(jié)。 關(guān)鍵字:選排課系統(tǒng);數(shù)據(jù)庫(kù);選向課程</p><p><b>  Abstract</b></p><p>

11、;  The PE Elective and Arrangement Course Platform is aimed to support the students and teachers of XiangNan University for PE course arrangement and election. Its development includes database construction and applicati

12、on program production. This platform which bases on JAVA EE and B/S construction, and platform use MVC three layers framework pattern.</p><p>  Its majority users are students, teach

13、ers, educational managers and platform managers. The platform managers manage the essential information of the system, and the stu

14、dents and teachers finish different work with this system. Through this platform there are 4 tasks that can be finished: platform manager can preserve the information of the w

15、hole system, educational managers can arrange the curriculum, the teachers can look for the courses and the students can select courses.</p><p>  This article take a brief introduction of the system at first

16、, then introduction the technology used during designing and building this system, in the next, analysis the system demand, overall design and detailing structure, then explain the system’s enforce and test in details. I

17、n the end, this article takes a conclusion of this system design. </p><p>  Key words: course selection system, selective curriculum, database </p><p><b>  1 概述 </b></p><p

18、>  1.1 選向課程平臺(tái)介紹</p><p>  湘南學(xué)院體育選向課程平臺(tái)是一個(gè)選排課系統(tǒng),選排課系統(tǒng)作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)課程信息進(jìn)行管理,有著手工管理所無(wú)法比擬的優(yōu)點(diǎn)[1]。例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高人事勞資管理的效率,也是各大院校科學(xué)化、正規(guī)化管理的重要條件。湘南學(xué)院體育選向課程平臺(tái)主要用戶是學(xué)生、教師、系教務(wù)管理員

19、和系統(tǒng)管理員,教務(wù)人員管理系統(tǒng)的基本信息(如課程、老師、學(xué)生等),學(xué)生和教師通過(guò)系統(tǒng)完成不同的工作。系統(tǒng)需要實(shí)現(xiàn)的功能總體來(lái)說(shuō)共有4個(gè),分別如下:</p><p>  系統(tǒng)管理員可以維護(hù)整個(gè)系統(tǒng)的基本信息;</p><p>  教務(wù)人員可以對(duì)課程進(jìn)行編排管理;</p><p><b>  教師可以查看課表;</b></p><

20、;p><b>  學(xué)生可以選課;</b></p><p>  1.2開(kāi)發(fā)背景及意義</p><p><b>  1.2.1背景</b></p><p>  目前湘南學(xué)院體育選向課程采用的方式是教師通過(guò)表格手工登記學(xué)生選課信息,但是當(dāng)前湘南學(xué)院學(xué)生人數(shù)已經(jīng)到達(dá)2萬(wàn)。如果采取傳統(tǒng)的手工方式,就需要教務(wù)管理人員和教師花費(fèi)大

21、量的時(shí)間和精力對(duì)選課信息進(jìn)行統(tǒng)計(jì)整理,然后根據(jù)統(tǒng)計(jì)信息進(jìn)行手動(dòng)編排課程,這種方式不利于教師及教務(wù)管理人員的管理。因此教務(wù)處委托謝老師開(kāi)發(fā)一個(gè)體育選向課程網(wǎng)站,謝老師把這個(gè)當(dāng)作一個(gè)畢業(yè)設(shè)計(jì)課題,我在謝老師的指導(dǎo)下開(kāi)發(fā)了這個(gè)系統(tǒng)。</p><p><b>  1.2.1意義</b></p><p>  解決了傳統(tǒng)方式所造成的教務(wù)管理人員工作的浪費(fèi),大大提高了教務(wù)管理員的工

22、作效率。</p><p>  1.3 國(guó)內(nèi)外研究動(dòng)態(tài)</p><p>  隨著Internet的逐步發(fā)展,網(wǎng)絡(luò)不僅僅是科研部門(mén)學(xué)術(shù)交流的平臺(tái),在其他的方面上也得到了很大的發(fā)展,尤其是在校園網(wǎng)的分支教務(wù)管理上[2]。同時(shí)在教務(wù)管理的主要分支選課排課系統(tǒng)的應(yīng)用上得到了較大的發(fā)展。</p><p>  國(guó)外針對(duì)此問(wèn)題展開(kāi)的研究較早。1963年C C Gotlieb 在他的

23、文章《The Construction of Class-Teacher Time-Tables》中提出了課表編排的數(shù)學(xué)模型。這篇文章引起了人們對(duì)于選排課問(wèn)題的重視。</p><p>  而國(guó)內(nèi)對(duì)選排課問(wèn)題的研究較晚。1984年,清華大學(xué)在《清華大學(xué)學(xué)報(bào)》上發(fā)表了林漳希和林堯瑞在該課題上的實(shí)驗(yàn)性研究成果《人工智能技術(shù)在課表編排中的應(yīng)用》,標(biāo)志著我國(guó)開(kāi)始了對(duì)選排課問(wèn)題的研究。</p><p>

24、;  目前,我國(guó)高校都實(shí)行了學(xué)分制,它的核心是允許學(xué)生自由選課,即把學(xué)習(xí)的自主權(quán)交給學(xué)生。在這里,學(xué)生選課時(shí)的制約因素比較復(fù)雜,工作量也很大,而且往往需要在較短的時(shí)間內(nèi)完成。運(yùn)用計(jì)算機(jī)輔助選課,即能實(shí)時(shí)地對(duì)大量選課數(shù)據(jù)進(jìn)行檢驗(yàn)和統(tǒng)計(jì),十分方便地輸出選課結(jié)果,同時(shí)也避免了人工處理時(shí)容易產(chǎn)生的錯(cuò)誤。在高等學(xué)校的教務(wù)管理工作中,課程表的編排是一項(xiàng)十分復(fù)雜、棘手的工作。在排課過(guò)程中,除了滿足大量的制約條件以外,還必須解決許多沖突與矛盾[3]。利

25、用計(jì)算機(jī)輔助進(jìn)行課表編排工作,既提高了排課工作的科學(xué)性,又可大大減輕管理人員的工作強(qiáng)度,提高工作效率,從而使學(xué)校教務(wù)管理現(xiàn)代化邁上了一個(gè)新臺(tái)階。</p><p>  1.4 論文的組織結(jié)構(gòu)</p><p>  第一章是緒論,簡(jiǎn)述設(shè)計(jì)本系統(tǒng)的初衷以及背景。</p><p>  第二章是開(kāi)發(fā)技術(shù)簡(jiǎn)介,簡(jiǎn)述本系統(tǒng)開(kāi)發(fā)和設(shè)計(jì)過(guò)程中用的到的主要技術(shù)。</p>

26、<p>  第三章是系統(tǒng)需求分析,簡(jiǎn)述自己分析系統(tǒng),對(duì)項(xiàng)目進(jìn)行需求分析。</p><p>  第四章是系統(tǒng)的概要設(shè)計(jì),簡(jiǎn)述系統(tǒng)的概要設(shè)計(jì)的。</p><p>  第五章是詳細(xì)設(shè)計(jì),簡(jiǎn)述系統(tǒng)設(shè)計(jì)的詳細(xì)過(guò)程。</p><p>  第六章是系統(tǒng)的實(shí)現(xiàn),簡(jiǎn)述系統(tǒng)是如何實(shí)現(xiàn)的。</p><p>  第七章是系統(tǒng)的測(cè)試,對(duì)系統(tǒng)進(jìn)行必要的測(cè)試。&

27、lt;/p><p>  最后是結(jié)論,總結(jié)了本論文的主要工作和系統(tǒng)特色,以及本次論文設(shè)計(jì)的心得。</p><p>  2系統(tǒng)開(kāi)發(fā)環(huán)境及相關(guān)技術(shù)理論介紹</p><p><b>  2.1開(kāi)發(fā)環(huán)境</b></p><p>  2.1.1 硬件環(huán)境</p><p>  CUP:至少PentiumIII800

28、以上</p><p>  內(nèi)存:至少128M以上</p><p>  硬盤(pán):至少20G硬盤(pán)空間以上</p><p><b>  顯示器:15顯示器</b></p><p>  2.1.2 軟件環(huán)境</p><p>  運(yùn)行環(huán)境: Windows 7</p><p>  開(kāi)發(fā)

29、工具: MyEclipse8.6</p><p>  數(shù)據(jù)庫(kù): MySQL5.5</p><p>  Web服務(wù)器: Tomcat6.0.32</p><p>  瀏覽器: IE 8.0</p><p>  2.2 相關(guān)技術(shù)簡(jiǎn)介</p><p>  2.2.1JAVA EE概述</p><p&g

30、t;  J2EE是美國(guó)Sun公司推出的一種全新概念的應(yīng)用程序模型,是一套全然不同于傳統(tǒng)應(yīng)用開(kāi)發(fā)的技術(shù)架構(gòu),包含許多組件,主要可簡(jiǎn)化且規(guī)范應(yīng)用系統(tǒng)的開(kāi)發(fā)與部署,進(jìn)而提高可移植性、安全與再用價(jià)值。與傳統(tǒng)的互聯(lián)網(wǎng)應(yīng)用程序模型相比有著不可比擬的優(yōu)勢(shì)。</p><p>  目前,Java 2平臺(tái)有3個(gè)版本,它們是適用于小型設(shè)備和智能卡的Java 2平臺(tái)Micro版(Java 2 Platform Micro Edition

31、,J2ME)、適用于桌面系統(tǒng)的Java 2平臺(tái)標(biāo)準(zhǔn)版(Java 2 Platform Standard Edition,J2SE)、適用于創(chuàng)建服務(wù)器應(yīng)用程序和服務(wù)的Java 2平臺(tái)企業(yè)版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一種利用Java 2平臺(tái)來(lái)簡(jiǎn)化企業(yè)解決方案的開(kāi)發(fā)、部署和管理相關(guān)的復(fù)雜問(wèn)題的體系結(jié)構(gòu)。Java語(yǔ)言相對(duì)于windows變成語(yǔ)言來(lái)說(shuō),最大優(yōu)勢(shì)在java語(yǔ)言是跨平

32、臺(tái)的,而widows的編程通常都是針對(duì)windows系統(tǒng)來(lái)開(kāi)發(fā),可移植性遠(yuǎn)不及Java。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺(tái)或Java 2平臺(tái)的標(biāo)準(zhǔn)版,J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),例如"編寫(xiě)一次、隨處運(yùn)行"的特性、方便存取數(shù)據(jù)庫(kù)的JDBC(Java DataBase Connectivity)應(yīng)用程序接口(API, Application Program Interface)技術(shù)以及能夠在In</p

33、><p>  2.2.2 Struts 2框架與MVC簡(jiǎn)介</p><p>  Struts 2是Struts的下一代產(chǎn)品,是在 struts 和WebWork的技術(shù)基礎(chǔ)上進(jìn)行了合并的全新的Struts 2框架。其全新的Struts 2的體系結(jié)構(gòu)與Struts 1的體系結(jié)構(gòu)的差別巨大。Struts 2以WebWork為核心,采用攔截器的機(jī)制來(lái)處理用戶的請(qǐng)求,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯控制器能夠與

34、Servlet API完全脫離開(kāi),所以Struts 2可以理解為WebWork的更新產(chǎn)品。雖然從Struts 1到Struts 2有著太大的變化,但是相對(duì)于WebWork,Struts 2只有很小的變化,如圖2-1所示:</p><p>  圖2-1 Struts的工作原理圖</p><p>  MVC模式英文即Model-View-Controller,即把一個(gè)應(yīng)用的輸入、處理、輸出流程

35、按照Model、View、Controller的方式進(jìn)行分離,這樣一個(gè)應(yīng)用被分成三個(gè)層——模型層、視圖層、控制層。</p><p>  視圖(View)代表用戶交互界面,對(duì)于Web應(yīng)用來(lái)說(shuō),可以概括為HTML界面,但有可能為XHTML、XML和Applet。隨著應(yīng)用的復(fù)雜性和規(guī)模性,界面的處理也變得具有挑戰(zhàn)性。</p><p>  模型(Model):就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的

36、制定。業(yè)務(wù)流程的處理過(guò)程對(duì)其它層來(lái)說(shuō)是黑箱操作,模型接受視圖請(qǐng)求的數(shù)據(jù),并返回最終的處理結(jié)果。業(yè)務(wù)模型的設(shè)計(jì)可以說(shuō)是MVC最主要的核心。</p><p>  控制(Controller)可以理解為從用戶接收請(qǐng)求, 將模型與視圖匹配在一起,共同完成用戶的請(qǐng)求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個(gè)分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請(qǐng)求??刂茖硬⒉蛔鋈魏蔚臄?shù)據(jù)處理。<

37、/p><p>  模型、視圖與控制器的分離,使得一個(gè)模型可以具有多個(gè)顯示視圖。如果用戶通過(guò)某個(gè)視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都應(yīng)反映到 這些變化。因此,無(wú)論何時(shí)發(fā)生了何種數(shù)據(jù)變化,控制器都會(huì)將變化通知所有的視圖,導(dǎo)致顯示的更新。這實(shí)際上是一種模型的變化-傳播機(jī)制[5]。如圖2-2所示:</p><p>  圖2-2 MVC的原理圖</p><p&

38、gt;  2.2.3 Hibernate與ORM簡(jiǎn)介</p><p>  對(duì)象-關(guān)系映射(Object/Relation Mapping,簡(jiǎn)稱ORM),是隨著面向?qū)ο蟮能浖_(kāi)發(fā)方法發(fā) 展而產(chǎn)生的。面向?qū)ο蟮拈_(kāi)發(fā)方法是當(dāng)今企業(yè)級(jí)應(yīng)用開(kāi)發(fā)環(huán)境中的主流開(kāi)發(fā)方法,關(guān)系數(shù)據(jù)庫(kù)是企業(yè)級(jí)應(yīng)用環(huán)境中永久存放數(shù)據(jù)的主流數(shù)據(jù)存儲(chǔ)系統(tǒng)。對(duì)象和關(guān)系數(shù) 據(jù)是業(yè)務(wù)實(shí)體的兩種表現(xiàn)形式,業(yè)務(wù)實(shí)體在內(nèi)存中表現(xiàn)為對(duì)象,在數(shù)據(jù)庫(kù)中表現(xiàn)為關(guān)系數(shù)據(jù)。內(nèi)存

39、中的對(duì)象之間存在關(guān)聯(lián)和繼承關(guān)系,而在數(shù)據(jù)庫(kù)中,關(guān)系數(shù)據(jù)無(wú)法 直接表達(dá)多對(duì)多關(guān)聯(lián)和繼承關(guān)系。因此,對(duì)象-關(guān)系映射(ORM)系統(tǒng)一般以中間件的形式存在,主要實(shí)現(xiàn)程序?qū)ο蟮疥P(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)的映射。</p><p>  Hibernate是輕量級(jí)Java EE應(yīng)用的持久層解決方案,Hibernate不僅管理Java類(lèi)到數(shù)據(jù)庫(kù)表的映射(包括Java數(shù)據(jù)類(lèi)型到SQL數(shù)據(jù)類(lèi)型的映射),還是提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅度

40、縮短使用JDBC處理數(shù)據(jù)持久化的時(shí)間。</p><p>  目前的主流數(shù)據(jù)庫(kù)依然是關(guān)系型數(shù)據(jù)庫(kù),而Java語(yǔ)言則是面向?qū)ο蟮木幊陶Z(yǔ)言[6],當(dāng)把二者結(jié)合在一起使用時(shí)相當(dāng)麻煩,而Hibernate則減少了這個(gè)問(wèn)題的困擾,它完成對(duì)象模型和基本SQL的關(guān)系模型的映射關(guān)系。</p><p>  因?yàn)橛蠬ibernate的支持,使得Java EE應(yīng)用的OOA(面向?qū)ο蠓治?、OOD(面向?qū)ο笤O(shè)計(jì))、

41、OOP(面向?qū)ο缶幊蹋┤齻€(gè)過(guò)程一脈相承,成為一個(gè)整體。</p><p>  由于Hibernate是一個(gè)和JDBC密切關(guān)聯(lián)的框架,所以Hibernate的兼容性和JDBC驅(qū)動(dòng),和數(shù)據(jù)庫(kù)都有一定的關(guān)系,但是和使用它的JAVA程序,和App Server沒(méi)有任何關(guān)系,也不存在兼容性問(wèn)題。如圖2-3所示:</p><p>  圖2-3 Hibernate體系總覽圖</p><

42、p>  由于Hibernate比較復(fù)雜,提供了好幾種運(yùn)行方式。在輕型體系中,應(yīng)用程序自己提JDBC連接,并自行管理事務(wù)。這種方式使用了Hibernate API的一個(gè)最小子集。如圖2-4所示:</p><p>  圖2-4 Hibernate輕型應(yīng)用體系</p><p>  在前面解決體系中,對(duì)于應(yīng)用程序來(lái)說(shuō),所有的底層JDBC/JTA API都被抽象了,Hibernate會(huì)替你照管

43、好所有的細(xì)節(jié)。本文中所用到的就是這種體系。如圖2-5所示:</p><p>  圖2-5 Hibernate全面應(yīng)用解決體系</p><p>  以下是圖中一些對(duì)象的定義:</p><p>  1)SessionFactory</p><p>  對(duì)屬于單一數(shù)據(jù)庫(kù)的編譯過(guò)的映射文件的一個(gè)線程安全的,不可變的緩存快照。它是Session的工廠,

44、是ConnectionProvider的客戶。可能持有一個(gè)可選的二級(jí)數(shù)據(jù)緩存,可以在進(jìn)程級(jí)別后集群級(jí)別保存可以在事務(wù)中重用的數(shù)據(jù)。</p><p>  2)Session 會(huì)話</p><p>  Session是生命周期的單線程對(duì)象,代表應(yīng)用程序和持久層之間的一次對(duì)話。封裝了一個(gè)JDBC連接,也是Transaction的工廠。保存有必需的(第一級(jí))持久化對(duì)象的緩存,用于遍歷對(duì)象圖或通過(guò)標(biāo)

45、識(shí)符查找對(duì)象。</p><p>  3)持久化對(duì)象(Persistent Object)及其集合(Collection)</p><p>  生命周期短的單線程對(duì)象包含了持久化狀態(tài)和商業(yè)功能。它們可能是普通的JAVABeans/POJOs,唯一特別的是他們現(xiàn)在都從屬于且僅從屬于一個(gè)Session。一旦Session關(guān)閉,他們都將從Session中取消聯(lián)系,可以在任何程序?qū)幼杂墒褂谩?lt;

46、/p><p>  4)事務(wù)(Transaction)</p><p>  事務(wù)也是生命周期短的單線程對(duì)象,應(yīng)用程序用它來(lái)表示一批工作的原子操作。是底層的JDBC,JTA或者CORBA事務(wù)的抽象。一個(gè)Session某些情況下可能跨越多個(gè)事務(wù)。</p><p>  2.2.4 Spring簡(jiǎn)介</p><p>  Spring 是一個(gè)開(kāi)源 框 架,是

47、為了解決企業(yè) 應(yīng) 用程序開(kāi)發(fā)復(fù)雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個(gè)組件,同時(shí)為J2EE 應(yīng)用程序開(kāi)發(fā)提供集成的框架。Spring 框架的功能可以用在任何J2EE 服務(wù)器中,大多數(shù)功能也適用于不受管理 的環(huán)境。Spring 的核心要點(diǎn)是:支持不綁定到特定J2EE 服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)訪問(wèn)對(duì)象。這樣的對(duì)象可以在不同J2EE 環(huán)境(Web 或EJB )、獨(dú)立應(yīng)用程序、測(cè)試 環(huán)境之間重用[7],如圖2-

48、6所示:</p><p>  圖2-6 Spring框架的組成結(jié)構(gòu)圖</p><p>  組成Spring 框架的每個(gè)模塊(或組件)都可以單獨(dú)存在,或者與其他一個(gè)或多個(gè)模塊聯(lián)合實(shí)現(xiàn)。每個(gè)模塊的功能如下: </p><p>  核心容器:核心容器提供Spring 框架的基本功能。核心容器的主要組件是BeanFactory ,它是工廠模式的實(shí)現(xiàn)。BeanFactory

49、使用控制反轉(zhuǎn) (IOC ) 模式將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼 分 開(kāi)。 </p><p>  Spring 上下文:Spring 上下文是一個(gè)配置文件,向Spring 框架提供上下文信息。Spring 上下文包括企業(yè)服務(wù),例如JNDI 、EJB 、電子郵件、國(guó)際化、校驗(yàn)和調(diào)度功能。 </p><p>  Spring AOP : 通過(guò)配置管理特性,Spring AOP

50、模塊直接將面向方面的編程 功 能集成到了Spring 框架中。所以,可以很容易地使Spring 框架管理的任何對(duì)象支持AOP 。Spring AOP 模塊為基于Spring 的應(yīng)用程序中的對(duì)象提供了事務(wù)管理服務(wù)。通過(guò)使用Spring AOP ,不用依賴EJB 組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。 </p><p>  Spring DAO :JDBC DAO 抽象層提供了有意義的異常層次結(jié)構(gòu),可用該結(jié)構(gòu)

51、來(lái)管理異常處理和不同數(shù)據(jù)庫(kù) 供應(yīng)商拋出的錯(cuò)誤消息。異常層次結(jié)構(gòu)簡(jiǎn)化了錯(cuò)誤處理,并 且極大地降低了需要編寫(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

52、。所有這些都遵從Spring 的通用事務(wù)和DAO 異常層次結(jié)構(gòu)。 </p><p>  Spring為企業(yè)應(yīng)用的開(kāi)發(fā)提供了一個(gè)輕量級(jí)的解決方案。該解決方案包括:基于依賴注入的核心機(jī)制,基于AOP的聲明式事務(wù)管理,與多種持久層技術(shù)的整合,以及優(yōu)秀的Web MVC 框架等。Spring致力于Java EE 應(yīng)用各層的解決方案,而不是僅僅專注于某一層的方案。</p><p>  2.2.5 JS

53、P技術(shù)簡(jiǎn)介</p><p>  JSP技術(shù)提供了一種簡(jiǎn)單快速的方法來(lái)創(chuàng)建顯示動(dòng)態(tài)生成內(nèi)容的Web頁(yè)面。也就是在MVC中充當(dāng)V(View)的角色。由業(yè)界處于領(lǐng)先地位的Sun公司制定了相關(guān)的JSP技術(shù)規(guī)范,該規(guī)范定義了如何在服務(wù)器和JSP頁(yè)面間進(jìn)行交互,還描述了頁(yè)面的格式和語(yǔ)法[8]。</p><p>  JSP頁(yè)面使用XML標(biāo)簽和scriptlets(一種使用JAVA語(yǔ)言編寫(xiě)的腳本代碼),封

54、裝了生成頁(yè)面內(nèi)容的邏輯。它將各種格式的標(biāo)簽(HTML或者XML)直接傳遞回響應(yīng)頁(yè)面。通過(guò)這種方式,JSP頁(yè)面實(shí)現(xiàn)了頁(yè)面邏輯與其設(shè)計(jì)和顯示的分離。</p><p>  JSP技術(shù)是JAVA系列技術(shù)的一部分。JSP頁(yè)面被編譯成servlet,并可能調(diào)用JAVABeans組件(beans)或Enterprise JAVABeans組件(企業(yè)beans),以便在服務(wù)器端處理。因此,JSP技術(shù)在構(gòu)建可升級(jí)的基于web的應(yīng)用

55、程 序時(shí)扮演了重要角色。 </p><p>  JSP頁(yè)面并不局限于任何特定的平臺(tái)或web服務(wù)器上。JSP規(guī)范在業(yè)界有著廣泛的適應(yīng)性。 </p><p>  JSP技術(shù)是行業(yè)協(xié)作的結(jié)果,它的設(shè)計(jì)是開(kāi)放的,符合行業(yè)標(biāo)準(zhǔn)的,并支持絕大多數(shù)的服務(wù)器、瀏覽器和相關(guān)工具。由于使用可重用的組件和標(biāo)簽取代了對(duì)頁(yè)面本身腳本語(yǔ)言的嚴(yán)重依賴,JSP技 術(shù)大大加快了開(kāi)發(fā)的速度。所有JSP的實(shí)現(xiàn)均支持以JAVA編

56、程語(yǔ)言為基礎(chǔ)的腳本語(yǔ)言,它有與生俱來(lái)的可適應(yīng)性,支持復(fù)雜的操作。</p><p>  2.2.6 MySQL數(shù)據(jù)庫(kù)簡(jiǎn)介</p><p>  MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQL AB公司。在2008年1月16號(hào)被Sun公司收購(gòu)。而2009年,SUN又被Oracle收購(gòu)。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù) 保存在不同的表中,而不是將所有數(shù)據(jù)放在一

57、個(gè)大倉(cāng)庫(kù)內(nèi)。這樣就增加了速度并提高了靈活性。MySQL的SQL“結(jié)構(gòu)化查詢語(yǔ)言”。SQL是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL軟件采用了GPL(GNU通用公共許可證)。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)[9]。</p><p>  與其他的大型數(shù)據(jù)庫(kù)例如Oracle、DB2、SQL Server等相比,MyS

58、QL自有它的不足之處,如規(guī)模小、功能有限(MySQL Cluster的功能和效率都相對(duì)比較差)等,但是這絲毫也沒(méi)有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來(lái)說(shuō),MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開(kāi)放源碼軟件,因此可以大大降低總體擁有成本。</p><p><b>  3 系統(tǒng)分析</b></p><p>  3.1系統(tǒng)功能需求分析<

59、;/p><p>  現(xiàn)代化學(xué)校應(yīng)該有個(gè)現(xiàn)代化的管理系統(tǒng)去管理學(xué)校內(nèi)的各項(xiàng)事物,學(xué)校是一個(gè)數(shù)據(jù)量比較大的單位,如何去管理及查詢學(xué)校內(nèi)的數(shù)據(jù)就成為了一項(xiàng)及為重要的問(wèn)題,同時(shí),學(xué)生選課、教務(wù)人員排課這項(xiàng)工作是教學(xué)管理中很重要的一個(gè)環(huán)節(jié),所以開(kāi)發(fā)出一個(gè)選排課系統(tǒng)就是現(xiàn)在及為重要的事情,從而選排課系統(tǒng)的重要性就不言而喻了[10]。</p><p>  本系統(tǒng)的設(shè)計(jì)目的是要將學(xué)生選擇課程和教務(wù)管理人員的編

60、排課程通過(guò)網(wǎng)絡(luò)進(jìn)行管理。為學(xué)生、教師和教務(wù)管理人員提供便利。系統(tǒng)的用戶有4種類(lèi)型,分別為系統(tǒng)管理員、系教務(wù)管理員、學(xué)生、教師,系統(tǒng)對(duì)于一個(gè)用戶只允許以一種身份登錄。系統(tǒng)管理員登錄后可以對(duì)系統(tǒng)進(jìn)行信息管理,其主要操作是維護(hù)學(xué)生、教師和課程的基本信息。學(xué)生登錄后的主要操作是選課和查看教師主頁(yè)以及查看通知和發(fā)布留言。教師登錄后主要操作是查看課表以及個(gè)人信息的維護(hù)、留言等功能。</p><p>  將系統(tǒng)需求加以總結(jié),得

61、出系統(tǒng)具有如下幾個(gè)功能:</p><p>  系統(tǒng)可以運(yùn)行在Windows操作系統(tǒng)平臺(tái)上,并具有友好的用戶界面。</p><p>  系統(tǒng)用戶類(lèi)型為:系統(tǒng)管理員、教務(wù)人員、學(xué)生、教師。</p><p>  系統(tǒng)對(duì)于一個(gè)用戶只允許以一種身份登錄。</p><p>  只有系統(tǒng)管理員可以維護(hù)學(xué)生、教師和課程的基本信息。</p>&l

62、t;p>  學(xué)生可以選課、查看教師主頁(yè)并留言。</p><p>  教師可以選擇查看課表、修改個(gè)人信息并增刪改留言。</p><p><b>  3.2 可行性分析</b></p><p>  可行性分析(Feasibility Analysis)也稱為可行性研究,任何一個(gè)基于計(jì)算機(jī)的系統(tǒng),都會(huì)受到時(shí)間和資源上的限制。必須根據(jù)客戶可能提供

63、的時(shí)間和資源條件進(jìn)行可行性研究。它可以避免人力、物力和財(cái)力上的浪費(fèi)。對(duì)該系統(tǒng)的開(kāi)發(fā)從經(jīng)濟(jì)、技術(shù)、操作三方面進(jìn)行分析和研究[11]。</p><p>  可行性研究的目的就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。該系統(tǒng)的可行性分析包括以下幾個(gè)方面的內(nèi)容。</p><p>  3.2.1經(jīng)濟(jì)可行性分析</p><p>  確定開(kāi)發(fā)項(xiàng)目的開(kāi)發(fā)成本以及估算開(kāi)發(fā)

64、項(xiàng)目所能夠產(chǎn)生的經(jīng)濟(jì)效益:該系統(tǒng)目前在校園里受到一致好評(píng),在方便高效快捷的基礎(chǔ)上,有助于學(xué)生學(xué)習(xí)、教師工作及有效的管理的應(yīng)用價(jià)值,有很好的實(shí)用和發(fā)展前景。所以本系統(tǒng)在經(jīng)濟(jì)上是可行的。</p><p>  3.2.2技術(shù)可行性分析</p><p>  確定現(xiàn)有的技術(shù)是否能解決本該開(kāi)發(fā)項(xiàng)目:本系統(tǒng)主要采用Struts2+Hibernate+Spring架構(gòu),使用JAVA語(yǔ)言,和MySql數(shù)據(jù)庫(kù)

65、等主要技術(shù),整個(gè)平臺(tái)構(gòu)建于JAVA EE之上,比較容易實(shí)現(xiàn)。所以在技術(shù)上也是可行的。</p><p>  3.2.3操作可行性分析</p><p>  確定軟件產(chǎn)品是否能夠被最終的用戶所接受,用戶是否能操作最終的產(chǎn)品:本系統(tǒng)采用B/S架構(gòu),客戶端采用瀏覽器的形式,操作簡(jiǎn)單,方便使用。所以在操作上也是可行的。</p><p>  綜上所述,此系統(tǒng)開(kāi)發(fā)目標(biāo)已明確,在技術(shù)

66、和經(jīng)濟(jì),操作三方面都可行,并且投入少、見(jiàn)效快。因此系統(tǒng)的開(kāi)發(fā)是完全可行的。</p><p><b>  4 系統(tǒng)總體設(shè)計(jì)</b></p><p>  4.1 系統(tǒng)功能總體框架</p><p>  本系統(tǒng)主要有教務(wù)管理員、教師、學(xué)生和系統(tǒng)管理員四種用戶組,功能都是圍繞這四個(gè)個(gè)用戶組設(shè)計(jì)的。</p><p>  教務(wù)管理員相

67、關(guān)的功能結(jié)構(gòu)圖如圖4-1所示:</p><p>  4-1系教務(wù)管理員功能結(jié)構(gòu)圖</p><p>  教師相關(guān)的功能結(jié)構(gòu)圖如圖4-2所示:</p><p>  4-2教師功能結(jié)構(gòu)圖</p><p>  學(xué)生相關(guān)的功能結(jié)構(gòu)圖如圖4-3所示:</p><p>  4-3學(xué)生功能結(jié)構(gòu)圖</p><p>

68、;  系統(tǒng)管理員相關(guān)的功能結(jié)構(gòu)圖如圖4-4所示:</p><p>  系統(tǒng)總體的功能結(jié)構(gòu)圖如圖4-5所示:</p><p><b>  4-5系統(tǒng)結(jié)構(gòu)圖</b></p><p>  4.2 系統(tǒng)各功能模塊設(shè)計(jì)</p><p>  經(jīng)過(guò)詳盡的需求分析,確定各功能模塊內(nèi)容大致如下:</p><p> 

69、 4.2.1系教務(wù)管理員功能模塊</p><p>  系教務(wù)管理員注冊(cè)、登錄(注冊(cè)需要經(jīng)過(guò)認(rèn)證)后,能自動(dòng)生成該教務(wù)管理員主頁(yè),教務(wù)管理員應(yīng)具有根據(jù)學(xué)生選課信息進(jìn)行排課(手動(dòng)和自動(dòng))、調(diào)課,并生成相應(yīng)的排課表及可以在自己的主頁(yè)上發(fā)布、刪除、修改自己的通知與查看留言等功能。</p><p>  4.2.2 教師功能模塊</p><p>  教師注冊(cè)、登錄、修改個(gè)人信息

70、(注冊(cè)需要經(jīng)過(guò)認(rèn)證)后,能自動(dòng)生成該教師主頁(yè),教師可以查看本學(xué)期個(gè)人課表及系總課表及可以在自己的主頁(yè)上可以發(fā)布、刪除、修改自己的留言。</p><p>  4.2.3 學(xué)生功能模塊</p><p>  學(xué)生注冊(cè)、登錄后,能自動(dòng)生成該學(xué)生主頁(yè),學(xué)生可以查看訪問(wèn)教師個(gè)人主頁(yè),針對(duì)不同教師、不同課程(同一名教師的同一門(mén)課程,最多人數(shù)為35人),學(xué)生可以自由選課及留言。</p>&l

71、t;p>  4.2.4后臺(tái)管理功能模塊</p><p>  后臺(tái)管理:系統(tǒng)管理員應(yīng)具有對(duì)數(shù)據(jù)進(jìn)行添加、刪除、更改等維護(hù)功能。</p><p>  4.3 系統(tǒng)總體及各實(shí)體用例圖設(shè)計(jì)</p><p>  系統(tǒng)總體例圖如圖4-6所示:前端用戶包括教務(wù)管理員、教師、和學(xué)生。</p><p>  圖4-6 系統(tǒng)總體用例圖</p>

72、<p><b>  5 系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p>  5.1系統(tǒng)設(shè)計(jì)的原則和目標(biāo)</p><p>  本系統(tǒng)的設(shè)計(jì)目標(biāo)是借助互聯(lián)網(wǎng)為學(xué)校建立的一個(gè)選向課程網(wǎng)站,是針對(duì)在校學(xué)生和教師使用的一個(gè)選排課系統(tǒng),該系統(tǒng)能方便學(xué)生的選課,教務(wù)管理員對(duì)學(xué)生選課信息進(jìn)行排課、調(diào)課,學(xué)校的教務(wù)管理。最終實(shí)現(xiàn)了用戶和課程的信息化管理。</p><

73、p>  5.2 系統(tǒng)體系結(jié)構(gòu)的設(shè)計(jì)</p><p>  系統(tǒng)依據(jù)MVC模式可分為視圖層、控制層、模型層。從程序分布位置角度,系統(tǒng)依次分布在瀏覽器、應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)系統(tǒng)三層,如圖5-1所示:</p><p>  圖5-1 系統(tǒng)體系構(gòu)架圖</p><p><b>  5.3 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p>  5

74、.3.1 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)</p><p>  概念結(jié)構(gòu)的設(shè)計(jì)是將系統(tǒng)需求分析得到的用戶需求抽象為信息結(jié)構(gòu)過(guò)程。概念結(jié)構(gòu)設(shè)計(jì)的結(jié)果是數(shù)據(jù)庫(kù)的概念模型。只有將系統(tǒng)應(yīng)用需求為信息世界的結(jié)構(gòu),才能轉(zhuǎn)化為機(jī)器翻譯世界中的數(shù)據(jù)模型,并用DBMS實(shí)現(xiàn)這些需求。</p><p>  按照自頂向下分析需求與自底向上設(shè)計(jì)概念結(jié)構(gòu)方法,概念結(jié)構(gòu)的設(shè)計(jì)可分為兩步:第一步是抽象數(shù)據(jù)并設(shè)計(jì)局部視圖;第二步是集成局

75、部視圖,得到全局的概念結(jié)構(gòu)。</p><p>  利用數(shù)據(jù)抽象的方法可以對(duì)現(xiàn)實(shí)世界抽象得出概念模型的子集及屬性,概念結(jié)構(gòu)設(shè)計(jì)是利用抽象機(jī)制對(duì)需求分析階段悼念到的數(shù)據(jù)進(jìn)行分類(lèi)、組織(聚集),形成實(shí)體集、屬性和碼,確定實(shí)體集之間的聯(lián)系類(lèi)型,進(jìn)而設(shè)計(jì)E-R圖。</p><p>  5.3.1.1各實(shí)體及其屬性</p><p>  本系統(tǒng)總共有以下9個(gè)實(shí)體:</p&g

76、t;<p>  系統(tǒng)管理員(ID號(hào),用戶名,密碼)。</p><p>  教務(wù)管理員(ID號(hào),用戶名,密碼,編號(hào),真實(shí)姓名,身份認(rèn)證)。</p><p>  教師(ID號(hào),用戶名,密碼,編號(hào),真實(shí)姓名,所在系,身份認(rèn)證)。</p><p>  學(xué)生(ID號(hào),用戶名,密碼,編號(hào),真實(shí)姓名,所在系,權(quán)限</p><p>  課程(I

77、D號(hào),課程編號(hào),課程名稱,課程類(lèi)型)。</p><p>  選課(ID號(hào),用戶名,課程名字)。</p><p>  留言(ID號(hào),用戶名,內(nèi)容,時(shí)間)。</p><p>  排課(ID號(hào),編號(hào),名字,教師名稱,學(xué)分,學(xué)時(shí),地址,時(shí)間)。</p><p>  通知(ID號(hào),標(biāo)題,內(nèi)容,時(shí)間)</p><p>  5.3.

78、1.2系統(tǒng)E-R圖</p><p>  系統(tǒng)的實(shí)體之間關(guān)系E-R圖如圖5-2、5-3所示</p><p>  圖5-2 課程-用戶</p><p>  圖5-3 用戶-通知-留言</p><p>  5.3.2 數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)</p><p>  數(shù)據(jù)庫(kù)在系統(tǒng)中占有及其重要的地位,數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的好壞關(guān)系到系統(tǒng)的運(yùn)

79、行效率、存儲(chǔ)數(shù)據(jù)的效率、系統(tǒng)的復(fù)雜程度等,合理的數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)可以提高系統(tǒng)性能。</p><p>  據(jù)庫(kù)中的各個(gè)表的設(shè)計(jì)結(jié)果如下表所示(每個(gè)表格表示數(shù)據(jù)庫(kù)中的一個(gè)表)。</p><p><b> ?。?)用戶信息表</b></p><p>  用戶信息表記錄了所有用戶的信息。其中包括用戶ID,用戶名,編號(hào),性別,用戶真實(shí)姓名,權(quán)限,身份認(rèn)證。

80、它們的屬性如表5-1所示。設(shè)置用戶ID為主鍵。</p><p>  表5-1用戶信息表(usertable)</p><p><b> ?。?)課程信息表</b></p><p>  課程信息表記錄了課程的所有信息,包括課程編號(hào),課程名稱,課程類(lèi)型,其屬性如表5-2示。設(shè)置課程ID為主鍵。</p><p>  表5-2課

81、程信息表(kecheng)</p><p><b> ?。?)排課信息表</b></p><p>  排課信息表記錄了排課的所有信息,包括課程編號(hào),課程名稱,教師,學(xué)分,學(xué)時(shí),上課地址,開(kāi)課時(shí)間。其屬性如表5-3示。設(shè)置排課ID為主鍵。</p><p>  表5-3排課信息表(paike)</p><p><b&g

82、t; ?。?)選課信息表</b></p><p>  選課信息表記錄了選課的所有信息,包括選課ID,課程名稱,用戶名稱。其屬性如表5-4示。設(shè)置選課ID為主鍵。</p><p>  表5-4選課信息表(xuanke)</p><p><b> ?。?)留言信息表</b></p><p>  留言信息表記錄了留

83、言的所有信息,包括留言ID,用戶名稱,留言內(nèi)容,留言時(shí)間。其屬性如表5-5示。設(shè)置留言ID為主鍵。</p><p>  表5-5留言信息表(liuyan)</p><p><b> ?。?)通知信息表</b></p><p>  通知信息表記錄了通知的所有信息,包括通知ID,通知標(biāo)題,通知內(nèi)容,發(fā)布時(shí)間。其屬性如表5-6示。設(shè)置通知ID為主鍵。

84、</p><p>  表5-6通知信息表(tongzhi)</p><p><b>  6 系統(tǒng)的實(shí)現(xiàn)</b></p><p>  6.1 系統(tǒng)實(shí)現(xiàn)的流程圖</p><p>  本系統(tǒng)共有系統(tǒng)管理員、教務(wù)管理員、教師和學(xué)生四種用戶,根據(jù)其功能需求,它們相關(guān)的系統(tǒng)流程圖如圖6-1所示:</p><p&g

85、t;<b>  圖6-1系統(tǒng)流程圖</b></p><p>  6.2 系統(tǒng)具體功能模塊的實(shí)現(xiàn)</p><p>  6.2.1用戶注冊(cè)設(shè)計(jì)模塊的實(shí)現(xiàn)</p><p>  用戶注冊(cè)頁(yè)面如圖6-2,圖6-3所示:</p><p>  圖6-2 用戶注冊(cè)選擇注冊(cè)身份頁(yè)面</p><p>  圖6-3 用

86、戶注冊(cè)頁(yè)面</p><p>  用戶選擇注冊(cè)的身份后并填入完必要信息后,點(diǎn)擊提交,將信息提交給zhuce.jsp進(jìn)行操作。其相關(guān)代碼部分如下:</p><p>  <form name="zhuce" action="<%=path %>/userCreate.action" method="post">&

87、lt;/p><p>  用戶名:<input size=15 name="username" class="leftbox1"></p><p>  密 碼:<input type=password size=15 name="password"></p><p>  確認(rèn)密碼:<

88、;input type=password size=15 name="passworda"></p><p>  <%String shenfen = request.getParameter("shenfen");</p><p>  if("學(xué)生".equals(shenfen)){ %></p>

89、<p>  學(xué)號(hào):<input size=15 name="xuehao"></p><p><b>  <%} %></b></p><p>  真實(shí)姓名:<input size=15 name="zsxm" ></p><p>  性別:<inp

90、ut type="radio" name="sex" value="男" checked>男</p><p>  <input type="radio" name="sex" value="女">女</p><p>  <%if(!"教務(wù)

91、管理員".equals(shenfen)){ %></p><p>  所在系別:<input size=15 name="suozaixi" class="leftbox1"></p><p><b>  <%} %></b></p><p>  <inpu

92、t type="hidden" value="<%=shenfen %>" name="quanxian"/> </p><p>  <input type="submit" value="確定" name=Submit2 /> </p><p><b&

93、gt;  </form></b></p><p>  點(diǎn)擊確定按鈕后交給userCreate.action進(jìn)行處理,</p><p>  UserCreateAction中相關(guān)代碼如下:</p><p>  public String createUser(){</p><p>  UserTable tUserTab

94、le = new UserTable();</p><p>  tUserTable.setUsername(username);</p><p>  tUserTable.setPassword(password);</p><p>  tUserTable.setXuehao(xuehao);</p><p>  tUserTable.s

95、etZsxm(zsxm);</p><p>  tUserTable.setSex(sex);</p><p>  tUserTable.setSuozaixi(suozaixi);</p><p>  tUserTable.setQuanxian(quanxian);</p><p>  if("學(xué)生".equals(q

96、uanxian)){</p><p>  tUserTable.setSfrz("1");</p><p><b>  }else{</b></p><p>  tUserTable.setSfrz("0");</p><p><b>  }</b></

97、p><p>  String result = getUserTableService().createUser(tUserTable);</p><p>  return result;</p><p><b>  }</b></p><p>  6.2.2用戶登陸設(shè)計(jì)模塊的實(shí)現(xiàn)</p><p> 

98、 用戶登陸頁(yè)面index.jsp如圖6-4所示:</p><p>  圖 6-4 用戶登陸頁(yè)面</p><p>  在index.jsp網(wǎng)頁(yè)填入用戶名的和密碼信息,點(diǎn)擊登陸。</p><p>  index.jsp中相關(guān)代碼如下:</p><p>  <form name="mylogin" action="

99、;<%=path%>/userLogin.action"</p><p>  method="post"></p><p><b>  ······</b></p><p>  <TD height=35></p>

100、<p>  <input type="submit" value="登錄" />&nbsp;&nbsp;&nbsp;</p><p>  <input type="button" name="zhuce" value="注冊(cè)" onClick=

101、"location.href='<%=path%>/shenfen.jsp'" /></p><p><b>  </TD></b></p><p><b>  </form></b></p><p>  點(diǎn)擊登錄后由userLogin.acti

102、on進(jìn)行處理,</p><p>  UserLoginAction.java中相關(guān)代碼如下:</p><p>  public String loginUser(){</p><p>  if(getUserTableService().loginUser(getUsername(), getPassword(),getShenfen())){</p>

103、<p>  HttpServletRequest request = ServletActionContext.getRequest();</p><p>  HttpSession session=request.getSession();</p><p>  session.setAttribute( "username",username); se

104、ssion.setAttribute( "quanxian",getUserTableService()</p><p>  .getQuanxian(username));</p><p>  return "success";</p><p><b>  }else{</b></p>&

105、lt;p>  return "error";</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //用戶登錄判斷</b></p><p>  public boolean loginUser(S

106、tring username,String password,String shenfen){</p><p>  Jdbc jdbc = new Jdbc();</p><p>  String sql = "select * from usertable where username='"+username+"'</p>&l

107、t;p>  and sfrz='1'";</p><p>  ResultSet rs = jdbc.query(sql);</p><p><b>  try{</b></p><p>  if(rs.next()){</p><p>  if(rs.getString(&quo

108、t;password").equals(password)&&</p><p>  rs.getString("quanxian").equals(shenfen)){</p><p>  return true;</p><p><b>  }else{</b></p><p&

109、gt;  return false;</p><p><b>  }</b></p><p><b>  }else{</b></p><p>  return false;</p><p><b>  }</b></p><p>  }catch(Ex

110、ception e){</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  return false ;</p><p><b>  }</b></p><p>  用戶注冊(cè)后需要系統(tǒng)管理員的認(rèn)證后才能登陸

111、成功。 </p><p>  用戶注冊(cè)中認(rèn)證相關(guān)代碼如下:</p><p><b>  <%</b></p><p>  String path = request.getContextPath();</p><p>  request.setCharacterEncoding("utf-8")

112、;</p><p>  Jdbc jdbc = new Jdbc();</p><p>  String id = request.getParameter("id");</p><p>  String sql = "update usertable set sfrz='1' where id='"+

113、id+"'";</p><p>  int i = jdbc.update(sql);</p><p><b>  if(i==1){</b></p><p><b>  %></b></p><p><b>  <script></b&

114、gt;</p><p>  alert("已認(rèn)證");</p><p>  window.location="<%=path%>/user/userTable.jsp";</p><p>  </script></p><p>  <%}else{%></p&

115、gt;<p><b>  <script></b></p><p>  alert("認(rèn)證失敗");</p><p>  window.location="<%=path%>/user/userTable.jsp";</p><p><b>  </s

116、cript></b></p><p><b>  <%}%></b></p><p>  usercreateAction中控制用戶權(quán)限的相關(guān)代碼如下</p><p>  public String createUser(){</p><p><b>  ........</

117、b></p><p>  if("學(xué)生".equals(quanxian)){</p><p>  tUserTable.setSfrz("1");</p><p><b>  }else{</b></p><p>  tUserTable.setSfrz("0&q

118、uot;);</p><p><b>  }</b></p><p><b>  ........</b></p><p><b>  }</b></p><p>  6.2.3用戶留言模塊的實(shí)現(xiàn)</p><p>  用戶留言的界面如圖6-5:</

119、p><p><b>  圖6-5留言添加</b></p><p>  教務(wù)管理員、教師、學(xué)生都可以直接留言。留言框內(nèi)加上需要留言的內(nèi)容后系統(tǒng)將自動(dòng)加上留言人的用戶名和留言日期。</p><p><b>  創(chuàng)建留言相關(guān)代碼:</b></p><p>  <form name="creat

120、eForm" action="<%=path %>/liuyanCreate.action" method="post" enctype="multipart/form-data"></p><p>  <table border="0" cellspacing="0" cellp

121、adding="0"></p><p><b>  <tr></b></p><p>  <td bgcolor="#F2F2F2" align="right"></p><p>  <span class="STYLE4">

122、;留言內(nèi)容:</span></td></p><p>  <td align="left"></p><p>  <textarea name="context" rows="5" cols="30"></textarea></td><

123、;/p><p>  <td width="40%"></td></p><p><b>  </tr></b></p><p><b>  <tr></b></p><p><b>  <td></b>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論