工作室管理系統(tǒng)畢業(yè)設(shè)計(jì)說明書_第1頁
已閱讀1頁,還剩66頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  21世紀(jì)的發(fā)展已經(jīng)很大程度的依賴于計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,隨著計(jì)算機(jī)網(wǎng)絡(luò)的快速發(fā)展而帶來的一系列的基于網(wǎng)絡(luò)的事物的飛速增長和世界信息化步伐的加快,于是越來越多的企事業(yè)單位包括各類院校都需要一個(gè)自己的信息發(fā)布和資源共享的平臺。為了滿足這個(gè)需求,我們開發(fā)此工作室管理系統(tǒng),用于軟件學(xué)院教學(xué)和師生日常交流。</p><

2、;p>  系統(tǒng)基于B/S的開發(fā)模式,前臺使用JSP技術(shù)開發(fā)實(shí)現(xiàn),后臺使用MySQL5.0數(shù)據(jù)庫軟件管理,并采用Hibernate框架進(jìn)行數(shù)據(jù)庫連接。系統(tǒng)主要分為信息展示、工作室日常管理、系統(tǒng)管理、互動(dòng)交流四大模塊。</p><p>  本文介紹了在Struts下應(yīng)用MVC分層思想:模型層、視圖層、控制層,在基于JSP頁面、MySQL數(shù)據(jù)庫及Resin服務(wù)器端的基礎(chǔ)上開發(fā)的軟件學(xué)院工作室管理系統(tǒng)。系統(tǒng)地闡述該

3、管理系統(tǒng)開發(fā)的分析及設(shè)計(jì)過程,包括數(shù)據(jù)流圖,功能分析設(shè)計(jì),數(shù)據(jù)庫設(shè)計(jì)等;詳細(xì)描述了本人負(fù)責(zé)模塊的實(shí)現(xiàn)過程,并對本人在系統(tǒng)模塊中所使用關(guān)鍵技術(shù)的實(shí)現(xiàn)進(jìn)行了全面的介紹。</p><p>  【關(guān)鍵字】工作室管理系統(tǒng)、分層思想、日常交流</p><p>  【Abstract】</p><p>  The development of the 21st century h

4、as a large extent dependent on the development of computer networks.With the rapid development of computer network, a number of network-based things grow rapidly and the pace of world's informanization is acceleratin

5、g,so there are more and more enterprise units including various institutions need its own information and resource sharing platform. To meet this demand, we have developed this system for regular conmunication between te

6、achers and students of the </p><p>  The front of the system based on B/S pattern uses JSP to achieve while the background uses MySQL5.0 database software to manage, and Hibernate framework is used for datab

7、ase connection. The System consists four main modules of infomation publishing,regular management of the studio、system management and conmunication between each other.</p><p>  This paper introduces MVC dela

8、mination thoughts under the Struts: model layer, view layer, control layer,and the Studio Management System Of College Of Software System Based On J2EE Technology using the technology of JSP ,MySQL database and Resin ser

9、ver,also it systematic describes the development of the Studio Management System and the process of design ,which includes the data flow diagram ,functional analysis and design ,and the database design and so on.It detai

10、ledly describes the realizatio</p><p>  [Keywords] the studio management system, delamination thoughts, conmunication between each other目 錄</p><p><b>  第一章 緒論1</b></p>&

11、lt;p><b>  1.1 引言1</b></p><p>  1.2 文本的組織1</p><p>  1.3 本人做的主要工作2</p><p>  第二章 系統(tǒng)開發(fā)相關(guān)技術(shù)概述3</p><p>  2.1 B/S開發(fā)模式3</p><p>  2.2 JSP技術(shù)概述3&

12、lt;/p><p>  2.2.1 什么是JSP技術(shù)3</p><p>  2.2.2 JSP技術(shù)的優(yōu)點(diǎn)4</p><p>  2.3 struts技術(shù)4</p><p>  2.3.1 struts與MVC4</p><p>  2.3.2 struts的工作原理5</p><p>  

13、2.3 數(shù)據(jù)庫連接池技術(shù)6</p><p>  2.4 MySQL簡介7</p><p>  2.5 Hibernate簡介7</p><p>  2.6 Lucene簡介8</p><p>  2.7 自定義標(biāo)簽簡介9</p><p>  2.4.1 自定義標(biāo)簽的基本概念9</p><

14、p>  2.4.2 自定義標(biāo)簽的格式10</p><p>  第三章 系統(tǒng)的分析與設(shè)計(jì)11</p><p>  3.1 系統(tǒng)的實(shí)現(xiàn)目標(biāo)11</p><p>  3.2 系統(tǒng)分析11</p><p>  3.2.1 系統(tǒng)功能分析11</p><p>  3.2.2 系統(tǒng)流程分析13</p>

15、<p>  3.2.3 系統(tǒng)數(shù)據(jù)流分析14</p><p>  3.3 系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)14</p><p>  3.3.1 系統(tǒng)E-R圖14</p><p>  3.3.2 數(shù)據(jù)庫表設(shè)計(jì)15</p><p>  第四章 模塊的實(shí)現(xiàn)27</p><p>  4.1 MVC分層結(jié)構(gòu)27</p&

16、gt;<p>  4.2 信息展示模塊30</p><p>  4.3 日常管理模塊34</p><p>  4.4 系統(tǒng)管理模塊40</p><p>  4.5 互動(dòng)交流模塊43</p><p>  4.6 系統(tǒng)模塊中關(guān)鍵技術(shù)的實(shí)現(xiàn)44</p><p>  4.6.1 Struts框架的使用(

17、多模塊、多配置文件)44</p><p>  4.6.2 Hibernate的使用45</p><p>  4.6.3 Struts[Tiles]模板46</p><p>  4.6.4 Struts[Validator]驗(yàn)證47</p><p>  4.6.5 Tags 自定義標(biāo)簽48</p><p>  

18、4.6.6 DisplayTag標(biāo)簽庫50</p><p>  4.6.7 JSTL標(biāo)簽庫51</p><p>  4.6.8 AJAX異步獲取數(shù)據(jù)52</p><p>  4.6.9 FreeMarker模板53</p><p>  4.6.10 Lucene全文索引54</p><p>  4.6.11 

19、庖丁解牛中文分詞包54</p><p>  4.6.12 數(shù)據(jù)緩存技術(shù)55</p><p>  4.6.13 Proxool數(shù)據(jù)庫連接池技術(shù)55</p><p>  4.6.14 分頁技術(shù)56</p><p>  4.6.15 網(wǎng)址重寫技術(shù)(Apache Mod Rewrite)57</p><p>  4.

20、6.16 特殊Filter的使用58</p><p>  4.6.17 關(guān)于系統(tǒng)安全的技術(shù)58</p><p><b>  第五章 總結(jié)60</b></p><p>  5.1 系統(tǒng)總結(jié)60</p><p>  5.2 個(gè)人總結(jié)60</p><p>  5.3 下一步工作61</

21、p><p><b>  參考文獻(xiàn)62</b></p><p><b>  致謝63</b></p><p><b>  緒論</b></p><p><b>  1.1 引言 </b></p><p>  軟件學(xué)院工作室管理中心是以

