【計算機畢業(yè)設(shè)計】基于JSP的畢業(yè)設(shè)計選題系統(tǒng)的設(shè)計與實現(xiàn)
分類號:TP315?U?D?C:D10621-408-(2007) 498-0
密 級:公 開?編 號:2002211105
成都信息工程學(xué)院
學(xué)位論文
基于JSP的畢業(yè)設(shè)計選題系統(tǒng)的設(shè)計與實現(xiàn)
摘?要
隨著全球信息化技術(shù)的興起,特別是Internet的日益普及,我國各大中專院校都建立了自己的校園網(wǎng)。畢業(yè)生以班級為單位的原始手工報送的選題方式已經(jīng)不能適應(yīng)時代發(fā)展的需求, 所以基與互聯(lián)網(wǎng)的畢業(yè)設(shè)計選題系統(tǒng)也就孕育而生了。
畢業(yè)設(shè)計選題系統(tǒng)就是能夠使學(xué)生通過互聯(lián)網(wǎng)完成畢業(yè)設(shè)計課題的選定,它采用Web方式,同時適用于局域網(wǎng)和Internet,它要實現(xiàn)審核,權(quán)限管理,郵件通知等功能,并能提供題目保存、題目查詢等功能,該系統(tǒng)同時擁有最開放的題庫管理系統(tǒng)和最靈活的選題系統(tǒng),能夠自動進行權(quán)限的判斷,對用戶進行凍結(jié)。
我們采用了JSP技術(shù)為主要手段,本系統(tǒng)采用了多級角色管理:包括系統(tǒng)管理員、系主任,學(xué)生和老師幾種權(quán)限.本文主要介紹了用戶權(quán)限的劃分,并詳細地論述了系統(tǒng)設(shè)計的思想和實現(xiàn)的方法步驟從而為以后的研究打下了基礎(chǔ)。
關(guān)鍵詞: 審核;權(quán)限;多級角色管理
The Design and Implementation of Subject Selection System for Graduation Based on JSP
Abstract
With the rising of global information technology, especially the growing prevalence of Internet, the technical institute colleges and universities in our country have set up their own Campus Net. For the traditional way of manual submission of selected subject cannot adapt to current demands, the Internet-based graduation subject selection system born.
Such system enables students to choose subject for graduation design through Internet. It adopts B/S pattern, and is suitable to both the local area network and Internet. It must implement functions such as the verification of the subject, the jurisdiction management, mail notification, as well as subject storage and searching. With the open subject management system and the flexible system, it can automatically verify the jurisdiction of a user and freeze the user. The system adopted the JSP as its main technology, and implemented the multistage role management. The system also implemented the management of the privilege of system managers, deans, students and teachers.
Key words: Verification; Jurisdiction; Multistage role management.
目 錄
論文總頁數(shù):23頁
1引言11
1.1選題系統(tǒng)出現(xiàn)的趨勢11
1.2選題系統(tǒng)常用的實現(xiàn)技術(shù)11
2基本技術(shù)簡介11
2.1本系統(tǒng)擬采用的解決方法(技術(shù))22
2.2主要技術(shù)簡介22
3 需求分析與方案設(shè)計33
3.1功能需求分析33
3.2數(shù)據(jù)庫需求33
3.3系統(tǒng)支撐環(huán)境44
4系統(tǒng)設(shè)計44
4.1 功能設(shè)計44
4.2 數(shù)據(jù)庫設(shè)計44
4.2.1 系統(tǒng)登陸,用戶會話表(bsm_session_info)4(bsm_session_info)4(bsm_session_info)4
4.2.2 系統(tǒng)用戶信息管理表(bsm_sys_user)55
4.2.3 畢業(yè)論文題庫信息表(subject)5(subject)5(subject)5
4.2.4 畢業(yè)論文選題信息管理表(select_sub)6(select_sub)6(select_sub)6
5 系統(tǒng)功能實現(xiàn)77
5.1系統(tǒng)組成和業(yè)務(wù)流程圖77
5.2系統(tǒng)用戶權(quán)限管理88
5.2.1 系統(tǒng)登陸99
5.2.2系統(tǒng)用戶管理1111
5.2.3 歷屆信息查看1313
5.2.4 個人信息維護1313
5.3系統(tǒng)選題權(quán)限管理1414
5.4教師題庫管理1515
5.4.1教師出題1515
5.4.2教師審核題目1616
5.5學(xué)生在線選題1616
5.6系統(tǒng)登出1818
5.7系統(tǒng)基本控件使用1818
5.7.1數(shù)據(jù)庫連接池實現(xiàn)1818
5.7.2郵件系統(tǒng)實現(xiàn)1919
6技術(shù)難點分析2020
結(jié) 論2020
參考文獻2020
致 謝2121
附 錄2222
Tomcat簡介2222
聲 明2323
1引言
1.1選題系統(tǒng)出現(xiàn)的趨勢
在網(wǎng)絡(luò)飛速發(fā)展的今天,互聯(lián)網(wǎng)成為人們快速獲取,發(fā)布和傳遞信息的重要渠道,在人們政治,經(jīng)濟,生活等各方面發(fā)揮著重要的作用。因此網(wǎng)站建設(shè)在Internet應(yīng)用上地位顯而易見,它已成為政府,企事業(yè)單位信息化建設(shè)中的重要組成部分,從而倍受人們的重視。
從20世紀90年代初期隨著www的發(fā)展,Internet逐漸普及化由于www通過良好的界面大大簡化了Internet操作難度使得用戶數(shù)量急劇增加,許多人開始重視Internet,發(fā)現(xiàn)到Internet具有巨大得潛力。于是紛紛大量加入Internet。這樣Internet上得站點大大增加,網(wǎng)絡(luò)信息五花八門,十分豐富。如今Internet已經(jīng)深入到人們生活得各個部分。Internet大大方便了信息的傳播,給人們帶來了全新得生活方式。
這次我們所設(shè)計的課題正是互聯(lián)網(wǎng)與大學(xué)生學(xué)習(xí)生活緊密相關(guān)的,現(xiàn)今的社會人們已經(jīng)離不開網(wǎng)絡(luò),傳統(tǒng)的選題方式也面臨著變革,而網(wǎng)絡(luò)選題則是一個很重要的方向?;赪eb技術(shù)的網(wǎng)絡(luò)選題系統(tǒng)可以借助于遍布全球的Internet進行,因此選題既可以在本地進行,也可以在異地進行,大大拓展了選題的靈活性。題目可以根據(jù)題庫中的內(nèi)容生成,從而使用計算機選題大大的提高了選題效率;還可以直接把題目送到數(shù)據(jù)庫中保存,作為老師以后出題的參考?,F(xiàn)在較好的選題方式為網(wǎng)絡(luò)選題,題目內(nèi)容放在服務(wù)器上,學(xué)生通過帳號和口令進行登陸,學(xué)生也可以第一時間得到選題信息。因此,采用網(wǎng)絡(luò)選題方式將是以后的大趨勢。
1.2選題系統(tǒng)常用的實現(xiàn)技術(shù)
網(wǎng)絡(luò)選題系統(tǒng)的實現(xiàn)技術(shù)有多種,可以采用傳統(tǒng)的客戶機/服務(wù)器(C/S)型的MIS型架構(gòu),即論文題目內(nèi)容放在遠程的服務(wù)器上,在選題機上安裝考試應(yīng)用程序和數(shù)據(jù)庫客戶機配置,因此每次選題時要對機器進行安裝、配置,這樣一來選題工作比較煩瑣;而且選題程序放在客戶機上,安全性也受到一定影響。另外一種考試系統(tǒng)采用Web 技術(shù)實現(xiàn)。Web技術(shù)超越了傳統(tǒng)的“客戶機/服務(wù)器”兩層結(jié)構(gòu),采用了三層體系結(jié)構(gòu):用戶界面層/事務(wù)層/數(shù)據(jù)庫層。因此Web結(jié)構(gòu)有著更好的安全性。在用戶機上不需要安裝任何應(yīng)用程序,應(yīng)用程序可以安裝在作為服務(wù)器的計算機上,題目存放在數(shù)據(jù)庫服務(wù)器上(事務(wù)層和數(shù)據(jù)庫可以是同一臺機器)。
2基本技術(shù)簡介
本系統(tǒng)全稱為畢業(yè)設(shè)計選題系統(tǒng),開發(fā)的目的是為學(xué)生提供通過學(xué)校的網(wǎng)絡(luò)進行畢業(yè)設(shè)計題目的選擇。
2.1本系統(tǒng)擬采用的解決方法(技術(shù))
本系統(tǒng)要求實現(xiàn)網(wǎng)絡(luò)選題系統(tǒng)的各項基本功能,從安全性和易維護性考慮,選擇了Web實現(xiàn)技術(shù)。簡單的說就是將系統(tǒng)做成一種B/S模式,可以讓用戶通過瀏覽器直接訪問位于服務(wù)器上的試題以及對系統(tǒng)進行遠程維護。
服務(wù)器端程序的實現(xiàn)技術(shù)也很多,本人選用了當前比較流行的網(wǎng)絡(luò)編程技術(shù)——JSP作為主要實現(xiàn)手段(配合Java Servlet,HTML等)。JSP作為一種Web實現(xiàn)技術(shù),它的效率是很高的。這一點正好符合了選題系統(tǒng)所要求的實時性。JSP自身的安全性,再加上實現(xiàn)模式的特點,完全能夠達到選題的要求。除此之外,作為Java平臺的一部分,JSP擁有Java語言“一次編寫,各處運行”的特點。又隨著越來越多的服務(wù)器供應(yīng)商將JSP支持添加到他們的產(chǎn)品中,這樣一來用JSP做成的這套系統(tǒng)可以輕松移植到其它平臺來運行。種種優(yōu)點使得這套系統(tǒng)不但為目前校內(nèi)的網(wǎng)絡(luò)教學(xué)以至于今后遠程教育的實現(xiàn)都打下了良好的基礎(chǔ)。所以JSP是實現(xiàn)本系統(tǒng)的最佳技術(shù),它是完全可行的。
2.2主要技術(shù)簡介
JSP是Java Server Pages的簡稱,它是由Sun Microsystem公司于1999年6月推出,是基于Java Servlet以及整個Java體系的Web開發(fā)技術(shù)。作為J2EE體系中的重要一環(huán),JSP為創(chuàng)建高度動態(tài)的Web應(yīng)用提供了一個獨特的開發(fā)環(huán)境。JSP能夠適應(yīng)市場上包括Apache WebServer、IIS4.0在內(nèi)的85%的服務(wù)器產(chǎn)品,這足以勝任絕大多數(shù)的商業(yè)事務(wù)處理。同時JSP代碼經(jīng)過服務(wù)器的解釋執(zhí)行后會直接嵌入到HTML語言中,這樣就簡化了頁面的輸出,也保留了腳本語言易于使用的優(yōu)點。SUN公司開發(fā)出這個規(guī)范來整合和平衡已經(jīng)存在的規(guī)范,對JAVA編程環(huán)境進行支持的技術(shù)和工具。其結(jié)果是產(chǎn)生了一種新的,開發(fā)基于WEB應(yīng)用程序的方法,給予使用基于組件應(yīng)用邏輯的頁面設(shè)計者以強大的功能支持。JSP設(shè)計目標是為了使動態(tài)頁面編寫更容易,更簡單。JSP特點主要有以下幾點:到處可執(zhí)行,JSP技術(shù)完全與平臺無關(guān)的設(shè)計,包含它的動態(tài)網(wǎng)頁和底層Server元件設(shè)計,加強元件功能,更容易建立動態(tài)網(wǎng)頁。
JDBC是Java Data Base Connectivity的簡稱,也就是java數(shù)據(jù)庫連接。它是一種用于執(zhí)行SQL語句的Java?API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準,據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序。將Java語言和JDBC結(jié)合起來使程序員只須寫一遍程序就可以讓它在任何平臺上運行,這也是Java語言“編寫一次,各處運行“的特點。同時JDBC 擴展了 Java 的功能。例如,用 Java 和 JDBC API 可以發(fā)布含有?applet?的網(wǎng)頁,而該 applet 使用的信息可能來自遠程數(shù)據(jù)庫企業(yè)也可以用 JDBC 通過 Intranet 將所有職員連到一個或多個內(nèi)部數(shù)據(jù)庫中。
3 需求分析與方案設(shè)計
3.1功能需求分析
作為高校畢業(yè)生的一個畢業(yè)設(shè)計選題系統(tǒng),它就面對著許多用戶的操作,而這些用戶對系統(tǒng)的操作應(yīng)該有所不同,所以我們在設(shè)計時必須要對不同的用戶設(shè)立不同的的權(quán)限。在本系統(tǒng)中,我考慮了4種權(quán)限(管理員,系主任,指導(dǎo)教師,學(xué)生)。管理員可以添加的用戶系主任,而系主任能添加的用戶為指導(dǎo)教師和學(xué)生。
同時,我們?yōu)榱耸贡鞠到y(tǒng)更加的符合我們的實際,教師能在線出題,但是所出的題目必須經(jīng)過系主任的審核后學(xué)生才能進行選擇。在學(xué)生的選題中,在實現(xiàn)選題的基礎(chǔ)上,也要考慮學(xué)生選擇志愿的順序,所以在學(xué)生的選擇過程中,要設(shè)立多個志愿,但是在教師的審核過程中,我們必須根據(jù)學(xué)生的志愿依次進行審核。也就是說在學(xué)生的第一志愿未被審核的時候,第二志愿的老師不能對該生的第二志愿進行審核。
3.2數(shù)據(jù)庫需求
在信息世界中,信息從客觀事物出發(fā)流經(jīng)數(shù)據(jù)庫,通過決策機構(gòu)最后又回到客觀世界,信息的這一循環(huán)經(jīng)歷了三個領(lǐng)域:信息世界,數(shù)據(jù)世界,現(xiàn)實世界?,F(xiàn)實世界的事物反映到人的頭腦中,人的大腦對它有個認識過程,經(jīng)過分析(選擇、命名、分類等)進入信息世界。這些信息再進一步加工、編碼,然后進入數(shù)據(jù)世界,而軟件系統(tǒng)的開發(fā)工作需要考慮這兩個方面的問題,也就是要考慮系統(tǒng)開發(fā)所需要的數(shù)據(jù),以及如何對這些數(shù)據(jù)進行操作。這兩個問題貫穿了整個軟件系統(tǒng)的開發(fā)過程,這也就是數(shù)據(jù)庫的設(shè)計問題,軟件設(shè)計的一個核心。
作為一個具有一定應(yīng)用價值的教學(xué)管理系統(tǒng),從本質(zhì)上說其操作的對象為數(shù)據(jù)庫中存儲的具體記錄。因此,不僅要求所使用的數(shù)據(jù)庫系統(tǒng)具有比較高的穩(wěn)定性、安全性及高負載下保持足夠相應(yīng)的能力,還要求設(shè)計者清楚需求,做出科學(xué)的數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計,以提高數(shù)據(jù)庫的利用效率和減少數(shù)據(jù)冗余。用戶的需求具體體現(xiàn)在各種信息的提供、保存、更新和查詢,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸入和輸出。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計打下基礎(chǔ)。
數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計完畢以后,現(xiàn)在可以將上面的數(shù)據(jù)庫概念結(jié)構(gòu)轉(zhuǎn)化為某種數(shù)據(jù)庫系統(tǒng)所支持的實際數(shù)據(jù)模型,也就是數(shù)據(jù)庫的邏輯結(jié)構(gòu)。數(shù)據(jù)庫系統(tǒng)的選用需要根據(jù)系統(tǒng)的需求而定。
該系統(tǒng)主要涉及到幾種信息的存儲,首先是畢業(yè)班學(xué)生的信息,論文的題目信息,學(xué)校指導(dǎo)教師和系主任的信息,所以每個信息保存在一張表中,在對表的操作中可以對任意一個表獨立操作,也可以對幾個表關(guān)聯(lián)操作。
3.3系統(tǒng)支撐環(huán)境
操作系統(tǒng):WINDOWS 2000
應(yīng)用服務(wù)器:TOMCAT 5.0.28
數(shù)據(jù)庫:SQL2000
JAVA VM:JDK 1.4.2_07
硬件:建議內(nèi)存在512M以上
4系統(tǒng)設(shè)計
4.1 功能設(shè)計
在線選題系統(tǒng)的功能主要包括三部分:用戶管理、教師題庫信息管理、學(xué)生在線選題信息管理。其軟件設(shè)計結(jié)構(gòu)圖結(jié)構(gòu)如圖1:
圖1:系統(tǒng)總結(jié)構(gòu)設(shè)計圖
4.2 數(shù)據(jù)庫設(shè)計
4.2.1 系統(tǒng)登陸,用戶會話表(bsm_session_info)
表1:用戶會話表
4.2.2 系統(tǒng)用戶信息管理表(bsm_sys_user)
編號項目名字段名主鍵/外鍵類型內(nèi)容作用可否為空1用戶編號user_nonumeric(18, 0)not null2用戶會話idsession_idvarchar(32)not null3用戶ip地址visit_addressvarchar(15)not null4當前登陸時間login_datevarchar(25)not null5上次登陸時間last_updatevarchar(25)not null
表2:系統(tǒng)用戶信息管理表
4.2.3 畢業(yè)論文題庫信息表(subject)
編號項目名字段名主鍵/外鍵類型內(nèi)容作用可否為空1用戶編號user_nonumeric(18, 0)系統(tǒng)自增字段not null2用戶帳號user_codePKvarchar (20)not null3姓名user_namevarchar (50)not null4密碼passwdvarchar (32)not null5郵箱user_mailvarchar (100)6聯(lián)系方式user_phonevarchar (20)7用戶狀態(tài)user_statchar (1)1 正常用戶 2 凍結(jié)用戶not null8用戶類型user_typechar (1)0 管理員1 系主任2 指導(dǎo)教師 3 學(xué)生not null9指導(dǎo)學(xué)生人數(shù)上限stu_numVarchar(10)該字段主要控制指導(dǎo)教師10備注remarkvarchar (500)not null11操作人員編號op_nonumeric(18, 0)控制數(shù)據(jù)操作權(quán)限not null12操作時間op_timevarchar(25)not null
表3:畢業(yè)論文題庫信息表
4.2.4 畢業(yè)論文選題信息管理表(select_sub)
編號項目名字段名主鍵/外鍵類型內(nèi)容作用可否為空1題目編號sub_nonumeric(18, 0)系統(tǒng)自增字段not null2題目名稱sub_namevarchar (100)not null3教師編號teacher_nonumeric(18, 0)bsm_sys_user表中user_nonot null4參與學(xué)生的上限part_in_nonumeric(2, 0)not null5題目內(nèi)容sub_visceravarchar(1000)not null6主任審核標志postil_flagchar(1)0 未審核1 審核通過2 審核未通過null7主任審核意見postilvarchar(200)null8年 級yearchar(4)not null9操作人員op_nonumeric(18, 0)not null10操作時間op_timevarchar(25)not null
表4:畢業(yè)論文選題信息表
編號項目名字段名主鍵/外鍵類型內(nèi)容作用可否為空1選題編號select_nonumeric(18, 0)系統(tǒng)自增字段not null2教師編號teacher_nonumeric(18, 0)bsm_sys_user表中user_nonot null3題目編號sub_nonumeric(18, 0)Subject表中sub_nonot null4學(xué)生編號stu_nonumeric(18, 0)bsm_sys_user表中user_nonot null5教師審核標志postil_flagchar(1)null6指導(dǎo)教師審核意見postilvarchar(200)0 未審核1 審核通過2 審核未通過null7年 級yearlchar(4)not null8志愿標志wish_flagchar(1)null9選擇理由wishvarchar (500)1 第一志愿2 第二志愿3 第三志愿4 其他志愿null10操作人員op_nonumeric(18, 0)not null11操作時間op_timevarchar(25)not null
5 系統(tǒng)功能實現(xiàn)
5.1系統(tǒng)組成和業(yè)務(wù)流程圖
系統(tǒng)組成和業(yè)務(wù)流程圖
(一)系統(tǒng)組成
本系統(tǒng)由四個子模塊組成:系主任管理,教師出題,學(xué)生在線選題和系統(tǒng)的維護。它們各自功能如下敘述:
學(xué)生在線選題
學(xué)生通過系主任錄入的學(xué)生信息,姓名,學(xué)號和密碼登陸系統(tǒng)進行查詢題目并且進行選題并且可以修改自己的登陸密碼。系統(tǒng)分配給學(xué)生4個選題項,學(xué)生可以根據(jù)自己的實際情況做出幾個選擇,當?shù)谝恢驹肝幢粚徍?,其他的就不能審核,第一志愿審核未通過自動指向第二志愿,依次類推,如果全部都沒有通過學(xué)生將重新選擇過程同上。學(xué)生還可以查看歷屆的畢業(yè)設(shè)計題目以做參考。教師出題
此部分主要由教師使用,教師信息由系主任錄入,教師必須通過系住任給其分配的帳號,密碼登陸次系統(tǒng)。當教師進入次系統(tǒng)后便由教師負責出題,并且對學(xué)生選題進行審核,并且可以查看歷屆題目作為參考。系主任管理
系主任由此批量錄入學(xué)生以及教師信息并負責進行對教師所出的題目進行審核,只有審核通過的題目學(xué)生才可以進行選題,同時系主任還擁有對教師和學(xué)生帳號進行凍結(jié)的權(quán)限。管理員
系統(tǒng)管理員主要負責進行對系主任的資料錄入并可以凍結(jié)。
(二)業(yè)務(wù)流程圖:

