版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、畢業(yè)設(shè)計(jì)(論文)題 目:基于JSP的運(yùn)動會賽前管理子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)學(xué) 生: 指導(dǎo)老師: 系 別: 計(jì)算機(jī)與信息科學(xué)系 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班 級: 計(jì)算機(jī)科學(xué)與技術(shù)0703班 學(xué) 號: 20011年5月目錄1課題背景51.1課題的背景及來源51.2課題研究的現(xiàn)狀51.3課題研究的目的和意義62技術(shù)概述72.1SSH(Struts+Spring+Hibernate)技術(shù)介紹72.1.1什么是Struts72.1.2什么是Spring82.1.3什么是Hibernate92.2JSP技術(shù)介紹102.3SQL Server 2000數(shù)據(jù)庫簡介112.4TOMCAT技術(shù)簡介113. 系統(tǒng)實(shí)現(xiàn)
2、過程133.1 系統(tǒng)總體設(shè)計(jì)圖133.2 系統(tǒng)開發(fā)方案圖133.3 軟硬件要求及安裝144. 系統(tǒng)開發(fā)164.1需求分析164.1.1 開發(fā)原因164.1.2 功能及使用人員需求164.1.3 開發(fā)影響165. 概要設(shè)計(jì)175.1總體設(shè)計(jì)175.1.1 系統(tǒng)基本設(shè)計(jì)175.1.2 系統(tǒng)設(shè)計(jì)圖175.13 數(shù)據(jù)庫設(shè)計(jì)185.2詳細(xì)設(shè)計(jì)205.2.1登錄模塊205.2.2學(xué)生模塊205.2.3教師模塊225.2.4管理員模塊225.2.5 測試結(jié)果分析246.總結(jié)25致謝語26參考文獻(xiàn)27基于JSP的運(yùn)動會賽前管理子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要:運(yùn)動會對于每一個(gè)學(xué)校來說,都是必不可少的。對于我們國內(nèi)的高校
3、來說,運(yùn)動會的意義更是非同一般。舉辦一個(gè)大型的運(yùn)動會,必不可少的是效率、規(guī)范、系統(tǒng)的管理方式,這更離不開計(jì)算機(jī)及相關(guān)系統(tǒng)的幫助。傳統(tǒng)的運(yùn)動會管理系統(tǒng),大多是單機(jī)的、封閉的,這樣的系統(tǒng)在嚴(yán)重降低管理效率的同時(shí),也會因?yàn)樘^依靠系統(tǒng)管理員的個(gè)人工作而導(dǎo)致一些信息輸入錯誤,而且,因?yàn)橄到y(tǒng)的封閉性,往往也不利于信息公布,讓參與者能夠第一時(shí)間拿到第一手資料。這次課題,不但要開發(fā)出一個(gè)擁有全功能的報(bào)名系統(tǒng),更重要的是讓這樣系統(tǒng)面向參與者、面向網(wǎng)絡(luò),使得運(yùn)動員能夠方便的通過自己的計(jì)算機(jī)參與到運(yùn)動會的報(bào)名;老師們能夠通過系統(tǒng)查看本次運(yùn)動會的報(bào)名情況以及比賽安排;而管理員的工作則只需要審核運(yùn)動員報(bào)名、預(yù)編排和秩
4、序冊生成。本次課題的最終目的是使運(yùn)動會的舉行更加的高效、透明。關(guān)鍵字:JSP;賽前管理;SSH1 課題背景1.1 課題的背景及來源隨著社會的發(fā)展,高等教育越來越深入大眾。國內(nèi)高校的數(shù)量、規(guī)模都在不斷成長。運(yùn)動會是一個(gè)成功的高校必不可少項(xiàng)目之一。每年一次的運(yùn)動會成為各大高校的亮點(diǎn)。以前的運(yùn)動會,需各班級學(xué)生報(bào)名,然后由班級上報(bào)年級、學(xué)校,最后再由學(xué)校工作人員進(jìn)行具體的時(shí)間、空間上的安排。這不僅大大的浪費(fèi)了時(shí)間,而且一些比賽項(xiàng)目的安排,往往會存在沖突,同時(shí)也可能由于事先未考慮全面的、緊湊的比賽安排導(dǎo)致運(yùn)動員們由于缺乏中場休息時(shí)間而倉促上場,發(fā)揮失常等等問題在比賽項(xiàng)目、參賽人員多的運(yùn)動會中體現(xiàn)得尤為
5、突出。因此,面對規(guī)模越來越大的運(yùn)動會,傳統(tǒng)的單機(jī)式,甚至是人工管理漸漸已經(jīng)滿足不了學(xué)校對運(yùn)動會管理的需求。在計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)日益成熟的大趨勢下,許多封閉的、單機(jī)的系統(tǒng)都面臨著淘汰的局面,取而代之的是網(wǎng)絡(luò)化的、透明化的應(yīng)用系統(tǒng)和管理方式。運(yùn)動會管理系統(tǒng)正是進(jìn)行著這個(gè)變化。我們可以預(yù)想到,一個(gè)成熟的、面向網(wǎng)絡(luò)的運(yùn)動會賽前管理系統(tǒng),不僅能夠解決傳統(tǒng)管理繁瑣的報(bào)名步驟,同時(shí),能夠根據(jù)預(yù)先考慮周全的內(nèi)置算法來安排比賽順序,生成秩序冊,更加關(guān)鍵的是,由于其的網(wǎng)絡(luò)化屬性,能夠讓更多的學(xué)生、老師參與到其中。無論其規(guī)模大小,整個(gè)過程都顯得井井有條。這便是本次課題研究的目標(biāo)。1.2 課題研究的現(xiàn)狀 一直以來,高校中
6、所運(yùn)用的運(yùn)動會賽前管理系統(tǒng)都是單機(jī)的,然而,隨著網(wǎng)絡(luò)化趨勢的到來,以及人們對一個(gè)面向網(wǎng)絡(luò)的運(yùn)動會賽前管理系統(tǒng)的迫切需求,我們的課題研究最終被提上了日程。 顯然,我們并不是第一個(gè)開發(fā)這樣系統(tǒng)的,我們之所以會開這個(gè)課題,是因?yàn)楫?dāng)前使用的系統(tǒng)仍舊存在著不少問題、缺陷,例如:網(wǎng)絡(luò)化程度不高、仍舊主要依靠人工操作、秩序冊生成不夠完善等。而我們這次的課題研究方向就是針對這些問題而去。我們再從技術(shù)方面來看。單機(jī)版的運(yùn)動會賽前管理系統(tǒng)我們暫且不論,目前存在的系統(tǒng)大多使用ASP或者是純JSP開發(fā)的,我們不能說這兩項(xiàng)技術(shù)完全不好,然而,面對更好的技術(shù)框架,我們卻又為什么不用呢。以JSP為基礎(chǔ),再加上Struts2
7、+Spring+Hibernate的框架,不僅在安全性方面大大提高,同時(shí)由于SSH框架的自身優(yōu)點(diǎn),使得整個(gè)系統(tǒng)更容易根據(jù)需求而變更,而且,在系統(tǒng)需要維護(hù)時(shí),SSH開發(fā)也會讓程序員們的工作量大大減少。1.3 課題研究的目的和意義本次課題的目的,是應(yīng)用SSH框架技術(shù)和JSP技術(shù)開發(fā)出一個(gè)能夠發(fā)布到網(wǎng)絡(luò)上的,供高校運(yùn)動會賽前管理的網(wǎng)站系統(tǒng)。本系統(tǒng)的主要功能可以歸納為兩大方面:報(bào)名、生成秩序冊。報(bào)名模式分為單人報(bào)名和整體錄入兩種。例如,在學(xué)校的某一個(gè)系中舉辦運(yùn)動會,我們可以采用單人報(bào)名模式,即所有想要參加運(yùn)動會的同學(xué)都可以通過登錄該系統(tǒng)進(jìn)行報(bào)名。而更多時(shí)候,我們遇到的情況是:已經(jīng)掌握了一份參賽名單,這
8、時(shí)候,管理員可以通過本系統(tǒng)進(jìn)行批量錄入?yún)①愡x手。而報(bào)名結(jié)束以后,系統(tǒng)將會根據(jù)預(yù)先編寫的機(jī)制來生成運(yùn)動會的秩序冊。本系統(tǒng)最大的亮點(diǎn)在于網(wǎng)絡(luò)化,能夠讓各種參與者通過網(wǎng)絡(luò)參與到運(yùn)動會,極大的方便運(yùn)動會的賽前管理,大大的節(jié)省賽前報(bào)名、籌措的時(shí)間,極具意義。2 技術(shù)概述本次課題是基于JSP的,采用SSH框架進(jìn)行開發(fā)。典型的J2EE三層結(jié)構(gòu),分為表現(xiàn)層、中間層(業(yè)務(wù)邏輯層)和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問及合法性校驗(yàn)等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。表現(xiàn)層是傳統(tǒng)的JSP技術(shù),自1999年問世以來,經(jīng)過多年的發(fā)展,其廣泛的應(yīng)用和穩(wěn)
9、定的表現(xiàn),為其作為表現(xiàn)層技術(shù)打下了堅(jiān)實(shí)的基礎(chǔ)。中間層采用的是流行的Spring+Hibernate,為了將控制層與業(yè)務(wù)邏輯層分離,又細(xì)分為以下幾種:Web層、Service層、Dao層、Po(持久化)。Spring的作用貫穿了整個(gè)中間層,將Web層、Service層、DAO層及PO無縫整合,其數(shù)據(jù)服務(wù)層用來存放數(shù)據(jù)。一個(gè)良好的框架可以讓開發(fā)人員減輕重新建立解決復(fù)雜問題方案的負(fù)擔(dān)和精力;它可以被擴(kuò)展以進(jìn)行內(nèi)部的定制化;并且有強(qiáng)大的用戶社區(qū)來支持它。框架通常能很好的解決一個(gè)問題。SSH(Struts+Spring+Hibernate)三個(gè)框架的組合,無疑是目前大型網(wǎng)站開發(fā)的最佳框架之一。本系統(tǒng)開發(fā)
10、采用的語言是JSP,框架為SSH(Struts+Spring+Hibernate)。數(shù)據(jù)庫方面,采用的是SQL Server 2000(Sp4)。模擬服務(wù)器是Apache Tomcat6.0。2.1 SSH(Struts+Spring+Hibernate)技術(shù)介紹2.1.1 什么是StrutsStruts跟Tomcat、Turbine等諸多Apache項(xiàng)目一樣,是開源軟件,這是它的一大優(yōu)點(diǎn),使開發(fā)者能更深入的了解其內(nèi)部實(shí)現(xiàn)機(jī)制。 除此之外,Struts的優(yōu)點(diǎn)主要集中體現(xiàn)在兩個(gè)方面:Taglib和頁面導(dǎo)航。Taglib是Struts的標(biāo)記庫,靈活運(yùn)用,能大大提高開發(fā)效率。另外,就目前國內(nèi)的JSP
11、開發(fā)者而言,除了使用JSP自帶的常用標(biāo)記外,很少開發(fā)自己的標(biāo)記,或許Struts是一個(gè)很好的起點(diǎn)。 關(guān)于頁面導(dǎo)航,我認(rèn)為那將是今后的一個(gè)發(fā)展方向,事實(shí)上,這樣做, 使系統(tǒng)的脈絡(luò)更加清晰。通過一個(gè)配置文件,即可把握整個(gè)系統(tǒng)各部分之間的聯(lián)系,這對于后期的維護(hù)有著莫大的好處。尤其是當(dāng)另一批開發(fā)者接手這個(gè)項(xiàng)目時(shí),這種優(yōu)勢體現(xiàn)得更加明顯。 MVC即Model-View-Controller的縮寫,是一種常用的設(shè)計(jì)模式。MVC 減弱了業(yè)務(wù)邏輯接口和數(shù)據(jù)接口之間的耦合,以及讓視圖層更富于變化。Struts 是MVC的一種實(shí)現(xiàn),它將 Servlet和 JSP 標(biāo)記(屬于 J2EE 規(guī)范)用作實(shí)現(xiàn)的一部分。St
12、ruts繼承了MVC的各項(xiàng)特性,并根據(jù)J2EE的特點(diǎn),做了相應(yīng)的變化與擴(kuò)展。2.1.2 什么是SpringSpring也是一個(gè)開源框架,它由Rod Johnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。 目的:解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性 功能:使用基本的JavaBean代替EJB,并提供了更多的企業(yè)應(yīng)用功能 范圍:任何Java應(yīng)用 簡單來說,Spring是一個(gè)輕量級的控制反轉(zhuǎn)(IoC)和
13、面向切面(AOP)的容器框架。 輕量從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對象不依賴于Spring的特定類。 控制反轉(zhuǎn)Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個(gè)對象依賴的其它對象會通過被動的方式傳遞進(jìn)來,而不是這個(gè)對象自己創(chuàng)建或者查找依賴對象。你可以認(rèn)為IoC與JNDI相反不是對象從容器中查找依賴,而是容器在對象初始化時(shí)不等對象請求就主動將依賴傳遞給它。 面向切面Spring
14、提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)(例如審計(jì)(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對象只實(shí)現(xiàn)它們應(yīng)該做的完成業(yè)務(wù)邏輯僅此而已。它們并不負(fù)責(zé)(甚至是意識)其它的系統(tǒng)級關(guān)注點(diǎn),例如日志或事務(wù)支持。 容器Spring包含并管理應(yīng)用對象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建基于一個(gè)可配置原型(prototype),你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級的EJB容器,它們經(jīng)常是龐大與笨重的,
15、難以使用。 框架Spring可以將簡單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對象被聲明式地組合,典型地是在一個(gè)XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。 所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。2.1.3 什么是HibernateHibernate是一個(gè)開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的
16、場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。Hibernate的核心接口一共有5個(gè),分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個(gè)核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對這五個(gè)核心接口分別加以介紹。Session接口:Session接口負(fù)責(zé)執(zhí)行被持久化對象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫的交流,包含了
17、很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時(shí),Hibernate的session不同于JSP應(yīng)用中的HttpSession。這里當(dāng)使用session這個(gè)術(shù)語時(shí),其實(shí)指的是Hibernate中的session,而以后會將HttpSession對象稱為用戶session。SessionFactory接口:SessionFactory接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲源的代理,并負(fù)責(zé)創(chuàng)建Session對象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè)SessionFactory就夠,
18、當(dāng)需要操作多個(gè)數(shù)據(jù)庫時(shí),可以為每個(gè)數(shù)據(jù)庫指定一個(gè)SessionFactory。Tracsaction接口:Transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開發(fā)人員也可以設(shè)計(jì)編寫自己的底層事務(wù)處理代碼。Query和Criteria接口:Query和Criteria接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用HQL語言或SQL語句兩種表達(dá)方式。Configuration接口:Configuration接口負(fù)責(zé)配置并啟動Hibernate,創(chuàng)建SessionFactory對象。在Hibernate的啟動的過程中,Configuration類的實(shí)例首先定位映射文檔位置、讀取配置,然后創(chuàng)建Sessi
19、onFactory對象。2.2 JSP技術(shù)介紹JSP(JavaServer Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。 用JSP開發(fā)的Web應(yīng)用是跨平臺的,即能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏
20、輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。 Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。 JSP與Java Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。 JSP的1.0規(guī)范的最后版本是1999年9月推出的,12月又推出了1.1規(guī)范。目前較新的是JSP1.2規(guī)范,JSP2.0規(guī)范的征求意見稿也已出
21、臺。JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請求以后對這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Java Servlet 是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο螅哂衅脚_無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。2.3 SQL Server 2000數(shù)據(jù)庫簡介 SQL Server 是一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng),它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同開發(fā)的,于1988 年推出了第
22、一個(gè)OS/2 版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開發(fā)上就分道揚(yáng)鑣了。Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上,專注于開發(fā)推廣SQL Server 的Windows NT 版本;Sybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應(yīng)用。在本書中介紹的是Microsoft SQL Server 以后簡稱為SQL Server或MS SQL Server。SQL Server 2000 是Microsoft 公司推出的SQL Server 數(shù)據(jù)庫管理系統(tǒng)的一個(gè)版本。該版本繼承了SQL
23、Server 7.0 版本的優(yōu)點(diǎn)同時(shí)又比它增加了許多更先進(jìn)的功能,具有使用方便,可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行Microsoft Windows 98 的膝上型電腦到運(yùn)行Microsoft Windows 7 的大型多處理器的服務(wù)器等多種平臺使用。2.4 TOMCAT技術(shù)簡介Tomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能。Tomcat 是一個(gè)輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選??梢赃@樣認(rèn)為,當(dāng)在一臺機(jī)器上配置好Apache 服務(wù)器,
24、可利用它響應(yīng)對HTML 頁面的訪問請求。實(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、Apache等Web服務(wù)器一樣,具有處理HTML頁面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過,Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。目前Tomcat最新版本為7.0.11 Released
25、 。3. 系統(tǒng)實(shí)現(xiàn)過程3.1 系統(tǒng)總體設(shè)計(jì)圖 實(shí)際上我們采用的SSH設(shè)計(jì)框架是一種MVC設(shè)計(jì)模式。V層:即表現(xiàn)層,我們用JSP,HTML,Struts來實(shí)現(xiàn)。C層:即控制層,也稱為業(yè)務(wù)邏輯層,一般我們通過SSH的Action來實(shí)現(xiàn)。M層則是模型層,這一層負(fù)責(zé)將C層、V層連接在一起,并將數(shù)據(jù)進(jìn)行持久化,持久化一般通過Hibernate來實(shí)現(xiàn)。大概可以將這種設(shè)計(jì)模式歸結(jié)為下圖: 圖13.2 系統(tǒng)開發(fā)方案圖設(shè)計(jì)初始,首先我們是研究本系統(tǒng)開發(fā)所需要用到的數(shù)據(jù)表。經(jīng)過調(diào)研,我們將會了解到系統(tǒng)中所參與的元素,隨后生成數(shù)據(jù)字典,再進(jìn)行合理的結(jié)構(gòu)安排,最終建立數(shù)據(jù)庫及相應(yīng)表。做完這個(gè)步驟,我們就要開始進(jìn)入SS
26、H的開發(fā)了。第一步:將數(shù)據(jù)庫連接到Myeclipse,用Hibernate進(jìn)行逆向工程,將數(shù)據(jù)表添加到項(xiàng)目中。第二步:編寫FORM、ACTION代碼,表單即JSP頁面元素,ACTION的作用則是將我們的業(yè)務(wù)編寫為JAVA代碼。第三步:編寫表現(xiàn)層,即用戶接觸的界面,用JSP、HTML實(shí)現(xiàn)。三個(gè)步驟中,實(shí)際上第一步在大型項(xiàng)目中需要做的更多,第二步第三步一般則是同時(shí)進(jìn)行。這里我們針對的是筆者自己的開發(fā)。三個(gè)步驟詳細(xì)圖如下: 圖23.3 軟硬件要求及安裝1.計(jì)算機(jī)操作系統(tǒng)安裝(使用WIN7)2.編譯軟件安裝:下載安裝文件,安裝Myeclipse 6.0,依照步驟進(jìn)行注冊、工作空間設(shè)置。3.安裝JDK,
27、并設(shè)置系統(tǒng)環(huán)境變量(PATH、CLASSPATH、JAVAHOME)。4.安裝數(shù)據(jù)庫(SQL Server 2000)安裝后應(yīng)注意打上SP3以上的補(bǔ)丁,并且需附加3個(gè)JDBC驅(qū)動程序包:msbase.jar、mssqlserver.jar、msutil.jar5.安裝TOMCAT服務(wù)器6.軟件集成軟件全部安裝完畢后,將Myeclipse與TOMCAT集成;將SQL Server的三個(gè)補(bǔ)丁包復(fù)制到JDK的*jrelibext文件夾下。4. 系統(tǒng)開發(fā)4.1需求分析4.1.1 開發(fā)原因現(xiàn)存的運(yùn)動會管理系統(tǒng),大多是單機(jī)的、封閉的,這樣的系統(tǒng)在嚴(yán)重降低管理效率的同時(shí),也會因?yàn)樘^依靠系統(tǒng)管理員的個(gè)人工作
28、而導(dǎo)致一些信息輸入錯誤,而且,因?yàn)橄到y(tǒng)的封閉性,往往也不利于信息公布,讓參與者能夠第一時(shí)間拿到第一手資料。面對缺乏一款網(wǎng)絡(luò)型運(yùn)動會賽前管理系統(tǒng)的現(xiàn)狀,我們才著手開發(fā)這樣一個(gè)基于JSP的運(yùn)動會賽前管理子系統(tǒng)。4.1.2 功能及使用人員需求本系統(tǒng)主要提供給三類運(yùn)動會參與者使用:管理員、老師、學(xué)生。管理員模塊功能:項(xiàng)目審核、報(bào)名人數(shù)及兼報(bào)人數(shù)統(tǒng)計(jì)、抽簽、分配號碼、預(yù)編排、發(fā)布秩序冊等。老師模塊功能:查詢報(bào)名情況、查看秩序冊、查看抽簽結(jié)果。學(xué)生模塊功能:報(bào)名、取消報(bào)名、查看本系抽簽結(jié)果、查看自己比賽場地安排、查看秩序冊。4.1.3 開發(fā)影響本系統(tǒng)針對高校運(yùn)動會賽前管理而開發(fā)。開發(fā)完成后能夠讓各種參與者
29、通過網(wǎng)絡(luò)參與到運(yùn)動會,極大的方便運(yùn)動會的賽前管理,大大的節(jié)省賽前報(bào)名、籌措的時(shí)間,極具意義。5. 概要設(shè)計(jì)5.1總體設(shè)計(jì)5.1.1 系統(tǒng)基本設(shè)計(jì)(1)需求規(guī)定:程序按人員分為:管理員模塊、教師模塊、學(xué)生模塊;按功能分為:登錄模塊、報(bào)名模塊、抽簽?zāi)K、統(tǒng)計(jì)模塊、號碼分配模塊、預(yù)編排模塊、秩序冊生成模塊。每一類參與者能根據(jù)身份實(shí)現(xiàn)功能模塊中的幾個(gè)。(2)運(yùn)行環(huán)境:系統(tǒng)開發(fā)完成后,以裝有window 2003 servers系統(tǒng)的服務(wù)機(jī)為服務(wù)器端,客戶端則只需要配備IE瀏覽器即可。(3)系統(tǒng)設(shè)計(jì)流程:設(shè)計(jì)、搭建數(shù)據(jù)庫,確定表及表的字段;繪制系統(tǒng)總體設(shè)計(jì)圖、各模塊詳細(xì)流程圖、數(shù)據(jù)流圖,最后編寫代碼。5
30、.1.2 系統(tǒng)設(shè)計(jì)圖(1)系統(tǒng)完整E-R圖 (2)詳細(xì)流程圖(3)系統(tǒng)數(shù)據(jù)流圖5.13 數(shù)據(jù)庫設(shè)計(jì)系統(tǒng)采用的SQL Server2000數(shù)據(jù)庫,按照需求,建立了三張表,如下:表一:用戶表字段名稱值類型說明是否非空賦值類型ID(主鍵)int自動獲取,序號是自增Namevarchar真實(shí)姓名否插入Departmentname(外鍵)varchar所屬系別否插入Ageint年齡否插入Passwordvarchar密碼否插入Game1(外鍵)varchar運(yùn)動員報(bào)名參賽項(xiàng)目一否插入Game2(外鍵)varchar運(yùn)動員報(bào)名參賽項(xiàng)目二否插入Accountint登錄帳號(同學(xué)號)否插入Class_varc
31、har所屬班級否插入haomaint參賽號碼否插入S1varchar比賽一場地否插入S2varchar比賽二場地否插入C1int比賽一場地標(biāo)記否插入C2int比賽二場地標(biāo)記否插入D1int比賽一跑道標(biāo)記否插入D2int比賽二跑道標(biāo)記否插入表二:項(xiàng)目表字段名稱值類型說明是否非空賦值類型ID(主鍵)Int自動獲取,序號是自增Xname(外鍵)varchar項(xiàng)目名稱否插入Placevarchar項(xiàng)目屬性(田賽、徑賽)否插入Changciint項(xiàng)目分場次否插入表三:系別表 字段名稱值類型說明是否非空賦值類型ID(主鍵)int自動獲取,序號是自增Departname(外鍵)varchar系別名否插入Si
32、gnint抽簽號否插入totleint報(bào)名人數(shù)否插入5.2詳細(xì)設(shè)計(jì)5.2.1登錄模塊(1)用戶登錄:系統(tǒng)用戶為預(yù)先在數(shù)據(jù)庫導(dǎo)入用戶,無法通過注冊添加。用戶帳號設(shè)置為與學(xué)號、編號一致。假設(shè)0001-9999為學(xué)生用戶,10000為管理員賬戶,10001-99999為教師賬戶,登錄模塊根據(jù)登錄表單提交的信息,判斷用戶身份,同時(shí)提取數(shù)據(jù)庫信息進(jìn)行帳號密碼核對,核對完成就根據(jù)身份跳轉(zhuǎn)如相應(yīng)界面。5.2.2學(xué)生模塊(2)報(bào)名模塊:程序從項(xiàng)目表提取出項(xiàng)目名稱,用下拉列表的形式顯示給學(xué)生,學(xué)生通過下拉列表選擇欲報(bào)名的項(xiàng)目。提交以后,系統(tǒng)將會查詢Student表中的Game1,Game2字段,如果兩個(gè)字段都有
33、值,則報(bào)名失敗,否則再判斷新輸入值是否與原來存在的某值相同,如果為否,報(bào)名成功。(3)取消報(bào)名模塊:程序從Student表中提取Game1、Game2的值給用戶,用戶通過選擇其中的項(xiàng)目來實(shí)現(xiàn)取消功能。5.2.3教師模塊(4)按班級查詢報(bào)名情況:通過選擇班級,來顯示對應(yīng)班級所有同學(xué)的參與情況。效果如圖:5.2.4管理員模塊(5)審核模塊:程序調(diào)出運(yùn)動員以及他們的報(bào)名情況,管理員通過選擇其中的一個(gè)或者多個(gè)來取消他們的報(bào)名資格。運(yùn)行時(shí),程序通過表單傳入的項(xiàng)目值得及運(yùn)動員名字來清除數(shù)據(jù)庫中的數(shù)據(jù),效果與運(yùn)動員的取消報(bào)名一樣。效果如圖: (6)兼報(bào)查詢:為了更好的了解運(yùn)動員的報(bào)名情況,設(shè)置了這一模塊。本
34、模塊通過橫豎坐標(biāo),來顯示項(xiàng)目間兩兩兼報(bào)的人數(shù)。程序通過循環(huán)查詢到兼報(bào)人數(shù)以后,存入數(shù)組,再通過數(shù)組顯示到JSP頁面上。效果如圖:(7)抽簽?zāi)K:各系部抽簽決定號碼歸屬,是秩序冊生成的一個(gè)重大前奏。通過代碼,生成相應(yīng)個(gè)數(shù)的隨機(jī)數(shù),將這些隨機(jī)數(shù)賦給項(xiàng)目表的sign字段,再將這個(gè)數(shù)組進(jìn)行冒泡排序,將隨機(jī)數(shù)換為順序的1-n的數(shù),再存入項(xiàng)目表,然后顯示于頁面上。測試結(jié)果如下:(8)號碼分配模塊:系統(tǒng)根據(jù)抽簽結(jié)果,將項(xiàng)目按結(jié)果一一取出,然后按系別抽簽順序查詢?nèi)藛T表,統(tǒng)計(jì)人員數(shù)量,分配相應(yīng)號碼。(9)預(yù)編排模塊:當(dāng)所有運(yùn)動員都被分配號碼以后,便可以對運(yùn)動員進(jìn)行預(yù)編排了,特別是對于徑賽項(xiàng)目,預(yù)編排顯得尤為重要
35、。程序首先查詢相應(yīng)徑賽項(xiàng)目的運(yùn)動員參與者,然后對這些參與者按照號碼進(jìn)行冒泡排序,按排序結(jié)果進(jìn)行分配相應(yīng)道次,號碼靠前的運(yùn)動員,分配的跑道也相對有利。(10)秩序冊生成模塊:當(dāng)所有預(yù)編排已經(jīng)完成,便可以生成秩序冊了,這是賽前管理子系統(tǒng)的最后一步。秩序冊分為田賽跟徑賽兩塊,相應(yīng)的有兩種顯示方式,測試結(jié)果如下:5.2.5 測試結(jié)果分析本系統(tǒng)經(jīng)過反復(fù)測試,本程序在功能上已經(jīng)基本完成,與設(shè)計(jì)任務(wù)書基本一致。模塊與模塊之間耦合均不大,缺少某一模塊,另外的模塊也能夠順利運(yùn)行。這很有利于將來進(jìn)行維護(hù)、更改。算法方面,由于個(gè)人思維能力有限,如:抽簽、分配號碼、生成秩序冊等算法所耗費(fèi)資源較大,反映時(shí)間也較慢。模塊
36、結(jié)構(gòu)方面,由于自身并沒有類似實(shí)例的開發(fā),對運(yùn)動會流程的了解也較少,可能功能與功能之間存在較大獨(dú)立性,沒有整體感。界面比較缺乏友好,由于時(shí)間問題得不到很好的完善??傊鞠到y(tǒng)目前只能說是粗糙版本,雖然功能相當(dāng)齊全,但是卻缺乏美感,與實(shí)際投入使用的差距也較大。然而我認(rèn)為,這些問題只是修飾性問題,我相信,只要給我以足夠的時(shí)間,我一定能夠開發(fā)出一個(gè)能夠投入使用的,較完善的運(yùn)動會賽前管理子系統(tǒng)。6.總結(jié)畢業(yè)設(shè)計(jì)階段是一個(gè)大學(xué)生畢業(yè)前必須經(jīng)歷的階段,它不僅是檢驗(yàn)大學(xué)生四年大學(xué)的學(xué)習(xí)成果,也是大學(xué)生走出校園后,向社會證明自己的重要憑證。畢業(yè)設(shè)計(jì)考驗(yàn)的是大學(xué)生的綜合能力。很多人選擇的畢業(yè)設(shè)計(jì)課題是自己從未遇到
37、過的,設(shè)計(jì)手段也是自己從未使用過的,設(shè)計(jì)的知識是自己從未學(xué)過的。這時(shí)候,我們必須很快的去學(xué)習(xí)一項(xiàng)新的技術(shù),甚至了解一個(gè)新的領(lǐng)域。這就需要大學(xué)生需要極強(qiáng)大的自學(xué)、適應(yīng)能力。能夠很快的將一門新技術(shù)上手并投之運(yùn)用,這是現(xiàn)代企業(yè)極需要的人才,也是大學(xué)生必備的能力。課題設(shè)計(jì)中,我們會遇到不少困難。新的知識點(diǎn)在不斷出現(xiàn),新的錯誤也隨之而來,而我們應(yīng)該如何處理這些錯誤呢?這體現(xiàn)的是大學(xué)生處理問題的能力。去圖書館借資料、上網(wǎng)發(fā)布論壇、聯(lián)系老師、同學(xué)尋求幫助,這些都是解決問題的途徑。須知,個(gè)人的力量始終有限,當(dāng)我們遇到自己沒法解決的問題時(shí),應(yīng)該虛心求教他人,當(dāng)然,有迎難而上的決心,在困難面前決不退縮也是我們必備
38、的。設(shè)計(jì)是一個(gè)工程,一個(gè)工程的完成當(dāng)然需要有一定的步驟。這考驗(yàn)到我們處理事情的能力。并不是拿到一項(xiàng)任務(wù)就不顧一切埋頭苦干,需知:磨刀不誤砍柴工!在開始畢業(yè)設(shè)計(jì)之前,我們需要做詳細(xì)的課題調(diào)查。設(shè)計(jì)開始時(shí),我們應(yīng)該明確自己需要做什么,設(shè)計(jì)分幾個(gè)步驟,應(yīng)該分配多少時(shí)間完成各個(gè)步驟,而不是做下去的時(shí)候,前后沖突,問題疊出,最后做的一塌糊涂,這也是我們走出社會后接受一項(xiàng)任務(wù)或者工程的大忌。許多人曾經(jīng)這樣認(rèn)為:大學(xué)學(xué)不到多少有用的東西。通過這次設(shè)計(jì),我明白了這句話是大錯特錯。大學(xué)四年,我們最主要學(xué)的不是知識,而是能力!自學(xué)的能力、處理困難的能力、交流能力、統(tǒng)籌能力。畢業(yè)設(shè)計(jì)歷經(jīng)三個(gè)月,最終是完成了。想想三
39、個(gè)月前拿到課題時(shí)的茫然,以及三個(gè)月后現(xiàn)在完成課題后對自己的信心與肯定,它的必要性不言而喻!致謝語幾經(jīng)努力終于完成了本次畢業(yè)設(shè)計(jì),首先非常感謝我的指導(dǎo)老師梁淘導(dǎo)師,在梁淘導(dǎo)師的鼎力協(xié)助以及嚴(yán)格的監(jiān)督之下,本次設(shè)計(jì)才得以順利完成,梁老師嚴(yán)謹(jǐn)?shù)淖黠L(fēng)給我留下了很深的印象。同時(shí)也要感謝其它給予我們關(guān)心和幫助的老師們,雖然他們并沒有直接指導(dǎo)我們,但在我們畢業(yè)設(shè)計(jì)過程中,為我們排憂解難,給我們提供了很大便利,使我可以專心地完成畢業(yè)設(shè)計(jì)。最后還要感謝一下在工程讀書以來所有指導(dǎo)我的老師們,在他們悉心的教導(dǎo)之下,我們即將成為對社會有用的人才,使我可以跨入社會,為國家做貢獻(xiàn)。參考文獻(xiàn)1王城君,尚武網(wǎng)頁設(shè)計(jì)三合一實(shí)用教程.北京:清華大學(xué)出版社,20082耿祥義,張躍平.JSP實(shí)用教程.北京:清華大學(xué)出版社,20073高洪巖.至簡SSH:精通JAVA WEB實(shí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024飼料行業(yè)市場調(diào)研與數(shù)據(jù)分析服務(wù)合同范本3篇
- 2024校服采購合同模板
- 2025年度電網(wǎng)接入與轉(zhuǎn)供電服務(wù)合同3篇
- 2024版小產(chǎn)權(quán)房購房合同范本
- 第三章 遺傳學(xué)課件
- 商湯科技:2024大模型賦能下的AI2.0數(shù)字人平臺白皮書
- 2024年公務(wù)員考試杭州市拱墅區(qū)《行政職業(yè)能力測驗(yàn)》考前沖刺試卷含解析
- 2024物品寄售合作合同協(xié)議書范本模板
- 二零二五年度商業(yè)房購房優(yōu)惠政策合同2篇
- 2025年云南曲靖市富源縣土地投資開發(fā)有限責(zé)任公司招聘筆試參考題庫附帶答案詳解
- 《工業(yè)機(jī)器人現(xiàn)場編程》課件-任務(wù)3.涂膠機(jī)器人工作站
- 預(yù)應(yīng)力空心板計(jì)算
- 2024版珠寶鑒定技師勞動合同范本3篇
- 中國能源展望2060(2025年版)
- 2024年年第三方檢測行業(yè)分析報(bào)告及未來五至十年行業(yè)發(fā)展報(bào)告
- 李四光《看看我們的地球》原文閱讀
- GA/T 1740.2-2024旅游景區(qū)安全防范要求第2部分:湖泊型
- 華為公司戰(zhàn)略發(fā)展規(guī)劃匯報(bào)
- 2025年社區(qū)工作者考試試題庫及答案
- 2025蛇年春節(jié)放假通知假期溫馨提示模板
- 采購經(jīng)理年終述職報(bào)告
評論
0/150
提交評論