22、方便同學(xué)及導(dǎo)師為宗旨設(shè)計(jì)的,讓管理員、導(dǎo)師通過網(wǎng)絡(luò),方便的了解工作室同學(xué)的狀況。對于即將進(jìn)入工作室學(xué)習(xí)的同學(xué),可以通過工作事管理中心,進(jìn)行工作室學(xué)習(xí)方向的確定,這就避免了同學(xué)選擇方向時(shí),因工作室已滿而不得不轉(zhuǎn)方向。對于已經(jīng)在工作室學(xué)習(xí)的同學(xué),導(dǎo)師可以通過本簽到系統(tǒng),方便的了解同學(xué)的出勤狀況,歷史缺到次數(shù)。簡單的新聞系統(tǒng),使同學(xué)們能夠及時(shí)了解工作室最新動(dòng)向。通過站內(nèi)短信,同工作室,不同工作室之間都可以進(jìn)行短信交流,也可以進(jìn)行短信群發(fā)。工作

23、室管理中心提供了一個(gè)討論區(qū),同學(xué)可以就最新的帖子進(jìn)行評論,也可以和導(dǎo)師交流最新技術(shù)。個(gè)人日志功能免除了同學(xué)手寫日志的苦惱,日志直接提交至導(dǎo)師,導(dǎo)師也可以及時(shí)了解同學(xué)當(dāng)天的學(xué)習(xí)進(jìn)展。網(wǎng)站鏈接功能則是由導(dǎo)師或同學(xué)添加一些認(rèn)為好的學(xué)習(xí)網(wǎng)站,這樣能更好的進(jìn)行知識交流。</p><p>  在實(shí)際使用中,本系統(tǒng)可以發(fā)揮互聯(lián)網(wǎng)的優(yōu)勢、在網(wǎng)絡(luò)上建立一個(gè)工作室管理中心,使得工作室管理更合理。讓導(dǎo)師更清楚的掌握學(xué)生的出勤狀況及學(xué)習(xí)

24、進(jìn)度。工作室選向更人性化,讓學(xué)院更好、更早的進(jìn)行安排。</p><p><b>  1.2 文本的組織</b></p><p>  論文主要介紹了工作室管理系統(tǒng)開發(fā)的分析過程、設(shè)計(jì)思想和功能實(shí)現(xiàn),并詳細(xì)闡述了系統(tǒng)中關(guān)鍵技術(shù)的實(shí)現(xiàn)。</p><p>  第一章簡述了系統(tǒng)的開發(fā)背景、特點(diǎn)以及本人的主要工作。</p><p>

25、  第二章簡述了系統(tǒng)開發(fā)的相關(guān)技術(shù)。</p><p>  第三章闡述了系統(tǒng)開發(fā)的分析和設(shè)計(jì)過程,包括系統(tǒng)的數(shù)據(jù)流分析、數(shù)據(jù)庫設(shè)計(jì)等。</p><p>  第四章詳細(xì)描述了軟件學(xué)院工作室管理系統(tǒng)的過程中所使用的關(guān)鍵技術(shù)和系統(tǒng)部分功能的實(shí)現(xiàn)。</p><p>  1.3 本人做的主要工作</p><p>  在軟件學(xué)院工作室管理系統(tǒng)的開發(fā)過程中,

26、我參與并完成了從需求分析、概要設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)到系統(tǒng)功能劃分、最終實(shí)現(xiàn)的一系列工作。</p><p>  本人在系統(tǒng)中主完成全部模塊,包括新聞公告、工作室管理、論壇、問答系統(tǒng)、考勤管理、榮譽(yù)管理、選方向管理、資源管理等。</p><p>  系統(tǒng)開發(fā)相關(guān)技術(shù)概述</p><p>  2.1 B/S開發(fā)模式 </p><p>  目前較流行的網(wǎng)

27、絡(luò)開發(fā)模式分別是Client/Server模式與Browser/Client模式。 C/S模式主要是在以局域網(wǎng)為基礎(chǔ)的環(huán)境下展開應(yīng)用的,它受到地域的限制。而B/S模式通過Internet進(jìn)行通信,可以不受地域的限制,但是它不能夠進(jìn)行聯(lián)機(jī)事務(wù)處理,并且在大量數(shù)據(jù)處理的情況下,速度較慢。從目前的開發(fā)技術(shù)來看,Browser端作為信息收集源,特別是大量的數(shù)據(jù)錄入工作還不能完全取代Client端的用戶界面。在這方面,Client端的各種開發(fā)工具

28、的功能更加強(qiáng)大也更加靈活,而Browser端卻由其功能結(jié)構(gòu)的限定過于“瘦小”。基于B/S與C/S兩種模式的比較下,該系統(tǒng)采用的系統(tǒng)體系結(jié)構(gòu)為B/S結(jié)構(gòu),克服了C/S體系結(jié)構(gòu)的缺點(diǎn),使系統(tǒng)跨平臺,跨語言,高度移植性充分體現(xiàn)出來了。同時(shí),使用該體系結(jié)構(gòu)開發(fā)本系統(tǒng)具有以下兩個(gè)優(yōu)點(diǎn)[1]:</p><p>  1、較低的應(yīng)用開發(fā)及管理成本?;贐/S技術(shù)開發(fā)的應(yīng)用系統(tǒng),安裝、配置和升級主要在服務(wù)器上進(jìn)行,在用戶計(jì)算機(jī)上通

29、常只需要安裝通用的瀏覽器軟件即可,可以支持客戶端跨操作系統(tǒng)平臺的使用。由于瀏覽器軟件常常是客戶機(jī)操作系統(tǒng)的默認(rèn)安裝內(nèi)容,不需要管理員為每個(gè)不同的應(yīng)用維護(hù)客戶端系統(tǒng)。</p><p>  2、應(yīng)用推廣成本低。一旦用戶掌握了瀏覽器的使用,就基本掌握了各種不同應(yīng)用系統(tǒng)的使用。</p><p>  2.2 JSP技術(shù)概述</p><p>  2.2.1 什么是JSP技術(shù)&l

30、t;/p><p>  JSP(JAVA SERVER PAGES)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。它由HTML代碼和嵌入其中的JAVA代碼所組成。服務(wù)器在頁面被客戶端請求以后對這些JAVA代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。JSP具備了JAVA技術(shù)的簡單易用、完全面向?qū)ο?、具有平臺無關(guān)性且安全可靠,其在動(dòng)態(tài)網(wǎng)頁的建設(shè)中有其強(qiáng)大而特別的功

