學(xué)生綜合信息管理系統(tǒng)畢業(yè)設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩29頁(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>  學(xué)生綜合信息管理系統(tǒng)</p><p><b>  1 引言</b></p><p>  學(xué)生綜合信息管理系統(tǒng)是大學(xué)信息管理系統(tǒng)建設(shè)的重要組成部分,是提高教學(xué)管理的質(zhì)量和效益乃至建設(shè)知名高水平大學(xué)的關(guān)鍵環(huán)節(jié)。學(xué)生信息處理的電腦化、網(wǎng)絡(luò)化,也是實(shí)現(xiàn)學(xué)校管理現(xiàn)代化和信息化的重要內(nèi)容。學(xué)生綜合信息管理系統(tǒng)的內(nèi)容對(duì)于學(xué)校的決策者和管理者來(lái)說(shuō)都至關(guān)重要,所

2、以學(xué)生綜合信息管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?。但一直以?lái)人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)了不少的困難。</p><p><b>  1.1 研究背景</b></p><p>  隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)

3、大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生信息進(jìn)行管理,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生檔案管理的效率,也是進(jìn)行科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。隨著進(jìn)入二十一世紀(jì),計(jì)算機(jī)技術(shù)迅速向著網(wǎng)絡(luò)化、集成化方向發(fā)展。傳統(tǒng)的單機(jī)版應(yīng)用軟件正在逐漸退出舞臺(tái),取而代之的是

4、支持網(wǎng)絡(luò)、支持多種數(shù)據(jù)信息(多媒體)的新一代網(wǎng)絡(luò)版應(yīng)用軟件,而目前網(wǎng)絡(luò)版軟件中似乎存在著兩種不同的趨勢(shì),一種是稱為客戶端——服務(wù)器的C/S結(jié)構(gòu)應(yīng)用系統(tǒng),另一種是稱為瀏覽器——服務(wù)器的B/S結(jié)構(gòu)應(yīng)用系統(tǒng)[3]。而后者的特點(diǎn)是在客戶端直接采用了功能強(qiáng)大的瀏覽器軟件作為界面,其優(yōu)點(diǎn)在于軟件開(kāi)發(fā)效率高,客戶端不受操作平臺(tái)的限制、也不受地域的限制,網(wǎng)絡(luò)傳輸量少,即適用于局域網(wǎng),更適用于Internet,而且投資小、見(jiàn)效快,用戶可以不必進(jìn)行服務(wù)器方

5、面的投資,而是去租用,甚至是免費(fèi)使用ISP的服務(wù)器資源,因而受到越來(lái)越多</p><p>  因此,開(kāi)發(fā)一套采用B/S結(jié)構(gòu)的學(xué)生綜合信息管理系統(tǒng)就成為必要的事情。本系統(tǒng)正是采用B/S結(jié)構(gòu)開(kāi)發(fā)的[3],該系統(tǒng)主要由學(xué)籍維護(hù)、選課管理、成績(jī)查詢等功能模塊組成,實(shí)現(xiàn)學(xué)生基本信息管理、學(xué)生選修課程管理以及學(xué)生成績(jī)查詢管理等。本文將在后面一一加以詳細(xì)闡述。</p><p>  1.2 可行性分析&

6、lt;/p><p>  1.2.1 社會(huì)可行性</p><p>  B/S是Brower/Server的縮寫,客戶機(jī)上只要安裝一個(gè)瀏覽器(Browser),如Netscape Navigator或Internet Explorer,服務(wù)器安裝Oracle、Sybase、Informix或 SQL Server等數(shù)據(jù)庫(kù)[1]。瀏覽器通過(guò)Web Server 同數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互[4]。B/S最

7、大的優(yōu)點(diǎn)就是可以在任何地方進(jìn)行操作而不用安裝任何專門的軟件。只要有一臺(tái)能上網(wǎng)的電腦就能使用,客戶端零維護(hù)。系統(tǒng)的擴(kuò)展非常容易,現(xiàn)在的商業(yè)軟件越來(lái)越多趨向于采用B/S模式的結(jié)構(gòu)。 </p><p>  1.2.2 技術(shù)可行性</p><p>  使用Eclipse開(kāi)發(fā)的B/S模式結(jié)構(gòu)的數(shù)據(jù)庫(kù)系統(tǒng),可以利用其提供的許多對(duì)于數(shù)據(jù)庫(kù)訪問(wèn)與控制的有效機(jī)制,開(kāi)發(fā)過(guò)程并不是很長(zhǎng)且難度適中。本人曾系統(tǒng)地

8、學(xué)習(xí)了《數(shù)據(jù)庫(kù)原理及應(yīng)用》這門課程,掌握了數(shù)據(jù)庫(kù)的基本原理及數(shù)據(jù)庫(kù)的設(shè)計(jì)方法,并能夠熟練應(yīng)用Eclipse進(jìn)行數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)。在畢業(yè)設(shè)計(jì)前期準(zhǔn)備階段,本人也搜集了與本課題相關(guān)的一些文獻(xiàn)資料和原型系統(tǒng),為設(shè)計(jì)工作提供了較大的技術(shù)支持。</p><p>  1.2.3 經(jīng)濟(jì)可行性</p><p>  本課題的開(kāi)發(fā)主要是要花費(fèi)相當(dāng)多的人力和時(shí)間,雖然開(kāi)發(fā)出來(lái)的軟件可能離具體產(chǎn)生效益還有一定的距

9、離。但是,出于通過(guò)畢業(yè)設(shè)計(jì)來(lái)豐富自己的專業(yè)知識(shí),并從長(zhǎng)遠(yuǎn)利益來(lái)考慮,本課題的設(shè)計(jì)開(kāi)發(fā)還是具有相當(dāng)大的經(jīng)濟(jì)可行性的。</p><p><b>  1.3 技術(shù)平臺(tái)</b></p><p>  1.3.1 B/S架構(gòu)</p><p>  在B/S體系結(jié)構(gòu)系統(tǒng)中,用戶通過(guò)瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請(qǐng)求,服務(wù)器對(duì)瀏覽器的請(qǐng)求進(jìn)行處理,將用