圖2:業(yè)務(wù)流程圖
5.2系統(tǒng)用戶權(quán)限管理
本系統(tǒng)分為4個模塊,系主任管理,教師出題,學(xué)生在線選題和管理員模塊。
系統(tǒng)用戶管理的基本處理流程是:
1 管理員權(quán)限在建立數(shù)據(jù)庫時初始化數(shù)據(jù)庫腳本創(chuàng)建,管理員登陸后可以對自身的信息進行維護,同時還可以為不同系的系主任分配帳號,以及對系主任信息進行維護。
2 各系主任登陸系統(tǒng)后可以對自身的信息進行維護,以及為本系的教師和學(xué)生創(chuàng)建系統(tǒng)用戶,各系只能查看本系的相關(guān)信息。
系統(tǒng)用戶管理結(jié)構(gòu)如圖3:
圖3:用戶管理表
由上圖分析,本系統(tǒng)共有四種角色,所以系統(tǒng)在實現(xiàn)過程中根據(jù)用戶角色判斷其所擁有的權(quán)限,(根據(jù)SQL判斷)。
系統(tǒng)管理(bsm_sys_user.user_type = 0)
系主任(bsm_sys_user.user_type = 1)
指導(dǎo)教師(bsm_sys_user.user_type = 2)
學(xué)生(bsm_sys_user.user_type = 3)
5.2.1 系統(tǒng)登陸
為了保證用戶信息的一致性、用戶操作的方便性以及方便系統(tǒng)的安全模塊升級和維護,該系統(tǒng)采用單點登陸的模式。
系統(tǒng)主頁:http://10.0.0.11:8080(服務(wù)器在10.0.0.11上)如圖4:
圖4:系統(tǒng)主頁
頁面功能:
1通知信息
點擊頁面下方的“關(guān)于網(wǎng)上報畢業(yè)設(shè)計題目的通知”可以查看網(wǎng)上畢業(yè)論文選題信息的相關(guān)信息。
2系統(tǒng)用戶登陸
.正確的選擇用戶類型、輸入用戶名和密碼就可以進入系統(tǒng)用戶管理信息界面。
.當輸入系統(tǒng)不存在的帳號進行登陸時,系統(tǒng)將提示拒絕登陸并提示用戶登陸帳號不存在。
.如果用戶為學(xué)生類別,當他選擇用戶類型為非學(xué)生類型的其他類型時系統(tǒng)拒絕其登陸并顯示登陸帳號和用戶類型不匹配。
.當用戶選擇的類型正確,帳號也正確但密碼錯誤系統(tǒng)將提示用戶使用帳號密碼錯誤,請核對信息后重新登陸。
1注冊會話信息
HttpSession currentSession = request.getSession(false);
currentSession = request.getSession(true);
currentSession.setAttribute("userNo",userNo);//保存用戶編號
currentSession.setAttribute("userName",userName);//保存用戶姓名
currentSession.setAttribute("userCode",userCode);//保存用戶帳號
currentSession.setAttribute("userType",userType);//保存用戶類型
currentSession.setMaxInactiveInterval(-1);//設(shè)定頁面會話永不失效,直到關(guān)閉
String sessionId = currentSession.getId();
currentSession.setAttribute("session_id",sessionId);
String remoteIp = request.getRemoteAddr();
currentSession.setAttribute("login_ip",remoteIp);
//增加用戶會話
LoginHome.addUserSession(userNo,sessionId,remoteIp);
同時將信息增加到用戶會話信息表bsm_session_info中
5.2.2系統(tǒng)用戶管理
.系統(tǒng)用戶信息管理
1.權(quán)限控制(如圖5)
只有系統(tǒng)管理員和系主任具有對用戶信息的操作權(quán)限,其他人員沒有操作權(quán)限,代碼在jsp中實現(xiàn):
if(!(userType.equals("0")||userType.equals("1")))
{
throw new DataException("對不起沒有查看權(quán)限!");
}
系統(tǒng)管理員和系主任同時公用同一組界面,但在界面上對操作權(quán)限也進行了控制。實現(xiàn)代碼:
<%
if(userType.equals("1"))
{
%>
<input type="button" name="add2" value="導(dǎo)入" onClick="window.location.href='op_user_import.jsp'">
<%
}
%>
該功能只有系主任才能使用
圖5:系統(tǒng)用戶管理界面
2.頁面功能
查詢——選擇不同條件進行組合查詢,就可以查詢出相關(guān)的用戶信息。
增加——點擊“增加”按鈕進入“增加用戶”信息界面,見圖6:

該功能只會在主任操作時出現(xiàn),同時只有用戶類型為指導(dǎo)教師時使用
圖6:增加用戶界面
增加用戶操作只有兩種權(quán)限擁有,一個為系統(tǒng)管理員,一個為系主任。管理員負責添加系主任的信息而系主任負責添加指導(dǎo)教師和學(xué)生的信息,當系主任添加用戶時會多出一個指導(dǎo)學(xué)生人數(shù)選項,它是限定老師所帶的學(xué)生的人數(shù)。添加成功后信息通過電子郵件的形式發(fā)送給用戶,并且由系統(tǒng)隨機生成密碼。實現(xiàn)代碼:
if(myForm.user_type.value =="2")
{
stu_num_id.innerHTML="<inputname=\"stu_num\" type=\"text\" desType=\"NUMBER\" value=\"\" maxlength=\"2\" isNeed=\"1\" des=\"指導(dǎo)學(xué)生人數(shù)\" size=\"10\">人";
}
if(myForm.user_type.value =="3")
{
stu_num_id.innerHTML="<inputname=\"stu_num\" type=\"text\" value=\"\" maxlength=\"2\" isNeed=\"\" des=\"指導(dǎo)學(xué)生人數(shù)\" size=\"10\" readonly>人";
}
修改——管理員和系主任還擁有修改用戶信息的功能,但系主任與管理員相比增加了修改老師能夠指導(dǎo)的學(xué)生的人數(shù)的選項。
郵件——可以單獨給某一用戶發(fā)送郵件。
凍結(jié)——當系統(tǒng)用戶的帳號到期,管理員和系主任就要對用戶信息凍結(jié)。當用戶進入系統(tǒng)時系統(tǒng)將提示該帳號被凍結(jié)。我們設(shè)計這系統(tǒng)是考慮的是凍結(jié)用戶帳號而不是刪除它凍結(jié)后系統(tǒng)將避免不必要的信息丟失。
導(dǎo)入——當系主任輸入教師學(xué)生信息時由于輸入信息量太多一個一個的輸入不太現(xiàn)實在這里我們添加了文件導(dǎo)入的功能。如圖7:

圖7:導(dǎo)入用戶信息界面
5.2.3 歷屆信息查看
歷屆信息查看功能是對歷年作過的畢業(yè)設(shè)計做的統(tǒng)計進行備份記載,它是為了方便教師和學(xué)生查詢以做出題和選題參考,還為系主任對題目的審核提供參考。
5.2.4 個人信息維護
當用戶進入系統(tǒng)后可以通過點擊“個人信息維護”對自己的個人信息進行修改,可以修改密碼,郵箱聯(lián)系方式等個人資料,見圖8:

圖8:個人信息維護
5.3系統(tǒng)選題權(quán)限管理
擬定——教師擬訂畢業(yè)設(shè)計題目,并提交系主任審核。
審核——系主任審核題目并對題目進行評定,供學(xué)生選擇。
選定——學(xué)生選擇系主任審核過后的題目,學(xué)生可以根據(jù)個人愛好與實際情況選擇第一,第二,第三和其他四個志愿等待老師審核。
審批——老師根據(jù)對學(xué)生選擇的題目進行審核決定學(xué)生最后的畢業(yè)論文課題。
詳細的設(shè)計流程圖見下圖9:。
圖9:選題權(quán)限管理圖
審核功能實現(xiàn):系主任通過點擊“審核”對教師出的題目進行審核(見圖10):