31、能,下文將簡單介紹其優(yōu)點(diǎn)[2] [3] [4] [5]。</p><p>  2.2.2 JSP技術(shù)的優(yōu)點(diǎn)</p><p>  第一、將內(nèi)容的生成和顯示進(jìn)行分離。 </p><p>  使用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)識來設(shè)計(jì)和格式化最終頁面。使用JSP標(biāo)識或者小腳本來生成頁面上的動(dòng)態(tài)內(nèi)容(內(nèi)容是根據(jù)請求來變化的,例如查詢指定學(xué)院的專業(yè)

32、或者某一位學(xué)生參加的文藝活動(dòng))。Web管理人員和頁面設(shè)計(jì)者,能夠編輯和使用JSP頁面,而不影響內(nèi)容的生成。 </p><p>  第二、生成可重用的組件。</p><p>  絕大多數(shù)JSP頁面依賴于可重用的,跨平臺的組件(JavaBeans或者Enterprise JavaBeansTM組件)來執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件

33、為更多的使用者或者客戶團(tuán)體所使用。</p><p>  第三、采用標(biāo)識簡化頁面開發(fā)。 </p><p>  Web頁面開發(fā)人員不會都是熟悉腳本語言的編程人員。但JavaServer Page技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)識中進(jìn)行動(dòng)態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識能夠訪問和實(shí)例化JavaBeans組件,設(shè)置或者檢索組件屬性,下載Applet,以及執(zhí)行用其他

34、方法更難于編碼和耗時(shí)的功能。 </p><p>  通過開發(fā)定制化標(biāo)識庫,JSP技術(shù)是可以擴(kuò)展的。以上這些使得Web頁面開發(fā)人員能夠使用熟悉的工具來執(zhí)行特定功能。 </p><p>  第四、提供所有Servlets的功能。 </p><p>  與SERVLETS相比,JSP能提供所有SERVLETS功能,但它比用println書寫和修改HTML更方便。此外,可以

35、更明確的進(jìn)行分工,WEB頁面設(shè)計(jì)人員編寫HTML,只需要留出地方讓SERVLETS程序員插入動(dòng)態(tài)部分即可。 </p><p>  2.3 struts技術(shù) </p><p>  2.3.1 struts與MVC</p><p>  JSP 標(biāo)記只解決了部分問題,還得處理驗(yàn)證、流程控制和更新應(yīng)用程序的狀態(tài)等問題。MVC(模型-視圖-控制器)通過將問題分為三個(gè)類別來幫助

36、解決單一模塊方法所遇到的某些問題:[6] [7]</p><p>  Model(模型)模型包含應(yīng)用程序的核心功能。模型封裝了應(yīng)用程序的狀態(tài)。有時(shí)它包含的唯一功能就是狀態(tài)。它對視圖或控制器一無所知。</p><p>  View(視圖)視圖提供模型的表示。它是應(yīng)用程序的外觀。視圖可以訪問模型的讀方法,但不能訪問寫方法。此外,它對控制器一無所知。當(dāng)更改模型時(shí),視圖應(yīng)得到通知。</p

37、><p>  Controller(控制器)控制器對用戶的輸入作出反應(yīng)。它創(chuàng)建并設(shè)置模型。 </p><p>  2.3.2 struts的工作原理</p><p>  MVC即Model-View-Controller的縮寫,是一種常用的設(shè)計(jì)模式。MVC 減弱了業(yè)務(wù)邏輯接口和數(shù)據(jù)接口之間的耦合,以及讓視圖層更富于變化。</p><p>  S

38、truts 是MVC的一種實(shí)現(xiàn),它將 Servlet和 JSP 標(biāo)記(屬于 J2EE 規(guī)范)用作實(shí)現(xiàn)的一部分。Struts繼承了MVC的各項(xiàng)特性,并根據(jù)J2EE的特點(diǎn),做了相應(yīng)的變化與擴(kuò)展。</p><p>  控制:主要有一個(gè)XML文件Struts-config.xml,與之相關(guān)聯(lián)的是Controller,在Struts中,承擔(dān)MVC中Controller角色的是一個(gè)Servlet,叫ActionServlet

39、。ActionServlet是一個(gè)通用的控制組件。這個(gè)控制組件提供了處理所有發(fā)送到Struts的HTTP請求的入口點(diǎn)。它截取和分發(fā)這些請求到相應(yīng)的動(dòng)作類(這些動(dòng)作類都是Action類的子類)。另外控制組件也負(fù)責(zé)用相應(yīng)的請求參數(shù)填充 Action From(通常稱之為FromBean),并傳給動(dòng)作類(通常稱之為ActionBean)。動(dòng)作類實(shí)現(xiàn)核心商業(yè)邏輯,它可以訪問java bean 或調(diào)用EJB。最后動(dòng)作類把控制權(quán)傳給后續(xù)的JSP 文

40、件,后者生成視圖。所有這些控制邏輯利用Struts-config.xml文件來配置。 </p><p>  視圖:主要由JSP生成頁面完成視圖,Struts提供豐富的JSP 標(biāo)簽庫: Html,Bean,Logic,Template等,這有利于分開表現(xiàn)邏輯和程序邏輯。 </p><p>  模型:模型以一個(gè)或多個(gè)java bean的形式存在。這些bean分為三類:Action Form、A

41、ction、JavaBean or EJB。Action Form通常稱之為FormBean,封裝了來自于Client的用戶請求信息,如表單信息。Action通常稱之為ActionBean,獲取從ActionSevlet傳來的FormBean,取出FormBean中的相關(guān)信息,并做出相關(guān)的處理,一般是調(diào)用Java Bean或EJB等。 </p><p>  流程:在Struts中,用戶的請求一般以*.do作為請求

42、服務(wù)名,所有的*.do請求均被指向ActionSevlet,ActionSevlet根據(jù)Struts-config.xml中的配置信息,將用戶請求封裝成一個(gè)指定名稱的FormBean,并將此FormBean傳至指定名稱的ActionBean,由ActionBean完成相應(yīng)的業(yè)務(wù)操作,如文件操作,數(shù)據(jù)庫操作等。每一個(gè)*.do均有對應(yīng)的FormBean名稱和ActionBean名稱,這些在Struts-config.xml中配置。 <

43、/p><p>  核心:Struts的核心是ActionSevlet,ActionSevlet的核心是Struts-config.xml。</p><p>  2.3 數(shù)據(jù)庫連接池技術(shù) </p><p>  數(shù)據(jù)庫連接的建立及關(guān)閉對系統(tǒng)而言是耗費(fèi)系統(tǒng)資源的操作,在多層結(jié)構(gòu)的應(yīng)用環(huán)境中,這種耗費(fèi)資源的動(dòng)作對系統(tǒng)的性能影響尤為明顯。在傳統(tǒng)的數(shù)據(jù)庫連接方式 (指通過Drive

44、rManager)中,一個(gè)數(shù)據(jù)庫連接對象均對應(yīng)一個(gè)物理數(shù)據(jù)庫連接,每次操作都打開一個(gè)物理連接,使用完都關(guān)閉連接,這樣造成系統(tǒng)的 性能低下。 </p><p>  數(shù)據(jù)庫連接池的解決方案是在應(yīng)用程序啟動(dòng)時(shí)建立足夠的數(shù)據(jù)庫連接,并講這些連接組成一個(gè)連接池(簡單說:在一個(gè)“池”里放了好多半成品的數(shù)據(jù)庫聯(lián)接對象),由應(yīng)用程序動(dòng)態(tài)地對池中的連接進(jìn)行申請、使用和釋放。對于 多于連接池中連接數(shù)的并發(fā)請求,應(yīng)該在請求隊(duì)列中排隊(duì)等