10、戶所需信息返回到瀏覽器。B/S結(jié)構(gòu)簡(jiǎn)化了客戶機(jī)的工作,客戶機(jī)上只需配置少量的客戶端軟件。服務(wù)器將擔(dān)負(fù)更多的工作,對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)和應(yīng)用程序的執(zhí)行將在服務(wù)器上完成。瀏覽器發(fā)出請(qǐng)求,而其余如數(shù)據(jù)請(qǐng)求、加工、結(jié)果返回以及動(dòng)態(tài)網(wǎng)頁(yè)生成等工作全部由Web Server完成。實(shí)際上B/S體系結(jié)構(gòu)是把二層C/S結(jié)構(gòu)的事務(wù)處理邏輯模塊從客戶機(jī)的任務(wù)中分離出來(lái),由Web服務(wù)器單獨(dú)組成一層來(lái)負(fù)擔(dān)其任務(wù),這樣客戶機(jī)的壓力減輕了,把負(fù)荷分配給了Web服務(wù)器。這種

11、三層體系結(jié)構(gòu)如圖1.1所示。</p><p>  圖1.1 B/S架構(gòu)</p><p>  三層B/S結(jié)構(gòu)將應(yīng)用的三個(gè)部分明確的分開(kāi):表示部分、應(yīng)用邏輯部分、數(shù)據(jù)訪問(wèn)部分。這三個(gè)部分在邏輯上獨(dú)立的分開(kāi),分別加以實(shí)現(xiàn),稱之為:客戶端、應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器。而在客戶端和應(yīng)用服務(wù)器之間加入一個(gè)WEB服務(wù)器,就形成了一種特殊的B/S結(jié)構(gòu):Browser/Server,只在客戶端安裝瀏覽器軟件即

12、可??蛻舳耸褂肐nternet Explore時(shí),就可以讓Internet Explore變成為能夠處理數(shù)據(jù)的應(yīng)用系統(tǒng)。由于這種模式是提供一個(gè)跨平臺(tái)的、簡(jiǎn)單一致的應(yīng)用環(huán)境,實(shí)現(xiàn)了開(kāi)發(fā)系統(tǒng)與應(yīng)用系統(tǒng)的分離,因此避免了為多重不同的操作系統(tǒng)開(kāi)發(fā)同一應(yīng)用系統(tǒng)的重復(fù)操作,便于用戶群的擴(kuò)展、變化以及應(yīng)用系統(tǒng)的管理。因此該結(jié)構(gòu)在管理信息系統(tǒng)開(kāi)發(fā)領(lǐng)域中獲得飛速發(fā)展,成為應(yīng)用軟件開(kāi)發(fā)中一種流行的體系結(jié)構(gòu)。所以在開(kāi)發(fā)本系統(tǒng)時(shí)采用這種模式。</p>

13、;<p>  1.3.2 JSP</p><p>  JSP (Java Server Pages)是由Sun公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)[13]。</p><p>  (1) 一處編寫隨處運(yùn)行。這是當(dāng)今基于構(gòu)件技術(shù)的應(yīng)用系統(tǒng)開(kāi)發(fā)的特點(diǎn)之一。 </p><p>  (2) 系統(tǒng)的多平臺(tái)支持。系統(tǒng)可以在任意環(huán)境開(kāi)發(fā),在任意環(huán)境部

14、署,在任意環(huán)境擴(kuò)展。相比,ASP/PHP的局限性是顯面易見(jiàn)的。 </p><p>  (3) 強(qiáng)大的可伸縮性。通過(guò)jar文件就可以運(yùn)行 Servlet/JSP,且由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均橫,支持多臺(tái)Application進(jìn)行事務(wù)處理、消息處理[15]。</p><p>  (4) 多樣化和功能強(qiáng)大的開(kāi)發(fā)工具支持。如當(dāng)前主流的MyEclipse,使得開(kāi)發(fā)更為簡(jiǎn)單便捷。</p>

15、;<p>  1.3.3 SQL Server 2000</p><p>  SQL Server 2000具有較好的可伸縮性和可靠性,提供了以Web標(biāo)準(zhǔn)為基礎(chǔ)的擴(kuò)展數(shù)據(jù)庫(kù)編程功能,可以滿足電子商務(wù)和企業(yè)應(yīng)用程序的要求。SQL Server 2000支持XML和Internet標(biāo)準(zhǔn),具有基于Web的分析能力,允許使用內(nèi)置的存儲(chǔ)過(guò)程以XML格式存儲(chǔ)、更新、刪除、檢索數(shù)據(jù)。SQL Server 200

16、0能提供超大型系統(tǒng)所需的數(shù)據(jù)庫(kù)服務(wù)。大型服務(wù)器可能有成千上萬(wàn)的用戶同時(shí)連接到SQL Server 2000的情況,SQL Server 2000為這些環(huán)境提供了全面的保護(hù),具有防止問(wèn)題發(fā)生的安全措施,例如,可以防止多個(gè)用戶試圖同時(shí)更新相同的數(shù)據(jù)。SQL Server 2000還在多個(gè)用戶之間有效地分配可用資源,比如內(nèi)存、網(wǎng)絡(luò)帶寬和磁盤I/O等。</p><p>  SQL Server 2000不僅能作為一個(gè)功能

17、強(qiáng)大的數(shù)據(jù)庫(kù)服務(wù)器有效地工作,而且數(shù)據(jù)庫(kù)引擎也用在需要在客戶端本地存儲(chǔ)獨(dú)立數(shù)據(jù)庫(kù)的應(yīng)用程序中。SQL Server 2000可以動(dòng)態(tài)地將自身配置成能有效地使用客戶端桌面或膝上型電腦中的可用資源,而不需要為每個(gè)客戶端專設(shè)一個(gè)數(shù)據(jù)庫(kù)管理員。應(yīng)用程序供應(yīng)商還可以將SQL Server 2000作為應(yīng)用程序的數(shù)據(jù)存儲(chǔ)組件嵌入到應(yīng)用程序中。SQL Server在網(wǎng)絡(luò)組件的頂部添加了服務(wù)器特有的中介組件,諸如開(kāi)放式數(shù)據(jù)庫(kù)連接(ODBC)后能使不同客

18、戶機(jī)進(jìn)行相互連接,它可處理基于Internet的應(yīng)用程序,幫助用戶把SQL Server數(shù)據(jù)庫(kù)信息集成到Web頁(yè)面。</p><p>  1.3.4 Tomcat</p><p>  Tomcat服務(wù)器:Apache組織開(kāi)發(fā)的一種 JSP引擎,本身具有 Web服務(wù)器的功能,可以作為獨(dú)立的Web服務(wù)器來(lái)使用[14]。但是,在作為Web 服務(wù)器方面,Tomcat處理靜態(tài) HTML頁(yè)面時(shí)不如A

