版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 摘 要</b></p><p> 21世紀(jì)的發(fā)展已經(jīng)很大程度的依賴于計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,隨著計(jì)算機(jī)網(wǎng)絡(luò)的快速發(fā)展而帶來(lái)的一系列的基于網(wǎng)絡(luò)的事物的飛速增長(zhǎng)和世界信息化步伐的加快,于是越來(lái)越多的企事業(yè)單位包括各類院校都需要一個(gè)自己的信息發(fā)布和資源共享的平臺(tái)。為了滿足這個(gè)需求,我們開(kāi)發(fā)此工作室管理系統(tǒng),用于軟件學(xué)院教學(xué)和師生日常交流。</p><
2、;p> 系統(tǒng)基于B/S的開(kāi)發(fā)模式,前臺(tái)使用JSP技術(shù)開(kāi)發(fā)實(shí)現(xiàn),后臺(tái)使用MySQL5.0數(shù)據(jù)庫(kù)軟件管理,并采用Hibernate框架進(jìn)行數(shù)據(jù)庫(kù)連接。系統(tǒng)主要分為信息展示、工作室日常管理、系統(tǒng)管理、互動(dòng)交流四大模塊。</p><p> 本文介紹了在Struts下應(yīng)用MVC分層思想:模型層、視圖層、控制層,在基于JSP頁(yè)面、MySQL數(shù)據(jù)庫(kù)及Resin服務(wù)器端的基礎(chǔ)上開(kāi)發(fā)的軟件學(xué)院工作室管理系統(tǒng)。系統(tǒng)地闡述該
3、管理系統(tǒng)開(kāi)發(fā)的分析及設(shè)計(jì)過(guò)程,包括數(shù)據(jù)流圖,功能分析設(shè)計(jì),數(shù)據(jù)庫(kù)設(shè)計(jì)等;詳細(xì)描述了本人負(fù)責(zé)模塊的實(shí)現(xiàn)過(guò)程,并對(duì)本人在系統(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)開(kāi)發(fā)相關(guān)技術(shù)概述3</p><p> 2.1 B/S開(kāi)發(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ù)庫(kù)連接池技術(shù)6</p><p> 2.4 MySQL簡(jiǎn)介7</p><p> 2.5 Hibernate簡(jiǎn)介7</p><p> 2.6 Lucene簡(jiǎn)介8</p><p> 2.7 自定義標(biāo)簽簡(jiǎn)介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ù)庫(kù)設(shè)計(jì)14</p><p> 3.3.1 系統(tǒng)E-R圖14</p><p> 3.3.2 數(shù)據(jù)庫(kù)表設(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)簽庫(kù)50</p><p> 4.6.7 JSTL標(biāo)簽庫(kù)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ù)庫(kù)連接池技術(shù)55</p><p> 4.6.14 分頁(yè)技術(shù)56</p><p> 4.6.15 網(wǎng)址重寫(xiě)技術(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)師通過(guò)網(wǎng)絡(luò),方便的了解工作室同學(xué)的狀況。對(duì)于即將進(jìn)入工作室學(xué)習(xí)的同學(xué),可以通過(guò)工作事管理中心,進(jìn)行工作室學(xué)習(xí)方向的確定,這就避免了同學(xué)選擇方向時(shí),因工作室已滿而不得不轉(zhuǎn)方向。對(duì)于已經(jīng)在工作室學(xué)習(xí)的同學(xué),導(dǎo)師可以通過(guò)本簽到系統(tǒng),方便的了解同學(xué)的出勤狀況,歷史缺到次數(shù)。簡(jiǎn)單的新聞系統(tǒng),使同學(xué)們能夠及時(shí)了解工作室最新動(dòng)向。通過(guò)站內(nèi)短信,同工作室,不同工作室之間都可以進(jìn)行短信交流,也可以進(jìn)行短信群發(fā)。工作
23、室管理中心提供了一個(gè)討論區(qū),同學(xué)可以就最新的帖子進(jìn)行評(píng)論,也可以和導(dǎo)師交流最新技術(shù)。個(gè)人日志功能免除了同學(xué)手寫(xiě)日志的苦惱,日志直接提交至導(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)行知識(shí)交流。</p><p> 在實(shí)際使用中,本系統(tǒng)可以發(fā)揮互聯(lián)網(wǎng)的優(yōu)勢(shì)、在網(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)開(kāi)發(fā)的分析過(guò)程、設(shè)計(jì)思想和功能實(shí)現(xiàn),并詳細(xì)闡述了系統(tǒng)中關(guān)鍵技術(shù)的實(shí)現(xiàn)。</p><p> 第一章簡(jiǎn)述了系統(tǒng)的開(kāi)發(fā)背景、特點(diǎn)以及本人的主要工作。</p><p>
25、 第二章簡(jiǎn)述了系統(tǒng)開(kāi)發(fā)的相關(guān)技術(shù)。</p><p> 第三章闡述了系統(tǒng)開(kāi)發(fā)的分析和設(shè)計(jì)過(guò)程,包括系統(tǒng)的數(shù)據(jù)流分析、數(shù)據(jù)庫(kù)設(shè)計(jì)等。</p><p> 第四章詳細(xì)描述了軟件學(xué)院工作室管理系統(tǒng)的過(guò)程中所使用的關(guān)鍵技術(shù)和系統(tǒng)部分功能的實(shí)現(xiàn)。</p><p> 1.3 本人做的主要工作</p><p> 在軟件學(xué)院工作室管理系統(tǒng)的開(kāi)發(fā)過(guò)程中,
26、我參與并完成了從需求分析、概要設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)到系統(tǒng)功能劃分、最終實(shí)現(xiàn)的一系列工作。</p><p> 本人在系統(tǒng)中主完成全部模塊,包括新聞公告、工作室管理、論壇、問(wèn)答系統(tǒng)、考勤管理、榮譽(yù)管理、選方向管理、資源管理等。</p><p> 系統(tǒng)開(kāi)發(fā)相關(guān)技術(shù)概述</p><p> 2.1 B/S開(kāi)發(fā)模式 </p><p> 目前較流行的網(wǎng)
27、絡(luò)開(kāi)發(fā)模式分別是Client/Server模式與Browser/Client模式。 C/S模式主要是在以局域網(wǎng)為基礎(chǔ)的環(huán)境下展開(kāi)應(yīng)用的,它受到地域的限制。而B(niǎo)/S模式通過(guò)Internet進(jìn)行通信,可以不受地域的限制,但是它不能夠進(jìn)行聯(lián)機(jī)事務(wù)處理,并且在大量數(shù)據(jù)處理的情況下,速度較慢。從目前的開(kāi)發(fā)技術(shù)來(lái)看,Browser端作為信息收集源,特別是大量的數(shù)據(jù)錄入工作還不能完全取代Client端的用戶界面。在這方面,Client端的各種開(kāi)發(fā)工具
28、的功能更加強(qiáng)大也更加靈活,而B(niǎo)rowser端卻由其功能結(jié)構(gòu)的限定過(guò)于“瘦小”?;贐/S與C/S兩種模式的比較下,該系統(tǒng)采用的系統(tǒng)體系結(jié)構(gòu)為B/S結(jié)構(gòu),克服了C/S體系結(jié)構(gòu)的缺點(diǎn),使系統(tǒng)跨平臺(tái),跨語(yǔ)言,高度移植性充分體現(xiàn)出來(lái)了。同時(shí),使用該體系結(jié)構(gòu)開(kāi)發(fā)本系統(tǒng)具有以下兩個(gè)優(yōu)點(diǎn)[1]:</p><p> 1、較低的應(yīng)用開(kāi)發(fā)及管理成本?;贐/S技術(shù)開(kāi)發(fā)的應(yīng)用系統(tǒng),安裝、配置和升級(jí)主要在服務(wù)器上進(jìn)行,在用戶計(jì)算機(jī)上通
29、常只需要安裝通用的瀏覽器軟件即可,可以支持客戶端跨操作系統(tǒng)平臺(tái)的使用。由于瀏覽器軟件常常是客戶機(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)頁(yè)技術(shù)標(biāo)準(zhǔn)。它由HTML代碼和嵌入其中的JAVA代碼所組成。服務(wù)器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些JAVA代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶端的瀏覽器。JSP具備了JAVA技術(shù)的簡(jiǎn)單易用、完全面向?qū)ο?、具有平臺(tái)無(wú)關(guān)性且安全可靠,其在動(dòng)態(tài)網(wǎng)頁(yè)的建設(shè)中有其強(qiáng)大而特別的功
31、能,下文將簡(jiǎn)單介紹其優(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頁(yè)面開(kāi)發(fā)人員可以使用HTML或者XML標(biāo)識(shí)來(lái)設(shè)計(jì)和格式化最終頁(yè)面。使用JSP標(biāo)識(shí)或者小腳本來(lái)生成頁(yè)面上的動(dòng)態(tài)內(nèi)容(內(nèi)容是根據(jù)請(qǐng)求來(lái)變化的,例如查詢指定學(xué)院的專業(yè)
32、或者某一位學(xué)生參加的文藝活動(dòng))。Web管理人員和頁(yè)面設(shè)計(jì)者,能夠編輯和使用JSP頁(yè)面,而不影響內(nèi)容的生成。 </p><p> 第二、生成可重用的組件。</p><p> 絕大多數(shù)JSP頁(yè)面依賴于可重用的,跨平臺(tái)的組件(JavaBeans或者Enterprise JavaBeansTM組件)來(lái)執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開(kāi)發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件
33、為更多的使用者或者客戶團(tuán)體所使用。</p><p> 第三、采用標(biāo)識(shí)簡(jiǎn)化頁(yè)面開(kāi)發(fā)。 </p><p> Web頁(yè)面開(kāi)發(fā)人員不會(huì)都是熟悉腳本語(yǔ)言的編程人員。但JavaServer Page技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)識(shí)中進(jìn)行動(dòng)態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識(shí)能夠訪問(wèn)和實(shí)例化JavaBeans組件,設(shè)置或者檢索組件屬性,下載Applet,以及執(zhí)行用其他
34、方法更難于編碼和耗時(shí)的功能。 </p><p> 通過(guò)開(kāi)發(fā)定制化標(biāo)識(shí)庫(kù),JSP技術(shù)是可以擴(kuò)展的。以上這些使得Web頁(yè)面開(kāi)發(fā)人員能夠使用熟悉的工具來(lái)執(zhí)行特定功能。 </p><p> 第四、提供所有Servlets的功能。 </p><p> 與SERVLETS相比,JSP能提供所有SERVLETS功能,但它比用println書(shū)寫(xiě)和修改HTML更方便。此外,可以
35、更明確的進(jìn)行分工,WEB頁(yè)面設(shè)計(jì)人員編寫(xiě)HTML,只需要留出地方讓SERVLETS程序員插入動(dòng)態(tài)部分即可。 </p><p> 2.3 struts技術(shù) </p><p> 2.3.1 struts與MVC</p><p> JSP 標(biāo)記只解決了部分問(wèn)題,還得處理驗(yàn)證、流程控制和更新應(yīng)用程序的狀態(tài)等問(wèn)題。MVC(模型-視圖-控制器)通過(guò)將問(wèn)題分為三個(gè)類別來(lái)幫助
36、解決單一模塊方法所遇到的某些問(wèn)題:[6] [7]</p><p> Model(模型)模型包含應(yīng)用程序的核心功能。模型封裝了應(yīng)用程序的狀態(tài)。有時(shí)它包含的唯一功能就是狀態(tài)。它對(duì)視圖或控制器一無(wú)所知。</p><p> View(視圖)視圖提供模型的表示。它是應(yīng)用程序的外觀。視圖可以訪問(wèn)模型的讀方法,但不能訪問(wèn)寫(xiě)方法。此外,它對(duì)控制器一無(wú)所知。當(dāng)更改模型時(shí),視圖應(yīng)得到通知。</p
37、><p> Controller(控制器)控制器對(duì)用戶的輸入作出反應(yīng)。它創(chuàng)建并設(shè)置模型。 </p><p> 2.3.2 struts的工作原理</p><p> MVC即Model-View-Controller的縮寫(xiě),是一種常用的設(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請(qǐng)求的入口點(diǎn)。它截取和分發(fā)這些請(qǐng)求到相應(yīng)的動(dòng)作類(這些動(dòng)作類都是Action類的子類)。另外控制組件也負(fù)責(zé)用相應(yīng)的請(qǐng)求參數(shù)填充 Action From(通常稱之為FromBean),并傳給動(dòng)作類(通常稱之為ActionBean)。動(dòng)作類實(shí)現(xiàn)核心商業(yè)邏輯,它可以訪問(wèn)java bean 或調(diào)用EJB。最后動(dòng)作類把控制權(quán)傳給后續(xù)的JSP 文
40、件,后者生成視圖。所有這些控制邏輯利用Struts-config.xml文件來(lái)配置。 </p><p> 視圖:主要由JSP生成頁(yè)面完成視圖,Struts提供豐富的JSP 標(biāo)簽庫(kù): Html,Bean,Logic,Template等,這有利于分開(kāi)表現(xiàn)邏輯和程序邏輯。 </p><p> 模型:模型以一個(gè)或多個(gè)java bean的形式存在。這些bean分為三類:Action Form、A
41、ction、JavaBean or EJB。Action Form通常稱之為FormBean,封裝了來(lái)自于Client的用戶請(qǐng)求信息,如表單信息。Action通常稱之為ActionBean,獲取從ActionSevlet傳來(lái)的FormBean,取出FormBean中的相關(guān)信息,并做出相關(guān)的處理,一般是調(diào)用Java Bean或EJB等。 </p><p> 流程:在Struts中,用戶的請(qǐng)求一般以*.do作為請(qǐng)求
42、服務(wù)名,所有的*.do請(qǐng)求均被指向ActionSevlet,ActionSevlet根據(jù)Struts-config.xml中的配置信息,將用戶請(qǐng)求封裝成一個(gè)指定名稱的FormBean,并將此FormBean傳至指定名稱的ActionBean,由ActionBean完成相應(yīng)的業(yè)務(wù)操作,如文件操作,數(shù)據(jù)庫(kù)操作等。每一個(gè)*.do均有對(duì)應(yīng)的FormBean名稱和ActionBean名稱,這些在Struts-config.xml中配置。 <
43、/p><p> 核心:Struts的核心是ActionSevlet,ActionSevlet的核心是Struts-config.xml。</p><p> 2.3 數(shù)據(jù)庫(kù)連接池技術(shù) </p><p> 數(shù)據(jù)庫(kù)連接的建立及關(guān)閉對(duì)系統(tǒng)而言是耗費(fèi)系統(tǒng)資源的操作,在多層結(jié)構(gòu)的應(yīng)用環(huán)境中,這種耗費(fèi)資源的動(dòng)作對(duì)系統(tǒng)的性能影響尤為明顯。在傳統(tǒng)的數(shù)據(jù)庫(kù)連接方式 (指通過(guò)Drive
44、rManager)中,一個(gè)數(shù)據(jù)庫(kù)連接對(duì)象均對(duì)應(yīng)一個(gè)物理數(shù)據(jù)庫(kù)連接,每次操作都打開(kāi)一個(gè)物理連接,使用完都關(guān)閉連接,這樣造成系統(tǒng)的 性能低下。 </p><p> 數(shù)據(jù)庫(kù)連接池的解決方案是在應(yīng)用程序啟動(dòng)時(shí)建立足夠的數(shù)據(jù)庫(kù)連接,并講這些連接組成一個(gè)連接池(簡(jiǎn)單說(shuō):在一個(gè)“池”里放了好多半成品的數(shù)據(jù)庫(kù)聯(lián)接對(duì)象),由應(yīng)用程序動(dòng)態(tài)地對(duì)池中的連接進(jìn)行申請(qǐng)、使用和釋放。對(duì)于 多于連接池中連接數(shù)的并發(fā)請(qǐng)求,應(yīng)該在請(qǐng)求隊(duì)列中排隊(duì)等
45、待。并且應(yīng)用程序可以根據(jù)池中連接的使用率,動(dòng)態(tài)增加或減少池中的連接數(shù)。 </p><p> 連接池技術(shù)盡可能多地重用了消耗內(nèi)存地資源,大大節(jié)省了內(nèi)存,提高了服務(wù)器地服務(wù)效率,能夠支持更多的客戶服務(wù)。通過(guò)使用連接池,將大大提高程序運(yùn)行效率,同時(shí),我們可以通過(guò)其自身的管理機(jī)制來(lái)監(jiān)視數(shù)據(jù)庫(kù)連接的數(shù)量、使用情況等。</p><p> 數(shù)據(jù)庫(kù)連接是一種關(guān)鍵的有限的昂貴的資源,這一點(diǎn)在多用戶的網(wǎng)頁(yè)
46、應(yīng)用程序中體現(xiàn)得尤為突出。對(duì)數(shù)據(jù)庫(kù)連接的管理能顯著影響到整個(gè)應(yīng)用程序的伸縮性和健壯性,影響到程序的性能指標(biāo)。數(shù)據(jù)庫(kù)連接池正是針對(duì)這個(gè)問(wèn)題提出來(lái)的。</p><p> 數(shù)據(jù)庫(kù)連接池負(fù)責(zé)分配、管理和釋放數(shù)據(jù)庫(kù)連接,它允許應(yīng)用程序重復(fù)使用一個(gè)現(xiàn)有的數(shù)據(jù)庫(kù)連接,而再不是重新建立一個(gè);釋放空閑時(shí)間超過(guò)最大空閑時(shí)間的數(shù)據(jù)庫(kù)連接來(lái)避免因?yàn)闆](méi)有釋放數(shù)據(jù)庫(kù)連接而引起的數(shù)據(jù)庫(kù)連接遺漏。這項(xiàng)技術(shù)能明顯提高對(duì)數(shù)據(jù)庫(kù)操作的性能。 <
47、;/p><p> 數(shù)據(jù)庫(kù)連接池在初始化時(shí)將創(chuàng)建一定數(shù)量的數(shù)據(jù)庫(kù)連接放到連接池中,這些數(shù)據(jù)庫(kù)連接的數(shù)量是由最小數(shù)據(jù)庫(kù)連接數(shù)來(lái)設(shè)定的。無(wú)論這些數(shù)據(jù)庫(kù)連接是否被 使用,連接池都將一直保證至少擁有這么多的連接數(shù)量。連接池的最大數(shù)據(jù)庫(kù)連接數(shù)量限定了這個(gè)連接池能占有的最大連接數(shù),當(dāng)應(yīng)用程序向連接池請(qǐng)求的連接數(shù)超 過(guò)最大連接數(shù)量時(shí),這些請(qǐng)求將被加入到等待隊(duì)列中。數(shù)據(jù)庫(kù)連接池的最小連接數(shù)和最大連接數(shù)的設(shè)置要考慮到下列幾個(gè)因素[8]
48、 [9]:</p><p> 1) 最小連接數(shù)是連接池一直保持的數(shù)據(jù)庫(kù)連接,所以如果應(yīng)用程序?qū)?shù)據(jù)庫(kù)連接的使用量不大,將會(huì)有大量的數(shù)據(jù)庫(kù)連接資源被浪費(fèi).</p><p> 2) 最大連接數(shù)是連接池能申請(qǐng)的最大連接數(shù),如果數(shù)據(jù)庫(kù)連接請(qǐng)求超過(guò)此數(shù),后面的數(shù)據(jù)庫(kù)連接請(qǐng)求將被加入到等待隊(duì)列中,這會(huì)影響之后的數(shù)據(jù)庫(kù)操作.</p><p> 3) 如果最小連接數(shù)與最大連接
49、數(shù)相差太大,那么最先的連接請(qǐng)求將會(huì)獲利,之后超過(guò)最小連接數(shù)量的連接請(qǐng)求等價(jià)于建立一個(gè)新的數(shù)據(jù)庫(kù)連接。不過(guò),這些大于最小連接數(shù)的數(shù)據(jù)庫(kù)連接在使用完不會(huì)馬上被釋放,它將被放到連接池中等待重復(fù)使用或是空閑超時(shí)后被釋放。</p><p> 2.4 MySQL簡(jiǎn)介 </p><p> MySQL是一個(gè)真正的多用戶、多線程SQL數(shù)據(jù)庫(kù)服務(wù)器。SQL(結(jié)構(gòu)化查詢語(yǔ)言)是世界上最流行的和標(biāo)準(zhǔn)化的數(shù)據(jù)庫(kù)
50、語(yǔ)言。MySQL是以一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),它由一個(gè)服務(wù)器守護(hù)程序mysqld和很多不同的客戶程序和庫(kù)組成。</p><p> SQL是一種標(biāo)準(zhǔn)化的語(yǔ)言,它使得存儲(chǔ)、更新和存取信息更容易。例如,你能用SQL語(yǔ)言為一個(gè)網(wǎng)站檢索產(chǎn)品信息及存儲(chǔ)顧客信息,同時(shí)MySQL也足夠快和靈活以允許你存儲(chǔ)記錄文件和圖像。</p><p> MySQL 主要目標(biāo)是快速、健壯和易用。最初是因?yàn)槲覀冃枰?/p>
51、這樣一個(gè)SQL服務(wù)器,它能處理與任何可不昂貴硬件平臺(tái)上提供數(shù)據(jù)庫(kù)的廠家在一個(gè)數(shù)量級(jí)上的大型數(shù)據(jù)庫(kù),但速度更快,MySQL就開(kāi)發(fā)出來(lái)。自1996年以來(lái),我們一直都在使用MySQL,其環(huán)境有超過(guò) 40 個(gè)數(shù)據(jù)庫(kù),包含 10,000個(gè)表,其中500多個(gè)表超過(guò)7百萬(wàn)行,這大約有100 個(gè)吉字節(jié)(GB)的關(guān)鍵應(yīng)用數(shù)據(jù)。</p><p> MySQL建立的基礎(chǔ)是業(yè)已用在高要求的生產(chǎn)環(huán)境多年的一套實(shí)用例程。盡管MySQL仍在
52、開(kāi)發(fā)中,但它已經(jīng)提供一個(gè)豐富和極其有用的功能集。</p><p> 2.5 Hibernate簡(jiǎn)介 </p><p> Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在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è)核心接口在任何開(kāi)發(fā)中都會(huì)用到。通過(guò)這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對(duì)這
54、五的核心接口分別加以介紹。</p><p> ·Session接口:Session接口負(fù)責(zé)執(zhí)行被持久化對(duì)象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫(kù)的交流,包含了很多常見(jiàn)的SQL語(yǔ)句。)。但需要注意的是Session對(duì)象是非線程安全的。同時(shí),Hibernate的session不同于JSP應(yīng)用中的HttpSession。這里當(dāng)使用session這個(gè)術(shù)語(yǔ)時(shí),其實(shí)指的是Hibernate中的session
55、,而以后會(huì)將HttpSesion對(duì)象稱為用戶session。</p><p> ·SessionFactory接口:SessionFactroy接口負(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ù)庫(kù)時(shí),
56、可以為每個(gè)數(shù)據(jù)庫(kù)指定一個(gè)SessionFactory。</p><p> ·Configuration接口:Configuration接口負(fù)責(zé)配置并啟動(dòng)Hibernate,創(chuàng)建SessionFactory對(duì)象。在Hibernate的啟動(dòng)的過(guò)程中,Configuration類的實(shí)例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory對(duì)象。</p><p>
57、183;Transaction接口:Transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開(kāi)發(fā)人員也可以設(shè)計(jì)編寫(xiě)自己的底層事務(wù)處理代碼。</p><p> ·Query和Criteria接口:Query和Criteria接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫(kù)查詢。它可以使用HQL語(yǔ)言或SQL語(yǔ)句兩種表達(dá)方式。</p><p> 2.6 Lucene簡(jiǎn)介 </p><p
58、> Lucene是apache軟件基金會(huì)[4] jakarta項(xiàng)目組的一個(gè)子項(xiàng)目,是一個(gè)開(kāi)放源代碼的全文檢索引擎工具包,即它不是一個(gè)完整的全文檢索引擎,而是一個(gè)全文檢索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎,部分文本分析引擎(英文與德文兩種西方語(yǔ)言)。Lucene的目的是為軟件開(kāi)發(fā)人員提供一個(gè)簡(jiǎn)單易用的工具包,以方便的在目標(biāo)系統(tǒng)中實(shí)現(xiàn)全文檢索的功能,或者是以此為基礎(chǔ)建立起完整的全文檢索引擎。</p><p
59、> 作為一個(gè)開(kāi)放源代碼項(xiàng)目,Lucene從問(wèn)世之后,引發(fā)了開(kāi)放源代碼社群的巨大反響,程序員們不僅使用它構(gòu)建具體的全文檢索應(yīng)用,而且將之集成到各種系統(tǒng)軟件中去,以及構(gòu)建Web應(yīng)用,甚至某些商業(yè)軟件也采用了Lucene作為其內(nèi)部全文檢索子系統(tǒng)的核心。apache軟件基金會(huì)的網(wǎng)站使用了Lucene作為全文檢索的引擎,IBM的開(kāi)源軟件eclipse[9]的2.1版本中也采用了Lucene作為幫助子系統(tǒng)的全文索引引擎,相應(yīng)的IBM的商業(yè)軟
60、件Web Sphere[10]中也采用了Lucene。Lucene以其開(kāi)放源代碼的特性、優(yōu)異的索引結(jié)構(gòu)、良好的系統(tǒng)架構(gòu)獲得了越來(lái)越多的應(yīng)用。</p><p> Lucene是一個(gè)高性能、可伸縮的信息搜索(IR)庫(kù)。它使你可以為你的應(yīng)用程序添加索引和搜索能力。Lucene是用java實(shí)現(xiàn)的成熟的、免費(fèi)的開(kāi)源項(xiàng)目,是著名的Apache Jakarta大家庭的一員,并且基于在Apache軟件許可 [ASF, Lice
61、nse]。同樣,Lucene是當(dāng)前與近幾年內(nèi)非常流行的免費(fèi)的Java信息搜索(IR)庫(kù)。</p><p> Lucene作為一個(gè)全文檢索引擎,其具有如下突出的優(yōu)點(diǎn):</p><p> ?。?)索引文件格式獨(dú)立于應(yīng)用平臺(tái)。Lucene定義了一套以8位字節(jié)為基礎(chǔ)的索引文件格式,使得兼容系統(tǒng)或者不同平臺(tái)的應(yīng)用能夠共享建立的索引文件。</p><p> (2)在傳統(tǒng)全文
62、檢索引擎的倒排索引的基礎(chǔ)上,實(shí)現(xiàn)了分塊索引,能夠針對(duì)新的文件建立小文件索引,提升索引速度。然后通過(guò)與原有索引的合并,達(dá)到優(yōu)化的目的。</p><p> ?。?)優(yōu)秀的面向?qū)ο蟮南到y(tǒng)架構(gòu),使得對(duì)于Lucene擴(kuò)展的學(xué)習(xí)難度降低,方便擴(kuò)充新功能。</p><p> ?。?)設(shè)計(jì)了獨(dú)立于語(yǔ)言和文件格式的文本分析接口,索引器通過(guò)接受Token流完成索引文件的創(chuàng)立,用戶擴(kuò)展新的語(yǔ)言和文件格式,只需要
63、實(shí)現(xiàn)文本分析的接口。</p><p> (5)已經(jīng)默認(rèn)實(shí)現(xiàn)了一套強(qiáng)大的查詢引擎,用戶無(wú)需自己編寫(xiě)代碼即使系統(tǒng)可獲得強(qiáng)大的查詢能力,Lucene的查詢實(shí)現(xiàn)中默認(rèn)實(shí)現(xiàn)了布爾操作、模糊查詢(Fuzzy Search[11])、分組查詢等等。</p><p> 2.7 自定義標(biāo)簽簡(jiǎn)介 </p><p> 一般我們說(shuō)自定義標(biāo)簽是指JSP自定義標(biāo)簽。自定義標(biāo)簽在功能上邏輯
64、上與javaBean 類似,都封裝Java 代碼。自定義標(biāo)簽是可重用的組件代碼,并且允許開(kāi)發(fā)人員為復(fù)雜的操作提供邏輯名稱。</p><p> JSP開(kāi)發(fā)人員使用標(biāo)簽庫(kù)創(chuàng)建標(biāo)簽.標(biāo)簽庫(kù)是按照功能或?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元素,通過(guò)標(biāo)簽可以使JSP網(wǎng)頁(yè)變得簡(jiǎn)潔并且易于維護(hù),還可以方便地實(shí)現(xiàn)同一個(gè)JSP文件支持多種語(yǔ)言版本。由于標(biāo)簽是XML元素,所以它的名稱和屬性都是大小寫(xiě)敏感的</p><p> 2.標(biāo)簽庫(kù)(Tag library):</p><p> 由一系列功能相似、邏輯上互相聯(lián)系的標(biāo)簽構(gòu)成的集合稱為標(biāo)簽庫(kù)。</p><p> 3.標(biāo)簽庫(kù)描述文件(Tag
66、 Library Descriptor):</p><p> 標(biāo)簽庫(kù)描述文件是一個(gè)XML文件,這個(gè)文件提供了標(biāo)簽庫(kù)中類和JSP中對(duì)標(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接口,通過(guò)這個(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)簽庫(kù)中的自定義行為,必須滿足以下兩個(gè)條件:</p>
68、<p> 1)從一個(gè)指定的標(biāo)簽庫(kù)中識(shí)別出代表這種自定義行為的標(biāo)簽</p><p> 2)找到實(shí)現(xiàn)這些自定義行為的具體類</p><p> 第一個(gè)必需條件-找出一個(gè)自定義行為屬于那個(gè)標(biāo)簽庫(kù)-是由標(biāo)簽指令的前綴(Taglib Directive's Prefix)屬性完成,所以在同一個(gè)頁(yè)面中使用相同前綴的元素都屬于這個(gè)標(biāo)簽庫(kù)。每個(gè)標(biāo)簽庫(kù)都定義了一個(gè)默認(rèn)的前綴,用在標(biāo)
69、簽庫(kù)的文檔中或者頁(yè)面中插入自定義標(biāo)簽。所以,你可以使用除了諸如jsp,jspx,java,servlet,sun,sunw(它們都是在JSP白皮書(shū)中指定的保留字)之類的前綴。 </p><p> uri屬性滿足了以上的第二個(gè)要求。為每個(gè)自定義行為找到對(duì)應(yīng)的類。這個(gè)uri包含了一個(gè)字符串,容器用它來(lái)定位TLD文件。在TLD文件中可以找到標(biāo)簽庫(kù)中所有標(biāo)簽處理類的名稱</p><p> 2.
70、 當(dāng)web應(yīng)用程序啟動(dòng)時(shí),容器從WEB-INF文件夾的目錄結(jié)構(gòu)的META-INF搜索所有以.tld結(jié)尾的文件。也就是說(shuō)它們會(huì)定位所有的TLD文件。對(duì)于每個(gè)TLD文件,容器會(huì)先獲取標(biāo)簽庫(kù)的URI,然后為每個(gè)TLD文件和對(duì)應(yīng)的URI創(chuàng)建映射關(guān)系。</p><p> 在JSP頁(yè)面中,我們僅需通過(guò)使用帶有URI屬性值的標(biāo)簽庫(kù)指令來(lái)和具體的標(biāo)簽庫(kù)匹配。</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)致力于開(kāi)發(fā)集成榮譽(yù)展示、新聞公告、信息公開(kāi)、考勤管理、選方向管理、項(xiàng)目管理、日志管理、問(wèn)答交流、討論區(qū)、站內(nèi)短信為一體的綜合性管理系統(tǒng)。不管是學(xué)院級(jí)信息,學(xué)校級(jí)信息,還是個(gè)方面的社會(huì)信息,軟件學(xué)院工作室管理通過(guò)管理員的簡(jiǎn)單的操作從而實(shí)現(xiàn)信息的大眾化、專業(yè)化于一體。</
72、p><p> 1、完善的管理功能:作為綜合性管理系統(tǒng),該系統(tǒng)要具備強(qiáng)大后臺(tái)管理功能。除了新聞公告、信息公開(kāi)外有完善的后臺(tái)管理外,考勤管理、選方向管理、日志管理、問(wèn)答交流、討論區(qū)等等都需要完善的管理功能。</p><p> 2、方便的用戶操作:系統(tǒng)除了有良好完善的功能外,還應(yīng)該給用戶提供友好的操作方式,方便用戶使用系統(tǒng)完成工作。在實(shí)現(xiàn)的各個(gè)細(xì)節(jié)上都考慮了盡量簡(jiǎn)化用戶操作,用最簡(jiǎn)單的操作實(shí)現(xiàn)強(qiáng)
73、大的功能。</p><p> 3、多方面的系統(tǒng)安全措施:網(wǎng)絡(luò)發(fā)展給信息系統(tǒng)的開(kāi)發(fā)帶來(lái)方便的同時(shí),也給它還帶了許多麻煩。用戶的增多和資源共享程度的提高,給系統(tǒng)的安全性帶來(lái)越來(lái)越多的安全隱患,所以系統(tǒng)通過(guò)對(duì)用戶信息的加密、數(shù)據(jù)備份、數(shù)據(jù)還原、文件模板的創(chuàng)建、觸發(fā)器等手段保證了數(shù)據(jù)安全性的提高。同時(shí)使用對(duì)稱加密技術(shù)讓數(shù)據(jù)傳送更安全可靠。</p><p><b> 3.2 系統(tǒng)分析&
74、lt;/b></p><p> 3.2.1 系統(tǒng)功能分析</p><p> 通過(guò)對(duì)系統(tǒng)的分析和研究,系統(tǒng)在應(yīng)該分為信息展示、日常管理、系統(tǒng)管理、互動(dòng)交流四大模塊。系統(tǒng)操作層次可以分為管理員、導(dǎo)師、學(xué)生。其中管理員主要負(fù)責(zé)后臺(tái)全部管理,導(dǎo)師主要管理本工作室學(xué)生的日志、信息等,學(xué)生可以選方向、工作日志、考勤查詢等操作。所有用戶均可參與互動(dòng)交流,可查詢公共信息如學(xué)生導(dǎo)師記錄、考勤記錄等
75、,可查看前臺(tái)內(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> 信息展示:主要為前臺(tái)展示型模塊,包含榮譽(yù)展示、新聞公告、信息公開(kāi)</p><p> 榮譽(yù)展示:主要展示優(yōu)秀個(gè)人及優(yōu)秀作品</p><p> 新聞公告
76、:在前臺(tái)顯示工作室最新的新聞及公告信息,提供最新動(dòng)態(tài)</p><p> 信息公開(kāi):主要用于日常公開(kāi)和工作室展示,方便其他人了解工作室</p><p> 日常管理:主要為后臺(tái)型模塊,三種用戶均在各自獨(dú)立的后臺(tái)操作。包含考勤管理、選方向管理、項(xiàng)目管理、日志管理</p><p> 考勤管理:前臺(tái)提供學(xué)生考勤信息查詢,后臺(tái)由管理員管理</p><p
77、> 選方向管理:提供未進(jìn)工作室學(xué)生選方向的功能,管理員可以進(jìn)行匯總</p><p> 項(xiàng)目管理:提供工作室項(xiàng)目日常管理,如項(xiàng)目分組、進(jìn)度等</p><p> 日志管理:學(xué)生寫(xiě)工作日志,導(dǎo)師進(jìn)行評(píng)價(jià)打分</p><p> 系統(tǒng)管理:主要為后臺(tái)管理設(shè)置型模塊</p><p> 系統(tǒng)設(shè)置:設(shè)置系統(tǒng)基本信息</p>&l
78、t;p> 用戶管理:管理員管理管理員、導(dǎo)師、學(xué)生三級(jí)用戶</p><p> 數(shù)據(jù)維護(hù):提供數(shù)據(jù)庫(kù)維護(hù)功能,如數(shù)據(jù)庫(kù)備份、恢復(fù)等</p><p><b> 互動(dòng)交流:</b></p><p> 你問(wèn)我答:提供學(xué)生提問(wèn),學(xué)生或?qū)熁卮鸬囊粋€(gè)平臺(tái)</p><p> 討論區(qū):提供師生在線交流的平臺(tái)</p&g
79、t;<p> 站內(nèi)短信:提供師生私人交流的平臺(tái) </p><p> 3.2.2 系統(tǒng)流程分析</p><p> 軟件學(xué)院工作室管理中心在運(yùn)行過(guò)程中頁(yè)面的基本流程如圖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í)填寫(xiě)工作日志,具體數(shù)據(jù)流如圖3.3所示。</p><p> 圖3.3 系統(tǒng)數(shù)據(jù)流圖</p><p> 3.3 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p> 3.3.1 系統(tǒng)E-R圖</p><p> 在軟件學(xué)院工作室管
81、理系統(tǒng)中,整個(gè)系統(tǒng)都是圍繞管理員、導(dǎo)師、學(xué)生三種用戶來(lái)的,主要是師生間的日常教學(xué)工作及交流,因此可以將這點(diǎn)做為E-R圖的分析重點(diǎn),圍繞它們進(jìn)行其它數(shù)據(jù)的E-R圖分析。通過(guò)管理員、導(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ù)庫(kù)表設(shè)計(jì)</p><p> (1) 管理員詳情表(WR_AdminInfo),其中主鍵為UID,具體字段信息如表3.1所示。</p><p> 表3.1 管理員詳情表</p><p> (2) 問(wèn)答答案表(WR_AskAnswer),其中主鍵為AnswerId,具體字段信息如表3.2所示。</p&g
83、t;<p> 表3.2 問(wèn)答答案表</p><p> (3) 問(wèn)答類別表(WR_AskClass),其中主鍵為ClassID,具體字段信息如表3.3所示。</p><p> 表3.3 問(wèn)答類別表</p><p> (4) 問(wèn)題內(nèi)容表(WR_AskContent),其中主鍵為QuestionId,具體字段信息如表3.4所示。</p>
84、<p> 表3.4 問(wèn)題內(nèi)容表</p><p> (5) 問(wèn)題表(WR_AskQuestion),其中主鍵為QuestionId,具體字段信息如表3.5所示。</p><p><b> 表3.5 問(wèn)題表</b></p><p> (6) 問(wèn)答用戶表(WR_AskUser),其中主鍵為Uid,具體字段信息如表3.6所示。<
85、;/p><p> 表3.6 問(wèn)答用戶表</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) 班級(jí)表(WR_Class),其中主鍵為ClassID,具體字段信息如表3.10所示。</p><p><b> 表
87、3.10 班級(jí)表</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) 年級(jí)表(WR_Grade),其中主鍵為GradeName,具體字段信息如表3.15所示。</p><p><b> 表3.15 年級(jí)表</b></p><p> (16) 友情鏈接表(WR_Link),其中主鍵為L(zhǎng)inkID,具體字段信息如表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),其中主鍵為L(zhǎng)ogID,具體字段信息如表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模式開(kāi)發(fā),通過(guò)分層,從而使JSP頁(yè)面代碼簡(jiǎn)潔,功能執(zhí)行流程清晰,將操作執(zhí)行的代碼封裝起來(lái),方便方法重調(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元素中找到對(duì)應(yīng)的ActionServlet類;</p><p> ·根據(jù)struts-config.xml中的設(shè)置,把客戶提交的表單數(shù)據(jù)傳給Form對(duì)象;</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對(duì)象,通過(guò)控制層進(jìn)行頁(yè)面跳轉(zhuǎn),將結(jié)果集返回并顯示在頁(yè)面上。</p><p> 4.2 信
102、息展示模塊</p><p> ⒈功能:主要為前臺(tái)展示型模塊,包含榮譽(yù)展示、新聞公告、信息公開(kāi)。榮譽(yù)展示包括優(yōu)秀個(gè)人、優(yōu)秀作品。前臺(tái)展示部分全部人均有權(quán)限,后臺(tái)編輯部分公管理員有權(quán)限。</p><p><b> ⒉設(shè)計(jì)思想:</b></p><p><b> (1) 榮譽(yù)展示:</b></p><p
103、> 優(yōu)秀個(gè)人:優(yōu)秀個(gè)人包括姓名、學(xué)號(hào)、方向、添加日期、摘要、圖片地址。圖片為優(yōu)秀學(xué)生的照片,程序自動(dòng)生成一張120*160縮略圖。優(yōu)秀個(gè)人后臺(tái)學(xué)號(hào)、姓名的選擇使用AJAX技術(shù),不用刷新頁(yè)面。僅管理員有權(quán)限。</p><p> 優(yōu)秀作品:優(yōu)秀作品包括作品名、圖片地址、摘要、作者、方向、源碼地址、運(yùn)行地址、添加日期等。作者可以有多個(gè),同樣通過(guò)AJAX技術(shù)選擇學(xué)生。運(yùn)行地址是配置好的可以運(yùn)行的優(yōu)秀作品的網(wǎng)址,
104、可以和工作室管理系統(tǒng)不在同一臺(tái)服務(wù)器上。優(yōu)秀作品圖片地址為優(yōu)秀作品截圖,程序自動(dòng)生成一張200*150的縮略圖。僅管理有權(quán)限。</p><p><b> 新聞公告: </b></p><p> 新聞:新聞包括列表、添加、修改、刪除功能。僅管理員有權(quán)限。新聞包括標(biāo)題、作者、新聞分類、新聞來(lái)源、新聞內(nèi)容、發(fā)布者、新聞性質(zhì)。其中新聞性質(zhì)分為置頂、推薦、幻燈圖、審核。選中
105、置頂時(shí)新聞在列表時(shí)會(huì)顯示上最上方,選中推薦時(shí)在新聞顯示時(shí)左欄的推薦新聞列表中會(huì)顯示出來(lái),選中幻燈圖時(shí)在前臺(tái)會(huì)以幻燈圖的形式播放出來(lái),選中審核時(shí)新聞才會(huì)在前臺(tái)顯示出來(lái)。新聞采用在線HMTL編輯器eWebEditor,讓管理員編輯新聞更簡(jiǎn)單。</p><p> 新聞分類:新聞分類包括分類列表、添加、修改、刪除功能。僅管理員有權(quán)限。新聞分類只設(shè)一級(jí)分類,并設(shè)置排序字段,按數(shù)字正序排序。</p><
106、p> 公告:公告可以由管理員或?qū)熖砑?,管理員可以添加院級(jí)公告和某個(gè)工作室的公告,導(dǎo)師只可以添加自己工作室的公告。學(xué)生或?qū)熢诘顷戇M(jìn)后臺(tái)時(shí)會(huì)顯示院級(jí)公告和本工作室公告。公告內(nèi)容依然使用eWebEditor簡(jiǎn)化操作過(guò)程。</p><p><b> 信息公開(kāi): </b></p><p> 工作室展示:工作室展示主要放在前臺(tái)顯示。首頁(yè)提供大幅幻燈顯示工作室的LO
107、GO圖片,隨機(jī)生成4張圖片。工作室展示列表頁(yè)可以按年級(jí)查詢當(dāng)前或歷史工作室情況。工作室展示頁(yè)除列出工作室LOGO及工作室基本信息外還列出該工作室所有成員。</p><p><b> ⒊代碼分析:</b></p><p> (1) 優(yōu)秀作品修改的代碼分析(這里以優(yōu)秀作品修改為例來(lái)解析代碼)</p><p> <1> 首先打開(kāi)ad
108、min/fineSoft.do?method=list顯示優(yōu)秀作品列表</p><p> 解釋:通過(guò)此路徑struts會(huì)去admin-struts-config.xml中查找對(duì)應(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,再?gòu)腡iles列表中找到對(duì)應(yīng)的jsp文件為/ /WEB-INF/jsp/admin/fineSoftList.jsp,然后處理標(biāo)
113、簽顯示之。</p><p> <2> 點(diǎn)擊編輯鏈接后進(jìn)入優(yōu)秀作品修改頁(yè)面</p><p> 解釋:同上找到FineSoftAction中的edit方法,首先通過(guò)傳到action中的參數(shù)softId,找到對(duì)應(yīng)softId的優(yōu)秀作品,讀取出來(lái)跳轉(zhuǎn)到對(duì)應(yīng)的jsp文件上顯示。若沒(méi)找到對(duì)就softId的優(yōu)秀作品則提示“沒(méi)有找到優(yōu)秀作品”。變量傳遞可以使用ActionForm Bean
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)--畢業(yè)設(shè)計(jì)管理系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)
- jsp工作室管理系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 醫(yī)院管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)
- 聊天室畢業(yè)設(shè)計(jì)說(shuō)明書(shū)
- 藥庫(kù)管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)
- 訂單管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)
- 畢業(yè)設(shè)計(jì)說(shuō)明書(shū)---畢業(yè)設(shè)計(jì)課題綜合管理系統(tǒng)
- 畢業(yè)設(shè)計(jì)說(shuō)明書(shū)---畢業(yè)設(shè)計(jì)課題綜合管理系統(tǒng)
- delphi物資管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)
- 圖書(shū)管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)
- 學(xué)籍管理畢業(yè)設(shè)計(jì)說(shuō)明書(shū)
- 醫(yī)院收費(fèi)管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)
- 生產(chǎn)管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)
- 企業(yè)文檔管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)
- 班級(jí)學(xué)生管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)
- 倉(cāng)庫(kù)管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)3
- 物流管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)
- 產(chǎn)品管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)
- 企業(yè)員工管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)
- 畢業(yè)設(shè)計(jì)說(shuō)明書(shū)---畢業(yè)設(shè)計(jì)課題綜合管理系統(tǒng).doc
評(píng)論
0/150
提交評(píng)論