45、待。并且應(yīng)用程序可以根據(jù)池中連接的使用率,動(dòng)態(tài)增加或減少池中的連接數(shù)。 </p><p>  連接池技術(shù)盡可能多地重用了消耗內(nèi)存地資源,大大節(jié)省了內(nèi)存,提高了服務(wù)器地服務(wù)效率,能夠支持更多的客戶服務(wù)。通過使用連接池,將大大提高程序運(yùn)行效率,同時(shí),我們可以通過其自身的管理機(jī)制來監(jiān)視數(shù)據(jù)庫連接的數(shù)量、使用情況等。</p><p>  數(shù)據(jù)庫連接是一種關(guān)鍵的有限的昂貴的資源,這一點(diǎn)在多用戶的網(wǎng)頁

46、應(yīng)用程序中體現(xiàn)得尤為突出。對數(shù)據(jù)庫連接的管理能顯著影響到整個(gè)應(yīng)用程序的伸縮性和健壯性,影響到程序的性能指標(biāo)。數(shù)據(jù)庫連接池正是針對這個(gè)問題提出來的。</p><p>  數(shù)據(jù)庫連接池負(fù)責(zé)分配、管理和釋放數(shù)據(jù)庫連接,它允許應(yīng)用程序重復(fù)使用一個(gè)現(xiàn)有的數(shù)據(jù)庫連接,而再不是重新建立一個(gè);釋放空閑時(shí)間超過最大空閑時(shí)間的數(shù)據(jù)庫連接來避免因?yàn)闆]有釋放數(shù)據(jù)庫連接而引起的數(shù)據(jù)庫連接遺漏。這項(xiàng)技術(shù)能明顯提高對數(shù)據(jù)庫操作的性能。 <

47、;/p><p>  數(shù)據(jù)庫連接池在初始化時(shí)將創(chuàng)建一定數(shù)量的數(shù)據(jù)庫連接放到連接池中,這些數(shù)據(jù)庫連接的數(shù)量是由最小數(shù)據(jù)庫連接數(shù)來設(shè)定的。無論這些數(shù)據(jù)庫連接是否被 使用,連接池都將一直保證至少擁有這么多的連接數(shù)量。連接池的最大數(shù)據(jù)庫連接數(shù)量限定了這個(gè)連接池能占有的最大連接數(shù),當(dāng)應(yīng)用程序向連接池請求的連接數(shù)超 過最大連接數(shù)量時(shí),這些請求將被加入到等待隊(duì)列中。數(shù)據(jù)庫連接池的最小連接數(shù)和最大連接數(shù)的設(shè)置要考慮到下列幾個(gè)因素[8]

48、 [9]:</p><p>  1) 最小連接數(shù)是連接池一直保持的數(shù)據(jù)庫連接,所以如果應(yīng)用程序?qū)?shù)據(jù)庫連接的使用量不大,將會有大量的數(shù)據(jù)庫連接資源被浪費(fèi).</p><p>  2) 最大連接數(shù)是連接池能申請的最大連接數(shù),如果數(shù)據(jù)庫連接請求超過此數(shù),后面的數(shù)據(jù)庫連接請求將被加入到等待隊(duì)列中,這會影響之后的數(shù)據(jù)庫操作.</p><p>  3) 如果最小連接數(shù)與最大連接

49、數(shù)相差太大,那么最先的連接請求將會獲利,之后超過最小連接數(shù)量的連接請求等價(jià)于建立一個(gè)新的數(shù)據(jù)庫連接。不過,這些大于最小連接數(shù)的數(shù)據(jù)庫連接在使用完不會馬上被釋放,它將被放到連接池中等待重復(fù)使用或是空閑超時(shí)后被釋放。</p><p>  2.4 MySQL簡介 </p><p>  MySQL是一個(gè)真正的多用戶、多線程SQL數(shù)據(jù)庫服務(wù)器。SQL(結(jié)構(gòu)化查詢語言)是世界上最流行的和標(biāo)準(zhǔn)化的數(shù)據(jù)庫

50、語言。MySQL是以一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),它由一個(gè)服務(wù)器守護(hù)程序mysqld和很多不同的客戶程序和庫組成。</p><p>  SQL是一種標(biāo)準(zhǔn)化的語言,它使得存儲、更新和存取信息更容易。例如,你能用SQL語言為一個(gè)網(wǎng)站檢索產(chǎn)品信息及存儲顧客信息,同時(shí)MySQL也足夠快和靈活以允許你存儲記錄文件和圖像。</p><p>  MySQL 主要目標(biāo)是快速、健壯和易用。最初是因?yàn)槲覀冃枰?/p>

51、這樣一個(gè)SQL服務(wù)器,它能處理與任何可不昂貴硬件平臺上提供數(shù)據(jù)庫的廠家在一個(gè)數(shù)量級上的大型數(shù)據(jù)庫,但速度更快,MySQL就開發(fā)出來。自1996年以來,我們一直都在使用MySQL,其環(huán)境有超過 40 個(gè)數(shù)據(jù)庫,包含 10,000個(gè)表,其中500多個(gè)表超過7百萬行,這大約有100 個(gè)吉字節(jié)(GB)的關(guān)鍵應(yīng)用數(shù)據(jù)。</p><p>  MySQL建立的基礎(chǔ)是業(yè)已用在高要求的生產(chǎn)環(huán)境多年的一套實(shí)用例程。盡管MySQL仍在

52、開發(fā)中,但它已經(jīng)提供一個(gè)豐富和極其有用的功能集。</p><p>  2.5 Hibernate簡介 </p><p>  Hibernate是一個(gè)開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/

53、JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。</p><p>  Hibernate的核心接口一共有5個(gè),分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個(gè)核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對這

54、五的核心接口分別加以介紹。</p><p>  ·Session接口:Session接口負(fù)責(zé)執(zhí)行被持久化對象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時(shí),Hibernate的session不同于JSP應(yīng)用中的HttpSession。這里當(dāng)使用session這個(gè)術(shù)語時(shí),其實(shí)指的是Hibernate中的session

55、,而以后會將HttpSesion對象稱為用戶session。</p><p>  ·SessionFactory接口:SessionFactroy接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲源的代理,并負(fù)責(zé)創(chuàng)建Session對象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè)SessionFactory就夠,當(dāng)需要操作多個(gè)數(shù)據(jù)庫時(shí),

56、可以為每個(gè)數(shù)據(jù)庫指定一個(gè)SessionFactory。</p><p>  ·Configuration接口:Configuration接口負(fù)責(zé)配置并啟動(dòng)Hibernate,創(chuàng)建SessionFactory對象。在Hibernate的啟動(dòng)的過程中,Configuration類的實(shí)例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory對象。</p><p>  &#