19、pache 迅速,也沒(méi)有 Apache 健壯,所以我們一般將 Tomcat 與 Apache 配合使用,讓Apache對(duì)網(wǎng)站的靜態(tài)頁(yè)面請(qǐng)求提供服務(wù),而Tomcat作為專用的 JSP 引擎,提供 JSP 解析,以得到更好的性能。并且Tomcat本身就是Apache的一個(gè)子項(xiàng)目,所以 Tomcat 對(duì) Apache 提供了強(qiáng)有力的支持。對(duì)于初學(xué)者來(lái)說(shuō),Tomcat是一個(gè)很不錯(cuò)的選擇。</p><p>  1.3.5

20、 JDBC</p><p>  為支持Java程序的數(shù)據(jù)庫(kù)操作功能,Java語(yǔ)言采用了專門的Java數(shù)據(jù)庫(kù)編程接口(Java DataBase Connecivity, JDBC),用于在Java程序中實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作功能并簡(jiǎn)化操作過(guò)程。JDBC支持基本SQL語(yǔ)句,提供多樣化的數(shù)據(jù)庫(kù)連接方式,為各種不同的數(shù)據(jù)庫(kù)提供統(tǒng)一的操作界面。JDBC工作原理如圖1.2所示。</p><p>  圖1.2

21、 JDBC工作原理</p><p>  1.4 開(kāi)發(fā)和運(yùn)行環(huán)境</p><p><b>  (1) 服務(wù)器端 </b></p><p><b>  硬件配置:</b></p><p>  CPU: 主頻1.0GHZ以上/512M內(nèi)存</p><p><b>  硬

22、盤:20G以上</b></p><p>  操作系統(tǒng):Windows XP</p><p>  數(shù)據(jù)庫(kù)管理系統(tǒng):SQL Server 2000 </p><p>  (2) 瀏覽器端: </p><p>  硬件配置:PIII600以上/128M內(nèi)存 </p><p>  操作系統(tǒng):Windows XP

23、</p><p><b>  2 系統(tǒng)需求分析</b></p><p>  在信息高速發(fā)展的當(dāng)今時(shí)代,任何學(xué)校、企業(yè)都離不開(kāi)信息化建設(shè),信息化水平已經(jīng)成為一個(gè)評(píng)價(jià)高校綜合實(shí)力的一項(xiàng)重要指標(biāo)。近年來(lái),高校都建設(shè)了高校校園網(wǎng),學(xué)生綜合信息管理系統(tǒng)作為高校校園網(wǎng)建設(shè)的一個(gè)模塊,主要是為了學(xué)生在校園網(wǎng)內(nèi)就了解更多的與學(xué)生生活相關(guān)的信息。學(xué)校的公告網(wǎng)上發(fā)布,學(xué)生信息網(wǎng)上查詢,

24、方便教師和學(xué)生查詢學(xué)生信息,成績(jī)查詢使學(xué)生能及時(shí)了解自己的成績(jī)以及方便學(xué)生選課,同時(shí)也方便教師及時(shí)做出課程調(diào)整等。學(xué)生綜合信息管理系統(tǒng)可作為一個(gè)高校學(xué)生獲取信息、學(xué)生交流、選課和教務(wù)管理的平臺(tái)。</p><p>  學(xué)生綜合信息管理系統(tǒng)主要包括新聞動(dòng)態(tài)、學(xué)生信息與成績(jī)查詢、學(xué)生選課系統(tǒng)、留言板系統(tǒng)。該系統(tǒng)的模塊劃分如圖2.1所示。</p><p>  圖2.1 系統(tǒng)模塊劃分</p&g

25、t;<p>  2.1 新聞動(dòng)態(tài)模塊</p><p>  新聞動(dòng)態(tài)模塊作為一個(gè)信息發(fā)布平臺(tái),學(xué)校在校園網(wǎng)內(nèi)發(fā)布重要公告、考試信息等,利用局域網(wǎng)的優(yōu)勢(shì)使學(xué)生在第一時(shí)間內(nèi)得到這些信息,同時(shí)把一些校外的與學(xué)生生活相關(guān)的新聞?wù)浵聛?lái)在校園網(wǎng)內(nèi)發(fā)布,使學(xué)生在校園網(wǎng)內(nèi)就能了解到更多與學(xué)生學(xué)習(xí)、生活息息相關(guān)的信息。新聞動(dòng)態(tài)模塊需要完成的任務(wù)如下,如圖2.2所示。</p><p>  (1

26、) 新聞標(biāo)題分類顯示,學(xué)生可以按照新聞?lì)愋蜑g覽新聞標(biāo)題,選擇感興趣的新聞查看具體內(nèi)容。</p><p>  (2) 查看新聞具體內(nèi)容,瀏覽新聞的詳細(xì)內(nèi)容。</p><p>  (3) 相關(guān)新聞標(biāo)題顯示,當(dāng)學(xué)生查看任何一條新聞的具體內(nèi)容時(shí),能夠?yàn)g覽到與該新聞相關(guān)的最新幾條新聞的標(biāo)題,方便查看。</p><p>  圖2.2 新聞動(dòng)態(tài)模塊用例圖</p>&

27、lt;p>  2.2 學(xué)生信息與成績(jī)查詢模塊</p><p>  學(xué)生信息管理模塊主要實(shí)現(xiàn)學(xué)生信息網(wǎng)上管理,以便學(xué)生及時(shí)維護(hù)與管理本人的基本信息,學(xué)生、教師能夠查詢到學(xué)生的基本信息,以及學(xué)生能及時(shí)了解自己的考試成績(jī),學(xué)生信息管需要完成的任務(wù)如下,如圖2.3所示。</p><p>  (1) 班級(jí)學(xué)生信息查詢,按班級(jí)查詢學(xué)生的基本信息,此處只需要學(xué)生的基本信息,如姓名、年齡、性別、籍

28、貫等。</p><p>  (2) 學(xué)生詳細(xì)信息的查詢可以按輸入的學(xué)號(hào)查詢學(xué)生的詳細(xì)信息,提供給需要了解學(xué)生詳細(xì)信息的教師、學(xué)校的相關(guān)管理人員以及學(xué)生查看。</p><p>  (3) 學(xué)生信息修改,當(dāng)學(xué)生的基本信息如電話、宿舍等基本信息有變更的時(shí)候,學(xué)生及時(shí)地維護(hù)自己的信息。</p><p>  (4) 密碼修改,學(xué)校給每位學(xué)生的初始密碼都是相同的,學(xué)生登錄系統(tǒng)后