圖10:論文題目審核管理界面
進入審核頁面(見圖11):

圖11:審核界面
5.4教師題庫管理
教師作為系統(tǒng)的一個用戶,進入系統(tǒng)后能進行題目的錄入及修改,能對學(xué)生的選題進行審核,以及修改自己的個人信息等功能。
5.4.1教師出題
教師作為系統(tǒng)的一個用戶,他可以錄入論文題目的信息。錄入的題目必須經(jīng)過系主任的審核后學(xué)生才能進行選擇。錄入如圖12:

圖12:教師錄入題目界面
5.4.2教師審核題目
教師審核題目是學(xué)生選擇了老師的題目后,老師根據(jù)學(xué)生所選擇的志愿的先后順序來進行審核的,也就是說學(xué)生的第一志愿在未經(jīng)審核或?qū)徍送ㄟ^后,第二志愿的老師不能進行審核操作。如圖13:
圖13:教師審核管理界面
進入審核界面:如圖14:
圖14:教師審核界面
5.5學(xué)生在線選題
學(xué)生在本系統(tǒng)中,可以對畢業(yè)設(shè)計題目進行增加,修改以及查看歷史信息和修改個人信息等操作。如圖15:
可以增加自己的論文題目
圖15:畢業(yè)論文選題信息管理界面
頁面功能:
⑴查詢:可以查看學(xué)生自己已經(jīng)選擇的論文題目。
⑵增加:可以增加自己的論文題目,但必須是在自己所選的題目未被老師審核的情況下。
⑶刪除:可以刪除未被老師審核的論文題目。
⑷修改:可以修改自己的論文題目以及志愿信息。
進入增加頁面:

圖16:畢業(yè)論文選擇界面
論文選擇后,等待老師的審核。
5.6系統(tǒng)登出
當用戶進行完他的系統(tǒng)操作后他就要通過點擊“退出系統(tǒng)”退出系統(tǒng)當他將退出系統(tǒng)后系統(tǒng)將自動注銷session。
5.7系統(tǒng)基本控件使用
系統(tǒng)的數(shù)據(jù)庫連接池、郵件系統(tǒng)和數(shù)據(jù)導(dǎo)入功能的實現(xiàn)主要是使用第三方組件進行開發(fā),例如數(shù)據(jù)庫連接池主要使用msbase.jar,mssqlserver.jar,msutil.jar,郵件系統(tǒng)主要使用mail.jar,activation.jar,數(shù)據(jù)導(dǎo)入時,使用的文件上傳的組件commons-fileupload-1.0.jar。
5.7.1數(shù)據(jù)庫連接池實現(xiàn)
//新建連接池
dataSource = new BasicDataSource();
dataSource.setDriverClassName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
dataSource.setUrl("jdbc:microsoft:sqlserver://localhost"+":"+this.dbport+";DatabaseName="+this.dbname);
dataSource.setMaxActive(200);
dataSource.setMaxIdle(150);
dataSource.setMaxWait(-1);
dataSource.setRemoveAbandoned(true);
dataSource.setRemoveAbandonedTimeout(60);
dataSource.setLogAbandoned(true);
dataSource.setUsername(this.username);
dataSource.setPassword(this.password);
/**
* 釋放數(shù)據(jù)庫連接
* @param conn 欲釋放回連接池的連接
*/
Public void freeConnection(Connection conn, String clsName)
{
try
{
if (conn != null)
{
conn.close();
conn = null;
}
String num = (String)connOutMap.get(clsName);
if (num==null)
num = String.valueOf(0);
else
num = String.valueOf(Integer.parseInt(num)+1);
connOutMap.put(clsName,num);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
5.7.2郵件系統(tǒng)實現(xiàn)
核心代碼:
private MimeMessage mimeMsg = null; //MIME郵件對象
private Session session = null; //郵件會話對象
private Multipart mp = null; //Multipart對象,郵件內(nèi)容,標題,附件等內(nèi)容均添加到其中后,再生成MimeMessage對象
mimeMsg.setContent(mp);
mimeMsg.saveChanges();
System.out.println("正在發(fā)送郵件....");
Session mailSession = Session.getInstance(props,null);
mailSession.setDebug(DEBUG);
mimeMsg.saveChanges(); //存儲郵件信息
Transport transport = mailSession.getTransport("smtp");
transport.connect(smtpServer, username, password);
transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO));
System.out.println("發(fā)送郵件成功!");
mailSession = null;
transport.close();
6技術(shù)難點分析
本系統(tǒng)采用MVC的架構(gòu),它可以解決完全由JSP或完全由servlet實現(xiàn)的應(yīng)用程序中的固有的問題。也就是解決了用JSP很難將內(nèi)容同內(nèi)容的顯示分開和很容易將Java代碼同HTML混在一起的問題。這樣做出來的系統(tǒng)易于維護。
在數(shù)據(jù)處理上選用DAO的數(shù)據(jù)處理模式,就是建立一個接口,接口中定義了此應(yīng)用程序中將會用到的所有事務(wù)方法。在這個應(yīng)用程序中,當需要和數(shù)據(jù)源進行交互的時候則使用這個接口,并且編寫一個單獨的類來實現(xiàn)這個接口在邏輯上對應(yīng)這個特定的數(shù)據(jù)存儲。把對數(shù)據(jù)庫的操作全部封裝在DAO里面,這樣便于以后系統(tǒng)數(shù)據(jù)庫的升級。
本系統(tǒng)要求實現(xiàn)管理員、院系領(lǐng)導(dǎo)、指導(dǎo)教師和學(xué)生的不同操作,所以控制好用戶的權(quán)限操作是我們本系統(tǒng)重點中的重點。
結(jié) 論
本系統(tǒng)基本上實現(xiàn)了畢業(yè)論文選題系統(tǒng)的功能,本系統(tǒng)首先實現(xiàn)了動態(tài)的更新內(nèi)容,如更新學(xué)生信息,管理員信息,論文信息等。要保持良好的動態(tài)性就要求與數(shù)據(jù)庫有良好的連接。本系統(tǒng)還實現(xiàn)了交互性,交互性就是指教師和學(xué)生之間能進行信息交流,另外學(xué)生在使用系統(tǒng)時實現(xiàn)了學(xué)生操作系統(tǒng)方便操作界面美觀,實現(xiàn)系統(tǒng)安全性可靠性避免他人進入系統(tǒng)破壞系統(tǒng)信息。
這次的畢業(yè)設(shè)計選題系統(tǒng)雖然實現(xiàn)了一些功能但是還是存在一些問題和缺陷,但是我還是通過親自參加畢業(yè)設(shè)計使自己的知識得到提高,并且我充分體會到理論與實踐之間的重要聯(lián)系,更一步的了解了JAVA和數(shù)據(jù)庫的知識。畢業(yè)設(shè)計就是我們大學(xué)四年學(xué)習(xí)的總結(jié),讓我更清楚的認識到了自己的。
參考文獻
[1] 耿詳義.JSP實用教程 [M].北京:清華大學(xué)出版社,2003。
[2] 張躍平.JAVA2 實用教程 [M].北京:清華大學(xué)出版社,2004。
[3] 朱洪江.Java Servlet & JSP 經(jīng)典實例 [M].北京:中國電力出版社,2005。
[4] 盧銀鵑.JSP網(wǎng)絡(luò)開發(fā)技術(shù) [M].北京:人民郵電出版社,2001。
[5] 李盛恩.數(shù)據(jù)庫基礎(chǔ)與應(yīng)用 [M].北京:人民郵電出版社,2002。
[6] 李洪成.tomcat與java Web開發(fā)技術(shù)詳解[M].上海: 電子工業(yè)出版社,2006。
[7] 張懷中.?常用工具軟件實用教程[M].北京:中國水利水電出版社,2004。
[8] 周良中.?Eclipse插件開發(fā).北京:人民郵電出版社,2005。
致 謝
本文是在郭濤老師和王燚老師的熱情關(guān)心和指導(dǎo)下完成的,他淵博的知識和嚴謹?shù)闹螌W(xué)作風使我受益匪淺,對順利完成本課題起到了極大的作用。在此向他表示我最衷心的感謝!
在論文完成過程中,本人還得到了楊林老師和許多同學(xué)的熱心幫助,本人向他們表示深深的謝意!
最后向在百忙之中評審本文的各位專家、老師表示衷心的感謝!
附 錄
Tomcat簡介
Tomcat是一個免費的開源的Servlet容器。與傳統(tǒng)的桌面應(yīng)用程序不同,Tomcat中的應(yīng)用程序是一個WAR(Web Archive)文件。WAR是Sun提出的一種Web應(yīng)用程序格式,與JAR類似,也是許多文件的一個壓縮包。這個包中的文件按一定目錄結(jié)構(gòu)來組織:通常其根目錄下包含有Html和Jsp文件或者包含這兩種文件的目錄,另外還會有一個WEB-INF目錄,這個目錄很重要。通常在WEB-INF目錄下有一個web.xml文件和一個classes目錄,web.xml是這個應(yīng)用的配置文件,而classes目錄下則包含編譯好的Servlet類和Jsp或Servlet所依賴的其它類(如JavaBean)。通常這些所依賴的類也可以打包成JAR放到WEB-INF下的lib目錄下,當然也可以放到系統(tǒng)的CLASSPATH中,但那樣移植和管理起來不方便。
Tomcat不僅僅是一個Servlet容器,它也具有傳統(tǒng)的Web服務(wù)器的功能:處理Html頁面。但是與Apache相比,它的處理靜態(tài)Html的能力就不如Apache。我們可以將Tomcat和Apache集成到一塊,讓Apache處理靜態(tài)Html,而Tomcat處理Jsp和Servlet。這種集成只需要修改一下Apache和Tomcat的配置文件即可。
基于Tomcat的開發(fā)其實主要是Jsp和Servlet的開發(fā),開發(fā)Jsp和Servlet非常簡單,可以用普通的文本編輯器或者IDE,然后將其打包成WAR即可。
聲 明
本論文的工作是 2007年2月至2007年6月在成都信息工程學(xué)院網(wǎng)絡(luò)工程系完成的。文中除了特別加以標注地方外,不包含他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得成都信息工程學(xué)院或其他教學(xué)機構(gòu)的學(xué)位或證書而使用過的材料。除非另有說明,本文的工作是原始性工作。
關(guān)于學(xué)位論文使用權(quán)和研究成果知識產(chǎn)權(quán)的說明:
本人完全了解成都信息工程學(xué)院有關(guān)保管使用學(xué)位論文的規(guī)定,其中包括:
(1)學(xué)校有權(quán)保管并向有關(guān)部門遞交學(xué)位論文的原件與復(fù)印件。
(2)學(xué)??梢圆捎糜坝 ⒖s印或其他復(fù)制方式保存學(xué)位論文。
(3)學(xué)??梢詫W(xué)術(shù)交流為目的復(fù)制、贈送和交換學(xué)位論文。
(4)學(xué)??稍试S學(xué)位論文被查閱或借閱。
(5)學(xué)??梢怨紝W(xué)位論文的全部或部分內(nèi)容(保密學(xué)位論文在解密后遵守此規(guī)定)。
除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息工程學(xué)院。
特此聲明!
作者簽名:
年 月 日