57、183;Transaction接口:Transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開發(fā)人員也可以設(shè)計(jì)編寫自己的底層事務(wù)處理代碼。</p><p>  ·Query和Criteria接口:Query和Criteria接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用HQL語言或SQL語句兩種表達(dá)方式。</p><p>  2.6 Lucene簡介 </p><p

58、>  Lucene是apache軟件基金會[4] jakarta項(xiàng)目組的一個(gè)子項(xiàng)目,是一個(gè)開放源代碼的全文檢索引擎工具包,即它不是一個(gè)完整的全文檢索引擎,而是一個(gè)全文檢索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎,部分文本分析引擎(英文與德文兩種西方語言)。Lucene的目的是為軟件開發(fā)人員提供一個(gè)簡單易用的工具包,以方便的在目標(biāo)系統(tǒng)中實(shí)現(xiàn)全文檢索的功能,或者是以此為基礎(chǔ)建立起完整的全文檢索引擎。</p><p

59、>  作為一個(gè)開放源代碼項(xiàng)目,Lucene從問世之后,引發(fā)了開放源代碼社群的巨大反響,程序員們不僅使用它構(gòu)建具體的全文檢索應(yīng)用,而且將之集成到各種系統(tǒng)軟件中去,以及構(gòu)建Web應(yīng)用,甚至某些商業(yè)軟件也采用了Lucene作為其內(nèi)部全文檢索子系統(tǒng)的核心。apache軟件基金會的網(wǎng)站使用了Lucene作為全文檢索的引擎,IBM的開源軟件eclipse[9]的2.1版本中也采用了Lucene作為幫助子系統(tǒng)的全文索引引擎,相應(yīng)的IBM的商業(yè)軟

60、件Web Sphere[10]中也采用了Lucene。Lucene以其開放源代碼的特性、優(yōu)異的索引結(jié)構(gòu)、良好的系統(tǒng)架構(gòu)獲得了越來越多的應(yīng)用。</p><p>  Lucene是一個(gè)高性能、可伸縮的信息搜索(IR)庫。它使你可以為你的應(yīng)用程序添加索引和搜索能力。Lucene是用java實(shí)現(xiàn)的成熟的、免費(fèi)的開源項(xiàng)目,是著名的Apache Jakarta大家庭的一員,并且基于在Apache軟件許可 [ASF, Lice

61、nse]。同樣,Lucene是當(dāng)前與近幾年內(nèi)非常流行的免費(fèi)的Java信息搜索(IR)庫。</p><p>  Lucene作為一個(gè)全文檢索引擎,其具有如下突出的優(yōu)點(diǎn):</p><p> ?。?)索引文件格式獨(dú)立于應(yīng)用平臺。Lucene定義了一套以8位字節(jié)為基礎(chǔ)的索引文件格式,使得兼容系統(tǒng)或者不同平臺的應(yīng)用能夠共享建立的索引文件。</p><p> ?。?)在傳統(tǒng)全文

62、檢索引擎的倒排索引的基礎(chǔ)上,實(shí)現(xiàn)了分塊索引,能夠針對新的文件建立小文件索引,提升索引速度。然后通過與原有索引的合并,達(dá)到優(yōu)化的目的。</p><p> ?。?)優(yōu)秀的面向?qū)ο蟮南到y(tǒng)架構(gòu),使得對于Lucene擴(kuò)展的學(xué)習(xí)難度降低,方便擴(kuò)充新功能。</p><p> ?。?)設(shè)計(jì)了獨(dú)立于語言和文件格式的文本分析接口,索引器通過接受Token流完成索引文件的創(chuàng)立,用戶擴(kuò)展新的語言和文件格式,只需要

63、實(shí)現(xiàn)文本分析的接口。</p><p> ?。?)已經(jīng)默認(rèn)實(shí)現(xiàn)了一套強(qiáng)大的查詢引擎,用戶無需自己編寫代碼即使系統(tǒng)可獲得強(qiáng)大的查詢能力,Lucene的查詢實(shí)現(xiàn)中默認(rèn)實(shí)現(xiàn)了布爾操作、模糊查詢(Fuzzy Search[11])、分組查詢等等。</p><p>  2.7 自定義標(biāo)簽簡介 </p><p>  一般我們說自定義標(biāo)簽是指JSP自定義標(biāo)簽。自定義標(biāo)簽在功能上邏輯

64、上與javaBean 類似,都封裝Java 代碼。自定義標(biāo)簽是可重用的組件代碼,并且允許開發(fā)人員為復(fù)雜的操作提供邏輯名稱。</p><p>  JSP開發(fā)人員使用標(biāo)簽庫創(chuàng)建標(biāo)簽.標(biāo)簽庫是按照功能或?qū)崿F(xiàn)進(jìn)行分組的自定義標(biāo)簽的集合。 </p><p>  2.4.1 自定義標(biāo)簽的基本概念</p><p>  1.標(biāo)簽(Tag):</p><p>

65、  標(biāo)簽是一種XML元素,通過標(biāo)簽可以使JSP網(wǎng)頁變得簡潔并且易于維護(hù),還可以方便地實(shí)現(xiàn)同一個(gè)JSP文件支持多種語言版本。由于標(biāo)簽是XML元素,所以它的名稱和屬性都是大小寫敏感的</p><p>  2.標(biāo)簽庫(Tag library):</p><p>  由一系列功能相似、邏輯上互相聯(lián)系的標(biāo)簽構(gòu)成的集合稱為標(biāo)簽庫。</p><p>  3.標(biāo)簽庫描述文件(Tag

66、 Library Descriptor):</p><p>  標(biāo)簽庫描述文件是一個(gè)XML文件,這個(gè)文件提供了標(biāo)簽庫中類和JSP中對標(biāo)簽引用的映射關(guān)系。它是一個(gè)配置文件,和web.xml是類似的。</p><p>  4.標(biāo)簽處理類(Tag Handle Class):</p><p>  標(biāo)簽處理類是一個(gè)Java類,這個(gè)類繼承了TagSupport或者擴(kuò)展了Sim

67、pleTag接口,通過這個(gè)類可以實(shí)現(xiàn)自定義JSP標(biāo)簽的具體功能</p><p>  2.4.2 自定義標(biāo)簽的格式</p><p>  1. <% @ taglib prefix=”someprefix” uri=”/sometaglib” %></p><p>  為了使到JSP容器能夠使用標(biāo)簽庫中的自定義行為,必須滿足以下兩個(gè)條件:</p>