29、要修改系統(tǒng)登錄密碼。</p><p>  (5) 學(xué)生成績(jī)查詢,學(xué)生可以按學(xué)期或者針對(duì)某一門課程來(lái)查詢?cè)撜n程的成績(jī)。</p><p>  圖2.3 學(xué)生信息與成績(jī)查詢模塊用例圖</p><p>  2.3 選課管理模塊</p><p>  選課管理,現(xiàn)在很多大學(xué)課程實(shí)行學(xué)分制,學(xué)校的課程分為A、B、C 3種類型,A類為必修課,由學(xué)校統(tǒng)一安排

30、,B類為院級(jí)選修課,C類為校級(jí)選修課。學(xué)校規(guī)定學(xué)生在大學(xué)期間,修完了學(xué)校規(guī)定的必修課之后,B類和C類選修課累計(jì)學(xué)分達(dá)到一定的標(biāo)準(zhǔn)才予以畢業(yè),這不僅有利于學(xué)生發(fā)揮各自的特長(zhǎng),可以選修本人感興趣的課程,即調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性,又使學(xué)生基礎(chǔ)課程的學(xué)習(xí)達(dá)到一定的要求,有利于學(xué)校教學(xué)資源的有力配置,同時(shí)有人有利于學(xué)校提高教學(xué)質(zhì)量,督促教師不斷的提高教學(xué)水平。選課系統(tǒng)需要完成的任務(wù)如下,選課管理如圖2.4所示。</p><p&g

31、t;  (1) 查看課程信息,學(xué)生可以根據(jù)課程類型或者具體的課程編號(hào)查看課程的詳細(xì)信息,為學(xué)生選課做了一個(gè)參考。</p><p>  (2) 查看教師信息,學(xué)生可以按照學(xué)院或者教師編號(hào)查看教師信息,為選課做一個(gè)參考。</p><p>  (3) 查看課表,將學(xué)生已經(jīng)選擇的課表和必修課程按照上課時(shí)間列出,方便學(xué)生查看,同時(shí)為了方便學(xué)生選課。</p><p>  (4)

32、 選課,學(xué)生登錄后可以按照具體的時(shí)間來(lái)選課,因此必須提供查詢某一具體時(shí)間可選課程的功能,方便學(xué)生選課。</p><p>  (5) 退選,學(xué)生選課之后,可以試聽(tīng)課程,如果在課程開(kāi)始兩周之內(nèi)對(duì)所選擇的課程不滿意,可以推選課程。因此,此處要提供給學(xué)生查詢本人選課情況查詢的功能。</p><p>  (6) 打印課表,當(dāng)學(xué)生選課完畢,學(xué)生需要打印課表,因此需要把課程的安排做成一個(gè)與時(shí)間相關(guān)的表格

33、,方便學(xué)生打印課表。</p><p>  圖2.4 選課管理模塊用例圖</p><p>  2.4 留言板管理模塊</p><p>  留言板管理,學(xué)生可以匿名登錄留言板,向?qū)W校的職能部門提出問(wèn)題或者學(xué)生之間一些重要信息在此交流。學(xué)校相關(guān)的職能部門根據(jù)各自的職能及時(shí)做出處理和解答,旨在提高學(xué)校各個(gè)職能部門的管理水平,同時(shí)也可以作為學(xué)生獲取信息的渠道和交流的平臺(tái)。&

34、lt;/p><p>  留言板管理模塊要實(shí)現(xiàn)的任務(wù)如下,留言板管理如圖2.5所示。</p><p>  (1) 留言板信息分類顯示,可以按照不同的職能部門的專欄瀏覽各種類型的留言板信息的主題,選擇感興趣的主題查看詳細(xì)內(nèi)容。</p><p>  (2) 留言板詳細(xì)內(nèi)容查看,選擇需要查看的主題,查看留言板信息的詳細(xì)內(nèi)容。</p><p>  (3)

35、評(píng)價(jià)留言板信息,在查看留言板信息的頁(yè)面,可以添加評(píng)論信息,還可以為此留言板信息評(píng)分。</p><p>  (4) 添加留言板信息,可以按各個(gè)專欄的種類添加留言板信息。</p><p>  圖2.5 留言板管理模塊用例圖</p><p><b>  3 系統(tǒng)設(shè)計(jì)</b></p><p><b>  3.1 總

36、體設(shè)計(jì)</b></p><p>  系統(tǒng)采用三層架構(gòu),即分為表示層、業(yè)務(wù)層、數(shù)據(jù)層,其中:</p><p>  表示層:作為用戶的接口層,負(fù)責(zé)與整個(gè)系統(tǒng)交互,利用JSP控件來(lái)設(shè)計(jì)。</p><p>  業(yè)務(wù)層:作為業(yè)務(wù)邏輯的封裝層,負(fù)責(zé)接受用戶請(qǐng)求,從數(shù)據(jù)層獲取數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行處理,將處理結(jié)果交給表示層顯示。</p><p> 

37、 數(shù)據(jù)層:作為數(shù)據(jù)的存儲(chǔ)與維護(hù)層,負(fù)責(zé)數(shù)據(jù)的管理。</p><p>  采用分層設(shè)計(jì)的體系架構(gòu),能夠?qū)崿F(xiàn)分離關(guān)注、松散耦合、邏輯復(fù)用和標(biāo)準(zhǔn)定。</p><p><b>  3.2 功能模塊</b></p><p>  功能模塊情況如表3.1所示,包括頁(yè)面、對(duì)應(yīng)的JSP文件及頁(yè)面調(diào)用的底層邏輯類的清單。</p><p>

38、  表3.1 學(xué)生綜合信息管理系統(tǒng)組成表</p><p>  3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p>  3.3.1 概念結(jié)構(gòu)設(shè)計(jì)</p><p>  系統(tǒng)具有學(xué)生、教師、課程、成績(jī)等實(shí)體。為了能更方便、準(zhǔn)確地表示這些實(shí)體,在此采用E-R圖來(lái)描述實(shí)體的概念模型。</p><p>  (1) 學(xué)生實(shí)體及其屬性</p><p&