68、<p>  1)從一個(gè)指定的標(biāo)簽庫中識別出代表這種自定義行為的標(biāo)簽</p><p>  2)找到實(shí)現(xiàn)這些自定義行為的具體類</p><p>  第一個(gè)必需條件-找出一個(gè)自定義行為屬于那個(gè)標(biāo)簽庫-是由標(biāo)簽指令的前綴(Taglib Directive's Prefix)屬性完成,所以在同一個(gè)頁面中使用相同前綴的元素都屬于這個(gè)標(biāo)簽庫。每個(gè)標(biāo)簽庫都定義了一個(gè)默認(rèn)的前綴,用在標(biāo)

69、簽庫的文檔中或者頁面中插入自定義標(biāo)簽。所以,你可以使用除了諸如jsp,jspx,java,servlet,sun,sunw(它們都是在JSP白皮書中指定的保留字)之類的前綴。 </p><p>  uri屬性滿足了以上的第二個(gè)要求。為每個(gè)自定義行為找到對應(yīng)的類。這個(gè)uri包含了一個(gè)字符串,容器用它來定位TLD文件。在TLD文件中可以找到標(biāo)簽庫中所有標(biāo)簽處理類的名稱</p><p>  2.

70、 當(dāng)web應(yīng)用程序啟動(dòng)時(shí),容器從WEB-INF文件夾的目錄結(jié)構(gòu)的META-INF搜索所有以.tld結(jié)尾的文件。也就是說它們會定位所有的TLD文件。對于每個(gè)TLD文件,容器會先獲取標(biāo)簽庫的URI,然后為每個(gè)TLD文件和對應(yīng)的URI創(chuàng)建映射關(guān)系。</p><p>  在JSP頁面中,我們僅需通過使用帶有URI屬性值的標(biāo)簽庫指令來和具體的標(biāo)簽庫匹配。</p><p><b>  系統(tǒng)的

71、分析與設(shè)計(jì)</b></p><p>  3.1 系統(tǒng)的實(shí)現(xiàn)目標(biāo)</p><p>  軟件學(xué)院工作室管理系統(tǒng)致力于開發(fā)集成榮譽(yù)展示、新聞公告、信息公開、考勤管理、選方向管理、項(xiàng)目管理、日志管理、問答交流、討論區(qū)、站內(nèi)短信為一體的綜合性管理系統(tǒng)。不管是學(xué)院級信息,學(xué)校級信息,還是個(gè)方面的社會信息,軟件學(xué)院工作室管理通過管理員的簡單的操作從而實(shí)現(xiàn)信息的大眾化、專業(yè)化于一體。</

72、p><p>  1、完善的管理功能:作為綜合性管理系統(tǒng),該系統(tǒng)要具備強(qiáng)大后臺管理功能。除了新聞公告、信息公開外有完善的后臺管理外,考勤管理、選方向管理、日志管理、問答交流、討論區(qū)等等都需要完善的管理功能。</p><p>  2、方便的用戶操作:系統(tǒng)除了有良好完善的功能外,還應(yīng)該給用戶提供友好的操作方式,方便用戶使用系統(tǒng)完成工作。在實(shí)現(xiàn)的各個(gè)細(xì)節(jié)上都考慮了盡量簡化用戶操作,用最簡單的操作實(shí)現(xiàn)強(qiáng)

73、大的功能。</p><p>  3、多方面的系統(tǒng)安全措施:網(wǎng)絡(luò)發(fā)展給信息系統(tǒng)的開發(fā)帶來方便的同時(shí),也給它還帶了許多麻煩。用戶的增多和資源共享程度的提高,給系統(tǒng)的安全性帶來越來越多的安全隱患,所以系統(tǒng)通過對用戶信息的加密、數(shù)據(jù)備份、數(shù)據(jù)還原、文件模板的創(chuàng)建、觸發(fā)器等手段保證了數(shù)據(jù)安全性的提高。同時(shí)使用對稱加密技術(shù)讓數(shù)據(jù)傳送更安全可靠。</p><p><b>  3.2 系統(tǒng)分析&

74、lt;/b></p><p>  3.2.1 系統(tǒng)功能分析</p><p>  通過對系統(tǒng)的分析和研究,系統(tǒng)在應(yīng)該分為信息展示、日常管理、系統(tǒng)管理、互動(dòng)交流四大模塊。系統(tǒng)操作層次可以分為管理員、導(dǎo)師、學(xué)生。其中管理員主要負(fù)責(zé)后臺全部管理,導(dǎo)師主要管理本工作室學(xué)生的日志、信息等,學(xué)生可以選方向、工作日志、考勤查詢等操作。所有用戶均可參與互動(dòng)交流,可查詢公共信息如學(xué)生導(dǎo)師記錄、考勤記錄等

75、,可查看前臺內(nèi)容。系統(tǒng)功能結(jié)構(gòu)如圖3.1所示。</p><p>  圖3.1 工作室管理系統(tǒng)功能結(jié)構(gòu)圖</p><p>  系統(tǒng)功能詳細(xì)描述如下:</p><p>  信息展示:主要為前臺展示型模塊,包含榮譽(yù)展示、新聞公告、信息公開</p><p>  榮譽(yù)展示:主要展示優(yōu)秀個(gè)人及優(yōu)秀作品</p><p>  新聞公告

76、:在前臺顯示工作室最新的新聞及公告信息,提供最新動(dòng)態(tài)</p><p>  信息公開:主要用于日常公開和工作室展示,方便其他人了解工作室</p><p>  日常管理:主要為后臺型模塊,三種用戶均在各自獨(dú)立的后臺操作。包含考勤管理、選方向管理、項(xiàng)目管理、日志管理</p><p>  考勤管理:前臺提供學(xué)生考勤信息查詢,后臺由管理員管理</p><p

77、>  選方向管理:提供未進(jìn)工作室學(xué)生選方向的功能,管理員可以進(jìn)行匯總</p><p>  項(xiàng)目管理:提供工作室項(xiàng)目日常管理,如項(xiàng)目分組、進(jìn)度等</p><p>  日志管理:學(xué)生寫工作日志,導(dǎo)師進(jìn)行評價(jià)打分</p><p>  系統(tǒng)管理:主要為后臺管理設(shè)置型模塊</p><p>  系統(tǒng)設(shè)置:設(shè)置系統(tǒng)基本信息</p>&l

78、t;p>  用戶管理:管理員管理管理員、導(dǎo)師、學(xué)生三級用戶</p><p>  數(shù)據(jù)維護(hù):提供數(shù)據(jù)庫維護(hù)功能,如數(shù)據(jù)庫備份、恢復(fù)等</p><p><b>  互動(dòng)交流:</b></p><p>  你問我答:提供學(xué)生提問,學(xué)生或?qū)熁卮鸬囊粋€(gè)平臺</p><p>  討論區(qū):提供師生在線交流的平臺</p&g

79、t;<p>  站內(nèi)短信:提供師生私人交流的平臺 </p><p>  3.2.2 系統(tǒng)流程分析</p><p>  軟件學(xué)院工作室管理中心在運(yùn)行過程中頁面的基本流程如圖3.2所示。</p><p>  圖3.2 系統(tǒng)流程圖</p><p>  3.2.3 系統(tǒng)數(shù)據(jù)流分析</p><p>  在整個(gè)工作室

80、管理系統(tǒng)中,學(xué)生是主體,一切圍繞學(xué)生為主體進(jìn)行。學(xué)生登陸后由系統(tǒng)記錄登陸信息,導(dǎo)師可以查看。同時(shí)師生均可進(jìn)行互動(dòng)交流。學(xué)生需要按時(shí)填寫工作日志,具體數(shù)據(jù)流如圖3.3所示。</p><p>  圖3.3 系統(tǒng)數(shù)據(jù)流圖</p><p>  3.3 系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)</p><p>  3.3.1 系統(tǒng)E-R圖</p><p>  在軟件學(xué)院工作室管

81、理系統(tǒng)中,整個(gè)系統(tǒng)都是圍繞管理員、導(dǎo)師、學(xué)生三種用戶來的,主要是師生間的日常教學(xué)工作及交流,因此可以將這點(diǎn)做為E-R圖的分析重點(diǎn),圍繞它們進(jìn)行其它數(shù)據(jù)的E-R圖分析。通過管理員、導(dǎo)師、學(xué)生這些實(shí)體,我們可以得出還有工作日志、短消息、公告、新聞、教學(xué)資源等實(shí)體。</p><p>  根據(jù)系統(tǒng)數(shù)據(jù)流圖的描述,我們可以得出系統(tǒng)E-R圖如下圖所示。</p><p>  圖3.4 系統(tǒng)E-R圖<

82、;/p><p>  3.3.2 數(shù)據(jù)庫表設(shè)計(jì)</p><p>  (1) 管理員詳情表(WR_AdminInfo),其中主鍵為UID,具體字段信息如表3.1所示。</p><p>  表3.1 管理員詳情表</p><p>  (2) 問答答案表(WR_AskAnswer),其中主鍵為AnswerId,具體字段信息如表3.2所示。</p&g

83、t;<p>  表3.2 問答答案表</p><p>  (3) 問答類別表(WR_AskClass),其中主鍵為ClassID,具體字段信息如表3.3所示。</p><p>  表3.3 問答類別表</p><p>  (4) 問題內(nèi)容表(WR_AskContent),其中主鍵為QuestionId,具體字段信息如表3.4所示。</p>

84、<p>  表3.4 問題內(nèi)容表</p><p>  (5) 問題表(WR_AskQuestion),其中主鍵為QuestionId,具體字段信息如表3.5所示。</p><p><b>  表3.5 問題表</b></p><p>  (6) 問答用戶表(WR_AskUser),其中主鍵為Uid,具體字段信息如表3.6所示。<

85、;/p><p>  表3.6 問答用戶表</p><p>  (7) 考勤檢查表(WR_Check),其中主鍵為CheckId,具體字段信息如表3.7所示。</p><p>  表3.7 考勤檢查表</p><p>  (8) 考勤檢查詳情表(WR_CheckItem),其中主鍵為ItemId,具體字段信息如表3.8所示。</p>

86、<p>  表3.8 考勤檢查詳情表</p><p>  (9) 選方向記錄表(WR_Choose) ,具體字段信息如表3.9所示。</p><p>  表3.9 選方向記錄表</p><p>  (10) 班級表(WR_Class),其中主鍵為ClassID,具體字段信息如表3.10所示。</p><p><b>  表

87、3.10 班級表</b></p><p>  (11) 系統(tǒng)設(shè)置表(WR_Config),其中主鍵為ConfigID,具體字段信息如表3.11所示。</p><p>  表3.11 系統(tǒng)設(shè)置表</p><p>  (12) 選課方向表(WR_Direction),其中主鍵為DirectionID,具體字段信息如表3.12所示。</p>&l

88、t;p>  表3.12 選課方向表</p><p>  (13) 優(yōu)秀作品表(WR_FineSoft),其中主鍵為SoftId,具體字段信息如表3.13所示。</p><p>  表3.13 優(yōu)秀作品表</p><p>  (14) 優(yōu)秀個(gè)人表(WR_FineStudent),其中主鍵為Uid,具體字段信息如表3.14所示。</p><p&

89、gt;  表3.14 優(yōu)秀個(gè)人表</p><p>  (15) 年級表(WR_Grade),其中主鍵為GradeName,具體字段信息如表3.15所示。</p><p><b>  表3.15 年級表</b></p><p>  (16) 友情鏈接表(WR_Link),其中主鍵為LinkID,具體字段信息如表3.16所示。</p>

90、<p>  表3.16 友情鏈接表</p><p>  (17) 友情鏈接分類表(WR_LinkClass),其中主鍵為ClassId,具體字段信息如表3.17所示。</p><p>  表3.17 友情鏈接分類表</p><p>  (18) 短消息表(WR_Message),其中主鍵為MessageID,具體字段信息如表3.18所示。</p&g

91、t;<p>  表3.18 短消息表</p><p>  (19) 新聞表(WR_News),其中主鍵為NewsID,具體字段信息如表3.19所示。</p><p><b>  表3.19 新聞表</b></p><p>  (20) 新聞?lì)悇e表(WR_NewsClass),其中主鍵為ClassID,具體字段信息如表3.20所示。

92、</p><p>  表3.20 新聞?lì)悇e表</p><p>  (21) 公告表(WR_Notice),其中主鍵為NoticeID,具體字段信息如表3.21所示。</p><p><b>  表3.21 公告表</b></p><p>  (22) 資源表(WR_Soft),其中主鍵為SoftID,具體字段信息如表3.

93、22所示。</p><p><b>  表3.22 資源表</b></p><p>  (23) 資源類別表(WR_SoftClass),其中主鍵為ClassID,具體字段信息如表3.23所示。</p><p>  表3.23 資源類別表</p><p>  (24) 學(xué)生詳情表(WR_StudentInfo),其中主鍵

94、為UID,具體字段信息如表3.24所示。</p><p>  表3.24 學(xué)生詳情表</p><p>  (25) 導(dǎo)師詳情表(WR_TeacherInfo),其中主鍵為UID,具體字段信息如表3.25所示。</p><p>  表3.25 導(dǎo)師詳情表</p><p>  (26) 用戶表(包括管理員,導(dǎo)師,學(xué)生)(WR_User),其中主鍵

95、為UID,具體字段信息如表3.26所示。</p><p>  表3.26 用戶表(包括管理員,導(dǎo)師,學(xué)生)</p><p>  (27) 學(xué)生(或?qū)煟┕ぷ魅罩荆╓R_UserLog),其中主鍵為LogID,具體字段信息如表3.27所示。</p><p>  表3.27 學(xué)生(或?qū)煟┕ぷ魅罩?lt;/p><p>  (28) 工作室表( WR_

96、WorkRoom),其中主鍵為WorkRoomID,具體字段信息如表3.28所示。</p><p>  表3.28 工作室表</p><p><b>  模塊的實(shí)現(xiàn)</b></p><p>  4.1 MVC分層結(jié)構(gòu)</p><p>  首先需要先介紹一下Struts-MVC模式。MVC(Model View Contr

97、ol)模型-視圖-控制器本系統(tǒng)基于Struts的MVC模式開發(fā),通過分層,從而使JSP頁面代碼簡潔,功能執(zhí)行流程清晰,將操作執(zhí)行的代碼封裝起來,方便方法重調(diào)用及調(diào)試修改。下面將列出主要模塊MVC結(jié)構(gòu)。</p><p>  信息展示模塊的MVC結(jié)構(gòu)如表4.1所示。</p><p>  表4.1 信息展示模塊的MVC結(jié)構(gòu)</p><p>  工作室日常管理模塊的MVC結(jié)