39、gt;  學(xué)生的屬性有學(xué)號(hào)、學(xué)生登入密碼、班級(jí)編號(hào)、學(xué)生姓名、性別等,其中學(xué)號(hào)是主鍵。學(xué)生實(shí)體及其屬性圖如圖3.1所示。</p><p>  圖3.1 學(xué)生實(shí)體及其屬性</p><p>  (2) 課程實(shí)體及其屬性</p><p>  課程的屬性有課程編號(hào)、課程名稱、課程類別等,其中課程編號(hào)是主鍵。課程實(shí)體及其屬性圖如圖3.2所示。</p><p

40、>  圖3.2 課程實(shí)體及其屬性</p><p>  (3) 新聞實(shí)體及其屬性</p><p>  新聞的屬性有新聞編號(hào)、新聞標(biāo)題、新聞內(nèi)容等,其中新聞編號(hào)是主鍵。新聞實(shí)體及其屬性圖如圖3.3所示。</p><p>  圖3.3 新聞實(shí)體及其屬性</p><p>  (4) 成績(jī)實(shí)體及其屬性</p><p>  

41、成績(jī)的屬性有學(xué)號(hào)、課程編號(hào)、分?jǐn)?shù)等,其中學(xué)號(hào)和課程編號(hào)是主鍵。成績(jī)實(shí)體及其屬性圖如圖3.4所示。</p><p>  圖3.4 成績(jī)實(shí)體及其屬性</p><p>  (5) 留言板實(shí)體及其屬性</p><p>  留言板的屬性有信息編號(hào)、主題、內(nèi)容、作者等,其中信息編號(hào)是主鍵。留言板實(shí)體及其屬性圖如圖3.5所示。</p><p>  圖3.5

42、 留言板實(shí)體及其屬性</p><p>  實(shí)體之間的聯(lián)系如下:</p><p>  (1) 學(xué)生能瀏覽所有的新聞,新聞可以被所有的用戶來(lái)瀏覽,因此學(xué)生和新聞具有多對(duì)多的聯(lián)系。</p><p>  (2) 學(xué)生可以發(fā)表多條留言,但一條留言可以被多個(gè)學(xué)生回復(fù),因此學(xué)生和留言具有多對(duì)多的聯(lián)系。</p><p>  (3) 學(xué)生能瀏覽所有的課程,課程

43、可以被所有的學(xué)生來(lái)瀏覽,因此學(xué)生和課程具有多對(duì)多的聯(lián)系。</p><p>  (4) 學(xué)生能瀏覽自己的成績(jī),成績(jī)只能被學(xué)生自己來(lái)瀏覽,因此學(xué)生和成績(jī)具有一對(duì)一的聯(lián)系。實(shí)體與實(shí)體之間聯(lián)系如圖3.6所示。</p><p>  圖3.6 實(shí)體及其聯(lián)系圖</p><p>  3.3.2 邏輯結(jié)構(gòu)設(shè)計(jì)</p><p>  根據(jù)學(xué)生綜合信息管理系統(tǒng)中數(shù)

44、據(jù)信息的特點(diǎn),將數(shù)據(jù)的概念模型轉(zhuǎn)換為關(guān)系模型。</p><p>  (1) 學(xué)生實(shí)體轉(zhuǎn)換為如下關(guān)系模式,其中主鍵編碼為學(xué)號(hào)主鍵。</p><p>  學(xué)生(學(xué)號(hào)、學(xué)生登入密碼、班級(jí)編號(hào)、學(xué)生姓名、性別、入學(xué)年份、生源、學(xué)院編號(hào)、年齡、民族、政治面貌、學(xué)制、專業(yè)、電子郵件、電話、地址、備注)</p><p>  (2) 課程實(shí)體轉(zhuǎn)換為如下關(guān)系模式,其中課程編號(hào)為主鍵。

45、</p><p>  課程(課程編號(hào)、課程名稱、課程類別、任課教師、課程描述、學(xué)期、上課時(shí)間、開(kāi)始時(shí)間、結(jié)束時(shí)間、教室、備注)</p><p>  (3) 留言板實(shí)體轉(zhuǎn)換為如下關(guān)系模式,其中信息編號(hào)作為主鍵。</p><p>  留言板(信息編號(hào)、主題、內(nèi)容、作者、欄目類別、添加時(shí)間、瀏覽次數(shù)、得分次數(shù)、總得分?jǐn)?shù))</p><p>  (4)

46、 新聞實(shí)體轉(zhuǎn)換為如下關(guān)系模式,其中新聞編號(hào)作為主鍵。</p><p>  新聞(新聞編號(hào)、新聞標(biāo)題、新聞內(nèi)容、作者信息、加入時(shí)間、新聞來(lái)源、新聞?lì)悇e)</p><p>  (5) 選修實(shí)體轉(zhuǎn)換為如下關(guān)系模式,其中學(xué)號(hào)和課程編號(hào)作為主鍵。</p><p>  選修(學(xué)號(hào)、課程編號(hào)、成績(jī))</p><p>  (6) 回復(fù)實(shí)體轉(zhuǎn)換為如下關(guān)系模式,

47、其中學(xué)號(hào)和信息編號(hào)作為主鍵。</p><p>  回復(fù)(學(xué)號(hào)、信息編號(hào)、內(nèi)容)</p><p>  (7) 瀏覽實(shí)體轉(zhuǎn)換為如下關(guān)系模式,其中學(xué)號(hào)和新聞編號(hào)作為主鍵。</p><p>  瀏覽(學(xué)號(hào)、新聞編號(hào)、瀏覽時(shí)間)</p><p>  表3.2 學(xué)生基本信息表</p><p>  表3.3 課程基本信息表</

48、p><p>  表3.4 新聞基本信息表</p><p>  表3.5 留言板基本信息表</p><p><b>  表3.6 選修表</b></p><p>  表3.7 回復(fù)信息表</p><p>  表3.8 瀏覽新聞表</p><p>  3.3.3 物理結(jié)構(gòu)設(shè)計(jì)&l

49、t;/p><p>  本系統(tǒng)采用Microsoft SQL Server 2000數(shù)據(jù)庫(kù)系統(tǒng),系統(tǒng)提供了良好的數(shù)據(jù)庫(kù)管理功能及日志管理。</p><p>  數(shù)據(jù)庫(kù)名為test,數(shù)據(jù)庫(kù)存儲(chǔ)容量的初始值為系統(tǒng)默認(rèn)值。數(shù)據(jù)的備份和恢復(fù)采用數(shù)據(jù)庫(kù)系統(tǒng)本身提供的數(shù)據(jù)導(dǎo)入/導(dǎo)出工具來(lái)完成,形成相應(yīng)的數(shù)據(jù)文件。</p><p>  數(shù)據(jù)的索引采用系統(tǒng)提供的功能來(lái)完成,不必自己建立和

50、管理數(shù)據(jù)索引,有主關(guān)鍵字的表不需要建立按主關(guān)鍵字的索引。</p><p>  數(shù)據(jù)庫(kù)日志文件采用系統(tǒng)提供的日志文件系統(tǒng)。</p><p><b>  4 系統(tǒng)實(shí)現(xiàn)</b></p><p>  4.1 表示層實(shí)現(xiàn)</p><p>  4.1.1 新聞動(dòng)態(tài)模塊</p><p>  新聞動(dòng)態(tài)主頁(yè)的

51、JSP文件為newsHome.jsp,界面如圖4.1所示。下面的程序片段是分類型查詢新聞標(biāo)題用于頁(yè)面顯示,本系統(tǒng)的新聞信息分為4種類型,新聞在數(shù)據(jù)庫(kù)中保存時(shí)使用type字段來(lái)區(qū)分新聞?lì)愋?,新聞?lì)愋?為學(xué)校公告,2為考試信息,3為校內(nèi)新聞,4為校外新聞。</p><p>  NewsBean newsBean = new NewBean();</p><p>  ArrayList aLis

52、t1 = newsBean.queryTitle("1",8);//查詢最新學(xué)校公告</p><p>  ArrayList aList2 = newsBean.queryTitle("2",8);//查詢最新考試信息</p><p>  ArrayList aList3 = newsBean.queryTitle("3",8);

53、//查詢最新校內(nèi)新聞</p><p>  ArrayList aList4 = newsBean.queryTitle("4",8);//查詢最新校外新聞</p><p>  以下程序片是頁(yè)面用于在表格中顯示新聞標(biāo)題列表。</p><p>  //取得最新的學(xué)校公告標(biāo)題信息用于顯示</p><p>  if(aList1