98、構(gòu)如表4.2所示。</p><p>  表4.2 工作室日常管理模塊的MVC結(jié)構(gòu)</p><p>  系統(tǒng)管理模塊的MVC結(jié)構(gòu)如表4.3所示。</p><p>  表4.3 系統(tǒng)管理模塊的MVC結(jié)構(gòu)</p><p>  互動(dòng)交流模塊的MVC結(jié)構(gòu)如表4.4所示。</p><p>  表4.4 互動(dòng)交流模塊的MVC結(jié)構(gòu)&l

99、t;/p><p>  下面以信息展示模塊的新聞發(fā)布為例介紹MVC各層流程。</p><p>  圖4.1 系統(tǒng)MVC執(zhí)行流程圖</p><p><b>  流程分析:</b></p><p>  ·Servlet/Jsp容器在web.xml文件中找到*.do的servlet-mapping:action;</

100、p><p>  ·根據(jù)servlet-name在servlet元素中找到對應(yīng)的ActionServlet類;</p><p>  ·根據(jù)struts-config.xml中的設(shè)置,把客戶提交的表單數(shù)據(jù)傳給Form對象;</p><p>  ·ActionServlet從struts-config.xml中查找path屬性符合的<act

101、ion>元素,查找Action實(shí)例,在Action中調(diào)用模型組件(本例的NewsDAO)的save方法;</p><p>  ·在save方法中執(zhí)行操作(修改或插入),再根據(jù)結(jié)果查找<action>中相應(yīng)的<forward>子元素,獲得ActionForward對象,通過控制層進(jìn)行頁面跳轉(zhuǎn),將結(jié)果集返回并顯示在頁面上。</p><p>  4.2 信

102、息展示模塊</p><p> ?、惫δ埽褐饕獮榍芭_展示型模塊,包含榮譽(yù)展示、新聞公告、信息公開。榮譽(yù)展示包括優(yōu)秀個(gè)人、優(yōu)秀作品。前臺展示部分全部人均有權(quán)限,后臺編輯部分公管理員有權(quán)限。</p><p><b>  ⒉設(shè)計(jì)思想:</b></p><p><b>  (1) 榮譽(yù)展示:</b></p><p

103、>  優(yōu)秀個(gè)人:優(yōu)秀個(gè)人包括姓名、學(xué)號、方向、添加日期、摘要、圖片地址。圖片為優(yōu)秀學(xué)生的照片,程序自動(dòng)生成一張120*160縮略圖。優(yōu)秀個(gè)人后臺學(xué)號、姓名的選擇使用AJAX技術(shù),不用刷新頁面。僅管理員有權(quán)限。</p><p>  優(yōu)秀作品:優(yōu)秀作品包括作品名、圖片地址、摘要、作者、方向、源碼地址、運(yùn)行地址、添加日期等。作者可以有多個(gè),同樣通過AJAX技術(shù)選擇學(xué)生。運(yùn)行地址是配置好的可以運(yùn)行的優(yōu)秀作品的網(wǎng)址,

104、可以和工作室管理系統(tǒng)不在同一臺服務(wù)器上。優(yōu)秀作品圖片地址為優(yōu)秀作品截圖,程序自動(dòng)生成一張200*150的縮略圖。僅管理有權(quán)限。</p><p><b>  新聞公告: </b></p><p>  新聞:新聞包括列表、添加、修改、刪除功能。僅管理員有權(quán)限。新聞包括標(biāo)題、作者、新聞分類、新聞來源、新聞內(nèi)容、發(fā)布者、新聞性質(zhì)。其中新聞性質(zhì)分為置頂、推薦、幻燈圖、審核。選中

105、置頂時(shí)新聞在列表時(shí)會顯示上最上方,選中推薦時(shí)在新聞顯示時(shí)左欄的推薦新聞列表中會顯示出來,選中幻燈圖時(shí)在前臺會以幻燈圖的形式播放出來,選中審核時(shí)新聞才會在前臺顯示出來。新聞采用在線HMTL編輯器eWebEditor,讓管理員編輯新聞更簡單。</p><p>  新聞分類:新聞分類包括分類列表、添加、修改、刪除功能。僅管理員有權(quán)限。新聞分類只設(shè)一級分類,并設(shè)置排序字段,按數(shù)字正序排序。</p><

106、p>  公告:公告可以由管理員或?qū)熖砑?,管理員可以添加院級公告和某個(gè)工作室的公告,導(dǎo)師只可以添加自己工作室的公告。學(xué)生或?qū)熢诘顷戇M(jìn)后臺時(shí)會顯示院級公告和本工作室公告。公告內(nèi)容依然使用eWebEditor簡化操作過程。</p><p><b>  信息公開: </b></p><p>  工作室展示:工作室展示主要放在前臺顯示。首頁提供大幅幻燈顯示工作室的LO

107、GO圖片,隨機(jī)生成4張圖片。工作室展示列表頁可以按年級查詢當(dāng)前或歷史工作室情況。工作室展示頁除列出工作室LOGO及工作室基本信息外還列出該工作室所有成員。</p><p><b> ?、炒a分析:</b></p><p>  (1) 優(yōu)秀作品修改的代碼分析(這里以優(yōu)秀作品修改為例來解析代碼)</p><p>  <1> 首先打開ad

108、min/fineSoft.do?method=list顯示優(yōu)秀作品列表</p><p>  解釋:通過此路徑struts會去admin-struts-config.xml中查找對應(yīng)的action。</p><p>  <action path="/fineSoft" attribute="fineSoftForm"</p><

109、;p>  name="fineSoftForm" parameter="method" scope="request"</p><p>  type="com.myh.admin.action.FineSoftAction" validate="false"</p><p>  inp

110、ut="/go.do?def=fineSoftEdit"></p><p>  <forward name="list" path="/go.do?def=fineSoftList" /></p><p>  <forward name="reList" path="/fine

111、Soft.do?method=list"</p><p>  redirect="true" /></p><p>  <forward name="edit" path="/go.do?def=fineSoftEdit" /></p><p><b>  </a

112、ction></b></p><p>  網(wǎng)址被映射到com.myh.admin.action.FineSoftAction中的list方法,list方法處理完后返回一個(gè)名為“l(fā)ist”的Action Forword,實(shí)際指向Tiles配置中的fineSoftList,再從Tiles列表中找到對應(yīng)的jsp文件為/ /WEB-INF/jsp/admin/fineSoftList.jsp,然后處理標(biāo)

113、簽顯示之。</p><p>  <2> 點(diǎn)擊編輯鏈接后進(jìn)入優(yōu)秀作品修改頁面</p><p>  解釋:同上找到FineSoftAction中的edit方法,首先通過傳到action中的參數(shù)softId,找到對應(yīng)softId的優(yōu)秀作品,讀取出來跳轉(zhuǎn)到對應(yīng)的jsp文件上顯示。若沒找到對就softId的優(yōu)秀作品則提示“沒有找到優(yōu)秀作品”。變量傳遞可以使用ActionForm Bean

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論