54、!= null && aList1.size() > 0){</p><p>  NewsBean newsBean1 = null;</p><p>  for(int i = 0;i < aList1.size(); i++){</p><p>  newsBean1 = (NewsBean)aList1.get(i);</p&

55、gt;<p><b>  %></b></p><p><b>  <tr></b></p><p>  <td width="76%" height="30"></p><p>  <a href="viewNewsDet

56、ail.jsp?id=<%=</p><p>  newsBean1.getId()%>" target="_blank"></p><p>  <%=newsBean1.getTitle()%></p><p><b>  </a></b></p><

57、p><b>  </td></b></p><p>  <td width="24%"><%=newsBean1.getAddTime()%></td></p><p><b>  </tr></b></p><p><b> 

58、 <%</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  圖4.1 新聞動(dòng)態(tài)主頁(yè)</p><p>  在上面的查詢新聞的代碼片斷中,最主要的部分是調(diào)用NewsBean類的一個(gè)成員函數(shù)queryTitle()查詢新聞標(biāo)題,再看

59、看NewsBean的成員函數(shù)queryTitle()的源代碼,如下所示:</p><p>  public ArrayList queryTitle(String typeId, int rowLimit) {</p><p>  String sql = "select * from news_info where 1=1";</p><p>

60、  if(typeId != null && !typeId.equals(""))</p><p><b>  {</b></p><p>  sql += " and type='" + typeId + "'";</p><p><b>

61、  }</b></p><p>  sql += " order by add_time desc";</p><p>  if (rowLimit > 0) </p><p><b>  {</b></p><p>  sql += " limit " + St

62、ring.valueOf(rowLimit);</p><p><b>  }</b></p><p>  DBAccess dba = new DBAccess();</p><p>  ArrayList aList = new ArrayList();</p><p><b>  try {</b&

63、gt;</p><p>  dba.getConnection();</p><p>  ResultSet rs = null;</p><p>  rs = dba.query(sql);</p><p>  if (rs != null) </p><p><b>  {</b></p

64、><p>  while (rs.next()) </p><p><b>  {</b></p><p>  NewsBean newsBean = new NewsBean();</p><p>  newsBean.setId(rs.getString("id"));</p><

65、p>  newsBean.setTitle(rs.getString("title"));</p><p>  newsBean.setAddTime(rs.getString("add_time"));</p><p>  newsBean.setAuthor(rs.getString("author"));</p&

66、gt;<p>  //newsBean.setContent(rs.getString("content"));</p><p>  newsBean.setQuarry(rs.getString("quarry"));</p><p>  aList.add(newsBean);</p><p><b&g

67、t;  }</b></p><p><b>  }</b></p><p>  return aList;</p><p>  } catch (SQLException ex) {</p><p>  ex.printStackTrace();</p><p>  return nu

68、ll;</p><p>  } finally {</p><p>  dba.closeConnection();</p><p><b>  }</b></p><p><b>  }</b></p><p>  函數(shù)返回的是一個(gè)由NewsBean對(duì)象組成的ArrayLi

69、st,在頁(yè)面上得到之后可以從ArrayList中得到NewBean,再取得Bean的屬性,如新聞標(biāo)題,在頁(yè)面上顯示相應(yīng)的信息如上面代碼所示。</p><p>  4.1.2 班級(jí)學(xué)生信息查詢模塊</p><p>  班級(jí)學(xué)生信息查詢頁(yè)面的JSP文件classStuInfo.jsp,界面如圖4.2所示。下面給出主要代碼片斷如下所示,先得到頁(yè)面輸入的班級(jí)編號(hào)信息,作為查詢條件,在調(diào)用Stud

70、entBean的成員函數(shù)queryClassStudents()查詢班級(jí)學(xué)生信息。</p><p>  String commitFlag = request.getParameter("queryButton");</p><p>  ArrayList aList = null;</p><p>  String classId= null;

71、</p><p>  if (commitFlag != null ) {</p><p>  StudentBean stuBean = new StudentBean();</p><p>  classId = request.getParameter("classId");</p><p>  if (classI

72、d == null || classId.equals("")) {</p><p><b>  %></b></p><p>  <script language="javascript" type=""></p><p>  alert('請(qǐng)輸入班級(jí)編號(hào)!

73、');</p><p><b>  </script></b></p><p><b>  <%</b></p><p><b>  } else {</b></p><p>  aList = stuBean.queryClassStudents(c

74、lassId);</p><p>  if(aList == null || aList.size() <= 0){</p><p><b>  %></b></p><p>  <script language="javascript" type=""></p>

75、<p>  alert('沒(méi)有該班級(jí)學(xué)生信息!');</p><p><b>  </script></b></p><p><b>  <%</b></p><p><b>  }</b></p><p><b>  }&

76、lt;/b></p><p>  以下的代碼片斷主要用于在頁(yè)面中顯示學(xué)生基本信息:</p><p>  <table width="100%"></p><p><b>  <tr></b></p><p>  <th width="16%" s

77、cope="col" height="23">學(xué)號(hào)</th></p><p>  <th width="20%" scope="col">姓名</th></p><p>  <th width="17%" scope="col&quo

78、t;>性別</th></p><p>  <th width="18%" scope="col">籍貫</th></p><p>  <th width="15%" scope="col">學(xué)院</th></p><p>

79、  <th width="14%" scope="col">年齡</th></p><p><b>  </tr></b></p><p>  <%//從集合中取得StudentBean對(duì)象用于顯示</p><p>  if (aList != null &

80、;& aList.size() > 0) {</p><p>  StudentBean stuBean2 = new StudentBean();</p><p>  for (int i = 0; i < aList.size(); i++) {</p><p>  stuBean2 = (StudentBean) aList.get(i);

81、</p><p><b>  %></b></p><p><b>  <tr></b></p><p>  <td align="center"><%=stuBean2.getStudentId()%> </td></p><

82、;p>  <td align="center"><%=stuBean2.getName()%> </td></p><p>  <td align="center"><%=</p><p>  stuBean2.getSex().equals("1")?&qu

83、ot;男":"女"%> </td></p><p>  <td align="center"><%=stuBean2.getComeFrom()%> </td></p><p>  <td align ="center"><%=stu

84、Bean2.getCollegeName()%> </td></p><p>  <td align="center"><%=stuBean2.getAge()%> </td></p><p><b>  </tr></b></p><p><

85、b>  </table></b></p><p>  圖4.2 班級(jí)學(xué)生信息查詢頁(yè)面</p><p>  上述的代碼調(diào)用了StudentBean的一個(gè)成員函數(shù)queryClassStudent(),該函數(shù)返回一個(gè)班級(jí)學(xué)生的列表,該列表保存了StudentBean對(duì)象信息,該方法的詳細(xì)情況請(qǐng)查看StudentBean的源代碼</p><p&g

86、t;  public ArrayList queryClassStudents(String classId) {</p><p>  DBAccess dba = new DBAccess();</p><p>  Stringsql="select a.stu_id,a.name,a.password,a.class_id,a.college_id ,</p>

87、<p>  a.come_from,a.sex,a.age,b.name collegename </p><p>  from student_info a,college_info b</p><p>  where a.college_id=b.college_id and a.class_id =</p><p>  " +classId

88、 +"';";ArrayList arrayList = new ArrayList();</p><p><b>  try {</b></p><p>  dba.getConnection();</p><p>  ResultSet rs = dba.query(sql);</p><p&

89、gt;  while (rs.next()) </p><p><b>  {</b></p><p>  StudentBean stuBean = new StudentBean();</p><p>  stuBean.setClassId(rs.getString("class_id"));</p>&

90、lt;p>  stuBean.setCollegeId("college_id");</p><p>  stuBean.setComeFrom(rs.getString("come_from"));</p><p>  stuBean.setName(rs.getString("name"));</p>&l

91、t;p>  stuBean.setStudentId(rs.getString("stu_id"));</p><p>  stuBean.setSex(rs.getString("sex"));</p><p>  stuBean.setCollegeName(rs.getString("collegename"));&l

92、t;/p><p>  stuBean.setAge(rs.getString("age"));</p><p>  arrayList.add(stuBean);</p><p><b>  }</b></p><p>  return arrayList;</p><p>  }

93、 catch (SQLException ex) {</p><p>  ex.printStackTrace();</p><p>  return null;</p><p>  } finally </p><p><b>  {</b></p><p>  dba.closeConnect

94、ion();</p><p><b>  }</b></p><p><b>  }</b></p><p>  函數(shù)的返回是一個(gè)由StudentBean組成的ArrayList,頁(yè)面得到該ArrayList后,從其中取得Bean的屬性,用于在頁(yè)面顯示相關(guān)信息。</p><p>  4.1.3 登

95、錄模塊</p><p>  登錄頁(yè)面login.jsp的代碼如下所示。界面如圖4.3所示</p><p>  String commitFlag = (String)request.getParameter("submintButton");//得到按鈕事件</p><p>  String studentId = request.getPara

96、meter("studentId");</p><p>  String pwd = request.getParameter("pwd");</p><p>  StudentBean studentBean = null;</p><p>  if(commitFlag != null){//如果單擊了確定按鈕</p

97、><p>  StudentBean studentBean2 = new StudentBean();</p><p>  studentBean = studentBean2.queryStuInfo(studentId,pwd);</p><p>  //查詢是否存在該學(xué)生信息</p><p>  if(studentBean != nul

98、l){//如果存在該學(xué)生信息</p><p>  session.setAttribute("studentBean",studentBean);</p><p>  //將代表該學(xué)生信息的Bean保存在session中</p><p>  RequestDispatcher dispatcher =</p><p>  

99、request.getRequestDispatcher("/loginSuccess.jsp");</p><p>  dispatcher.forward(request,response);</p><p><b>  }</b></p><p>  else{//調(diào)用腳本語(yǔ)言提示</p><p&g

100、t;<b>  %></b></p><p>  <script language="javascript" type=""></p><p>  alert('請(qǐng)檢查學(xué)號(hào),密碼是否正確!');</p><p><b>  </script><

101、/b></p><p><b>  <%</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  圖4.3 選課管理系統(tǒng)登錄頁(yè)面</p><p>  先得到頁(yè)面輸入的學(xué)生編號(hào)、密碼參數(shù),在調(diào)

102、用StudentBean的成員函數(shù)queryStuInfo()檢查該學(xué)生信息是否存在,如果存在該方法返回一個(gè)StudentBean的實(shí)例對(duì)象。在JSP頁(yè)面中,把該對(duì)象保存在Session中,后續(xù)的操作如果要用到學(xué)生編號(hào)以及密碼信息時(shí)可以從Session中得到該對(duì)象,如:</p><p>  StudentBean studentBean = (StudentBean)session.getAttribute(&q

103、uot;studentBean");</p><p>  這樣,就不需要登錄每一個(gè)頁(yè)面。</p><p>  4.1.4 課表查詢模塊</p><p>  查看課表頁(yè)面JSP文件viewCourseScheme.jsp,界面如圖4.4所示。以下是主要的代碼片斷,先從Session中得到登錄學(xué)生的信息,包括學(xué)生編號(hào)、所在班級(jí)的編號(hào)等,得到這些信息之后,調(diào)用

104、CourseBean的成員函數(shù)queryCourseScheme(),該函數(shù)返回一個(gè)由CourseBean組成的Hashtable的key值為字符串對(duì)象“1-1”和“1-2”等,分別代表周一第1節(jié)課,周二弟2節(jié)課,如果從Hashtable中得到key值為“1-2”的CourseBean不為null,則表示周一第2節(jié)課有課,再把該課程信息顯示在頁(yè)面上表格的相應(yīng)地方,如果得到CourseBean對(duì)象為null的表示周一第2節(jié)課沒(méi)有安排課程,

105、則該處顯示一個(gè)“選課”的鏈接,單擊可以進(jìn)入選課頁(yè)面,系統(tǒng)會(huì)自動(dòng)查詢?cè)摃r(shí)間(周一第2節(jié)課)的可選課程,供學(xué)生選擇,操作比較方便。具體實(shí)現(xiàn)如下所示。</p><p>  stuBean = (StudentBean) session.getAttribute("studentBean");</p><p>  if (stuBean != null) {//如果學(xué)生已經(jīng)登錄

106、,進(jìn)行下一步操作</p><p>  classId = stuBean.getClassId();</p><p>  studentId = stuBean.getStudentId();</p><p>  if (commitFlag != null) {</p><p>  //如果是單擊了查詢按鈕從頁(yè)面參數(shù)中得到學(xué)期</p&

107、gt;<p>  term = request.getParameter("term");</p><p><b>  }else {</b></p><p>  //默認(rèn)查詢根據(jù)系統(tǒng)時(shí)間計(jì)算得到的目前學(xué)生是第幾學(xué)期的數(shù)據(jù),</p><p>  //如學(xué)生入學(xué)年份為2006-09-01,當(dāng)前時(shí)間為2007-3月

108、,則查詢第2學(xué)期的數(shù)據(jù)。</p><p>  System.out.println("test in viewCourseScheme.jsp:////");</p><p>  term = String.valueOf(stuBean.getCurrentTerm());</p><p><b>  }</b></

109、p><p>  System.out.println("test in viewCourseScheme.jsp:term:"+term);///////</p><p>  CourseBean courseBean = new CourseBean();</p><p>  hTable = courseBean.queryCourseSchem

110、e(classId, studentId, term);</p><p>  //查詢課程安排情況</p><p>  }else{//如果學(xué)生還沒(méi)有登錄,轉(zhuǎn)發(fā)到登錄頁(yè)面</p><p>  RequestDispatcher dispatcher =</p><p>  request.getRequestDispatcher("

111、/login.jsp");</p><p>  dispatcher.forward(request,response);</p><p><b>  }</b></p><p>  圖4.4 查看課標(biāo)頁(yè)面</p><p>  4.1.5 留言板信息分類瀏覽模塊</p><p>  留

112、言板信息分類瀏覽頁(yè)面JSP文件為viewMessegeBoard.jsp, 界面如圖4.5所示。采用Servlet來(lái)響應(yīng)頁(yè)面的請(qǐng)求,頁(yè)面每個(gè)欄目作為一個(gè)鏈接,選擇可以查看該欄目的所有信息,在單擊欄目鏈接的同時(shí)提交一個(gè)參數(shù)columnName=1。</p><p>  <a href="topiclistservlet?columnName=1" class="hrefstyle

113、">校辦專欄</a></p><p>  這個(gè)鏈接提交到一個(gè)TopicListServlet,在web.xml中TopicListServlet的配置信息如下:</p><p><b>  <servlet></b></p><p>  <servlet-name>topiclistservl

114、et</servlet-name></p><p>  <servlet-class>sms.servlet.TopicListServlet</servlet-class></p><p>  </servlet></p><p>  <servlet-mapping></p><p&

115、gt;  <servlet-name>topiclistservlet</servlet-name></p><p>  <url-pattern>/topiclistservlet</url-pattern></p><p>  </servlet-mapping></p><p>  該Servlet的

116、處理用戶請(qǐng)求的方法doGet()源代碼,如下所示,</p><p>  public void doGet(HttpServletRequest request,</p><p>  HttpServletResponse response) throws</p><p>  ServletException, IOException {</p>&l

117、t;p>  response.setContentType(CONTENT_TYPE);</p><p>  request.setCharacterEncoding("gb2312");</p><p><b>  //先得到頁(yè)面參數(shù)</b></p><p>  String column = request.get

118、Parameter("columnName");</p><p>  String topic = request.getParameter("topic");</p><p>  String sql = "select * from messege_info where 1=1";</p><p>  

119、if(column != null){</p><p>  sql += " and column_id = '" +column + "'";</p><p><b>  }</b></p><p>  if(topic != null && topic.length(

120、) > 0){</p><p>  sql += " and topic='"+topic+"'";</p><p><b>  }</b></p><p>  sql += " order by browse_num desc";</p><

121、p>  DBAccess dba = new DBAccess();</p><p>  ArrayList aList = new ArrayList();</p><p><b>  try {</b></p><p>  dba.getConnection();</p><p>  ResultSet rs

122、= dba.query(sql);</p><p>  if (rs != null) {</p><p>  while (rs.next()) {</p><p>  //從ResultSet中得到留言板信息的內(nèi)容,保存在MessegeBean中</p><p>  MessegeBean msgBean = new MessegeBea

123、n();</p><p>  msgBean.setBrowseNum(rs.getString("browse_num"));</p><p>  msgBean.setTopic(rs.getString("topic"));</p><p>  msgBean.setAuthor(rs.getString("a

124、uthor"));</p><p>  msgBean.setMessegeId(rs.getString("id"));</p><p>  msgBean.setColumnName(rs.getString("column_id"));</p><p>  msgBean.setAddTime(rs.getSt

溫馨提示

  • 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)論