基于jsp(java)高校学生考勤管理系统设计与实现
獲取項目源文件,學習交流聯系Q:1415736481,可指導畢設,課設
本系統主要針對目前高校學生在線請假以及學生上課出勤管理而設計的信息系統。本系統總體上由三大功能模塊:請假系統模塊、考勤系統模塊、后臺管理模塊組成。系統涉及到高校六大類用戶:學生、任課老師、班主任、院系領導、學校領導、系統管理員。
本高校學生考勤管理系統用JSP+SQL Server 2000開發,開發過程中運用了頁面模塊化、信息發布的動態生成、靜態頁面顯示等技術開發。本論文重點介紹本系統的請假系統、考勤系統兩大功能模塊設計,完成學生、任課老師、班主任、院系領導、學校領導五類用戶功能的設計與實現。
?
關鍵詞:考勤管理;在線請假;JSP
?
?
ABSTRACT
The system is an information system designed for asking for leave on line? for students and managing? attendance of undergraduate.It is generally divided into three main modules: the module for asking for on-line leave , the module for managing attendance of undergraduate and? the module? for backstage management. There are different customers? in the university? operating? the system,such as? student, teacher, ?a teacher in charge of a class,department leader, school leader, administrator.
The system is developed with the help of Jcreator,JSP(java、javascript、html)and SQL Server 2000. The key techniques used in the process of development are: the page modularization, dynamic generating and static page showing of information, etc. And the thesis focuses on the introduction of the system’s attendance management and the management of asking for leave online.And it develops the function of student, teacher, a teacher in charge of a class,department leader, school leader on the whole.
Key word: attendance management;online ask for leave; JSP
?
第1章 問題定義
1.1 引言
問題定義階段必須回答的關鍵問題是:“要解決的問題是什么?”, 在此階段中,主要是弄清本課題需要解決的問題根本所在,以及此課題所需的資源等。
1.2開發背景
目前高校校園信息化逐步完善,高校師生借助校園網有效的提高了辦事效率。各大高校針對師生的成績查詢系統、教務管理系統、招生就業系統、BBS、校園網站等系統在各大高校紛紛出現,對全校師生的學習、生活、管理、辦公帶來了便利。
目前高校學生上課考勤管理都是以任課老師上課點名,記錄學生上課出勤情況,學期末根據上課出勤表及作業登記表對學生平時成績打分,然后把數據上交到各院系。學生請假以傳統的寫請假條的形式向各自班主任請假,時間長的請假,要班主任、院系領導都批準方能生效。這種的模式在目前高校管理中暴露出了許多弊端:一是學生請假不方便;二是學生請假對任課老師不透明,造成對學生上課出勤誤記的情況;三是學生上課出勤表對班主任不透明,班主任很難知道本班學生上課的出勤情況,不便于與學生及時有效的溝通;四是學生對自己整個學期的上課出勤情況沒有整體的統計信息。五是院系領導、學校領導更加把握不住學生上課的出勤情況。
1.3問題描述
上述所說高校對學生考勤和請假面臨的問題涉及多類用戶,系統使用范圍是在全校校園網內,由于用戶分布廣泛,且存在很大差異,如:知識結構的差異、計算機硬件配置的差異、操作系統的差異等。因此本系統設計應當采用典型的B/S(瀏覽器/服務器)的構架進行設計,操作簡單直觀,對硬件要求低,最好能實現跨平臺。跨平臺一是指客戶端用戶操作的跨平臺,二是指服務器端的跨平臺,即可以將服務器部署在所有操作平臺上。系統應當有很好的擴展性,與當前高校中現有的系統很好集成。
目前隨著IT技術的不斷創新與發展,新的技術不斷推出,各種企業實現信息化的解決方案不斷成熟。面向對象程序設計語言的廣泛使用,各種成熟關系數據庫的不斷完善與推出,再加上面向對象的軟件開發過程廣泛應用,軟件開發過程變得越來越容易,開發出的系統變得越來越實用,許多企業使用信息系統后,明顯提高了辦事效率,帶來了很大的經濟收入。目前流行的基于B/S結構的解決方案主要有ASP,JSP,PHP等技術。本系統選用JSP技術開發,使用當前流行的SQL Server 2000數據庫管理系統來存儲數據,主要解決學生在線請假、在線考勤管理以及后臺數據的維護與更新。
?
?
第2章? 可行性分析
2.1 引言
這個階段要回答的關鍵問題是:“對于上一個階段所確定的問題有行得通的解決方法嗎?”為了回答這個問題,需要一次大大壓縮和簡化了的系統分析和設計的過程,也就是在較抽象的高層次上進行的分析和設計的過程。可行性研究應該比較簡短,這個階段的任務不是具體解決問題,而是研究問題的范圍,探索這個問題是否值得去解,是否有可行的解決方法。
2.2 目的和意義
開發本系統的目的,就是要解決目前高校中關于學生請假與上課出勤管理中所面臨的一系列問題。
開發出高校學生考勤管理系統能有效地提高高校辦事效率,解決目前高校學生請假及上課出勤管理問題,實現學生請假及上課出勤信息對任課教師、班主任、院系領導、學校領導透明,使班主任、院系領導及時把握學生的學習情況,及時與學生溝通,提高教學質量。
2.3 可行性分析
技術可行性:高校學生考勤管理系統在目前的高校中使用還不普遍,但也有許多類似的成功案例:如教務管理系統、排課系統等。本系統采用JSP,JavaScript腳本語言、html標識語言及SQL Server 2000數據庫技術綜合開發。JSP是一種安全穩定的動態網頁技術,目前國內各企業的電子商務系統,ERP系統,銀行信息系統等基本上都用JSP開發的。Microsoft SQL Server(基于結構化查詢語言的數據庫服務器)是基于客戶/服務器結構的數據庫管理系統,用戶通過使用客戶系統從服務器檢索信息并進行本地操作,服務器關注數據庫進程,而客戶則關注信息的表示。為了使客戶端能夠從服務器中訪問數據,服務器必須具備以下兩個關鍵特征:一、對在數據庫中的數據提供單點訪問。二、將處理和操作在客戶端和服務器間進行分配。SQL Server使用Transact-SQL語言來維護、實現和訪問數據庫,Transact-SQL是SQL(Structured Query Language)的一個子集標準。SQL Server有多種實用程序允許用戶來訪問它的服務,用戶可用這些實用程序對SQL Server進行本地管理或遠程管理。
經濟可行性:本系統使用B/S架構設計,使用市場上流行的動態網頁技術,開發簡單,使用度方便,不需要耗費大量的人力物力就能很快的開發出來,系統部署對軟硬件要求不高,用戶操作簡單,幾乎不需要對用戶進行專業培訓就可使用本系統,所以從經濟上講是可行的。
法律可行性:本系統擁有自主知識產權,沒有使用任何違法的軟件也沒有交易任何非法的商品,所以在法律上是可行的。
操作可行性:本系統操作簡單方便,只要懂得上網都能方便操作本系統,所以在操作上也是可行的。
分析結果:從以上的分析可知,高校學生考勤管理系統的解決方案無論在技術,經濟還是法律以及操作上都是可行的,且開發本系統具有一定的經濟價值和實用價值。
?
?
第3章? 需求分析
3.1 引言
這個階段的任務仍然不是具體地解決問題,而是準確地確定“為了解決這個問題,目標系統必須做什么”,主要是確定目標系統必須具備哪些功能。
3.2 用戶需求描述
用戶是系統的最終使用者,開發系統的目的是要用戶最終很好的使用系統,最終為用戶帶來各種便利。本系統要解決高校學在線請假以及上課考勤管理兩大問題,通過對高校的實際調查分析,本系統應當包括學生、班主任、任課老師、院系領導、學校領導、系統管理員六類用戶,這六類用戶對系統的需求簡要概括如下:
3.2.1學生用戶需求描述
學生對本系統的主要需求是:在線請假以及查看在校期間所有的上課出勤信息。
在線請假需求:學生在網上填寫好請假的起止日期,請假原因后,就可以向本學期本班班主任提出請假申請,超過三天的請假,由班主任審批后,再由院系領導審批。在在線請假的全過程當中,學生可以隨時查看請假的詳細進展情況。
查看出勤信息需求:學生可以查看在校期間所有學期上課出勤的詳細信息,如:查看“高等數學”這門課程在整個學期請假、曠課、遲到、早退了多少次,以及具體的時間、任課老師姓名、第幾節課等詳細信息。
其它需求:查看本人的基本信息,如本人的所屬的院系、年級、專業、班級、學號、姓名、性別等,以及修改個人用戶密碼,查看本班課表安排。
3.2.2任課老師用戶需求描述
任課老師對系統的主要需求是:管理所教班級學生的上課出勤信息以及查看所教班級學生的上課出勤信息。
管理學生上課出勤需求:根據學校安排的課表,隨著時間的變化,自動列出還沒有在網上公布的學生上課出勤信息,系統自動根據學生請假系統,決定學生上課出勤的最終結果。
查看學生出勤信息需求:查看所教班級學生整個學期上出勤統計信息及詳細信息。
其它需求:查看上課課表,本人基本信息以及修改個人用戶密碼。
3.2.3班主任用戶需求描述
班主任對本系統的主要需求是:審批本班學生本學期的在線請假以及查看本班學生本學期所有課程的上課出勤信息。
審批學生請假需求:本班學生本學期在線請假申請后,自動提示班主任有等待審批的請假信息,班主任針對請假申請信息進行學生請假審批,以及對請假信息回復。
查看學生上課出勤信息需求:查看本班學生整個學期有關課程的上出勤統計信息及詳細信息。
其它需求:查看本班學生的基本信息、修改個人用戶密碼等。
3.2.4院(系)領導用戶需求描述
院系領導對系統的主要需求是:審批本院系學生超過三天的請假以及查看本院系學生上課出勤信息。
審批請假需求:當學生請超過三天的假,經班主任審批同意后,系統自動提交給任何一個最先進入系統的院系領導審批請假,以及針對請假回復。
查看本院系學生出勤信息需求:輸入查詢條件后,系統根據查詢條件列出本院系學生相關的上課出勤信息。
其它需求:查看本院系有關基本信息以及修改個人用戶密碼等。
3.2.5學校領導用戶需求描述
學校領導對系統的主要需求是:查看全校學生上課出勤信息。
查看出勤信息需求:輸入查詢條件后,系統根據查詢條件列出本校學生相關的上課出勤信息。
其它需求:查看有關全校的基本信息以信修改個人用戶密碼等。
3.2.6系統管理員用戶需求描述
系統管理員有系統的最高權限,負責系統所需所有數據的動態同步更新以及維護,根據系統針對各用戶的設計,基本功能需求如下:
1、管理學校各院系、年級、專業、班級的添加、刪除、修改等。
2、管理每個學期每個班級的課程安排及指定班主任和任課老師。
3、管理系統所有用戶。
4、管理全校課表安排。
5、管理全校每學年開學的起止時間。
6、管理系統的請假、考勤信息。
3.3功能需求描述
根據各類用戶的需求描述,系統應當具備請假系統、考勤管理系統、后臺管理系統這三大主要功能。
請假系統功能需求:通過實際調查分析得出,目前高校中的請假流程是學生若要請假,必須先寫好請假條先由本學年班主任審批,超過四天的請假,還要等待院系領導審批通過后才能生效。請假最長時間不能超過1個月,特殊情況除外。
考勤管理功能需求:任課老師通過考勤管理系統,對學生上課出勤信息進行公開,但由于任課老師忙于教學,為了能及時準確無誤的對學生出勤情況公開,要求系統能自動提示任課老師對上完課了,但還沒公布的出勤信息進行網上公布。
后臺管理功能需求:后來管理主要是用來管理系統操作的數據,因為高校每學年的學生都在變化,有新生入學,也有學生畢業。請假系統要借助班主任安排才能完成,考勤管理系統要借助請假系統、班級課表安排才能完成,然而每學年課表都在變化,班主任安排也有在變化,學生也在變化,因此必須要求后臺管理系統能根據系統需求,動態的、準確的更新系統數據。
3.4系統開發工具
根據各用戶的需求,以及系統各大功能的需求,經過大量的調查分析,針對本高校學生考勤管理系統選擇以下開發工具進行開發:
系統結構:B/S (瀏覽器/服務器)
開發語言:JAVA/JSP
數據庫:SQL Server 2000
開發工具:JDK 1.5? Dreamweaver?? Jcreator
服務器端容器:Tomcat 5.5
3.5相關開發工具簡介
3.5.1 B/S(瀏覽器/服務器)簡介
B/S(Browser/Server,瀏覽器/服務器)模式又稱B/S結構。它是隨著Internet技術的興起,對C/S模式應用的擴展。在這種結構下,用戶工作界面是通過IE瀏覽器來實現的。B/S模式最大的好處是運行維護比較簡便,能實現不同的人員,從不同的地點,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)訪問和操作共同的數據;最大的缺點是對網絡環境依賴性太強,由于各種原因引起網絡中斷都會造成系統癱瘓。
3.5.2 JAVA/JSP簡介
JAVA是SUN公司推出的完全面向對象的語言,它有很好的跨平臺性、安全性、重用性等特點。
JSP的全稱是Java Servlet Pages,它是SUN推出的一種動態網頁技術標準。它在傳統的靜態頁面文件(*.html,*htm)中加入Java程序片段和JSP標記,就構成了JSP頁面。由Web服務器上的JSP引擎來處理JSP元素,生成調用Bean,并用JDBC訪問數據庫(或文件),最后以HTML或XML的形式返回瀏覽器。JSP在Servlet類中編譯,編譯一次后存入內存,以后再調用時,不用再編譯,所以速度很快。
3.6 系統功能劃分
根據系統用戶的需求,將本系統按功能劃分成三大功能模塊:請假系統、考勤系統、后臺管理模塊,涉及到六大類用戶:學生、任課教師、班主任、院系領導、學校領導、系統管理員。
本模塊的功能是在線請假的實現及管理,主要涉及三大類用戶:學生、班主任及院系領導用戶,學生通過此功能模塊進行在線請假及查看請假記錄信息;班主任在線審批學生請假及查看請假記錄信息;院系領導在線審批學生長時間的請假及查看請假記錄信息。
本模塊的功能是學生考勤信息統計的實現、查看及管理,涉及六大類用戶中的所有用戶。學生在線查看自己所有學年的出勤信息;任課老師在線管理學生出勤信息;班主任、院系領導、學校領導查看不同的范圍的學生出勤信息。
本模塊的功能實現整個系統數據的同步更新及維護,只涉及系統管理員用戶。系統管理員動態的管理學生信息、課表安排、學年安排等信息,是整個系統實現的基礎。
3.7 數據字典
數據詞典,既用于描述數據流和數據存儲的詳細邏輯內容,也可用于描述外部項和處理邏輯的某些數據特性。數據詞典把數據的最小組成單位看作數據元素,若干個數據元素組成數據結構。它通過對數據元素和數據結構的定義,來描述數據流和數據存儲的邏輯內容。它相當于字典的作用,當用戶或軟件人員想了解某一數據的含義時,查查字典就可以了。
?
| ? | ? | |
| ? |
| |
| ? | ||
| ? |
|
?
?
?
?
?
?
?
?
?
?
?
?
?
| ? | ? | ? | |
| ? |
| ||
| ? | |||
| ? |
| ||
| ? | |||
| ? |
| ||
| ? | |||
| ? |
| ||
| ? | |||
| ? |
| ||
| ? | |||
| ? |
| ||
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
3.8 數據流圖
數據流程圖是結構化系統分析的工具。它既可以表達數據在系統內部的邏輯流向及存儲,又可以表達系統的邏輯功能和數據的邏輯變換。數據流程圖既能表達現行人工系統的數據流程和邏輯處理功能,也能表達自動化系統的數據流程和邏輯處理功能。
?
| 圖3-1請假系統數據流圖 Fig3-1 the system’s of asking for leave dataflow pursueing |
| 學生請假 |
| 班主任審批 |
| 院系領導審批 |
| 請假成功 |
| 請假失敗 |
| 請假記錄 |
| 同意 |
| 同意 |
| 不同意 |
| 同意 |
| 不同意 |
| 圖3-2考勤系統數據流圖 Fig3-2 attendance system’s dataflow pursueing ? |
| 任課老師 |
| 請假系統 |
| 數據處理 |
| 請假 |
| 曠課 |
| 遲到 |
| 早退 |
| 出勤記錄 |
| 請假記錄 |
?
| ? | ? | ? | ? |
| ? | |||
| ? | |||
| ? | ? | ||
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
3.9運行需求
3.9.1 最低配置
服務器端:
1)硬件需求:處理器? Intel Pentium III ?內存 128M? 硬盤? 40G
2)軟件需求:Windows 98? Microsoft Internet Explorer 4.01? JDK 1.5
SQL Server 2000 數據庫??? Tomcat 5.0
客戶端 :
1)硬件需求: 處理器? Intel奔騰133或相當的處理器 內存 64M 硬盤 10G
2)軟件需求: Windows 98? Microsoft Internet Explorer 4.01
3.9.2 建議配置
服務器端:
1)硬件需求:處理器? Intel Pentium IV 2.8G 內存 256M 硬盤? 80G
2)軟件需求:Microsoft Windows 2000/XP? JDK 1.5?? Tomcat 5.5
SQL Server2000 數據庫 Microsoft Internet Explorer 6.0
客戶端 :
1)硬件需求:處理器? Intel Pentium IV 1.8或相當的處理
??????????? 內存128M 硬盤 20G
2)軟件需求: Windows 2000/XP? Microsoft Internet Explorer 6.0
?
?
第4章? 總體設計
4.1 引言
經過需求分析階段的工作,系統必須“做什么”已經清楚了,現在是決定“怎樣做”的時候。
4.2 系統布局設計
系統頁面采用框架來設計,不同的用戶有不同的功能菜單,但都有統一的風格,這給頁面的使用和維護都帶來了很大的便利,特別是在代碼重用方面起了很大作用。本系統各用戶的頁面設計如圖4-1所示:
?
| 頁面主體 |
| 功能菜單 |
| Banner |
| Bottom |
| 圖4-1 系統布局圖 Fig4-1 System’s layout map ? |
?
| ? | |
| ? |
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1.Banner區——可以在此展示系統標識、頁面歸屬等信息。
2.功能菜單區——提供系統可供操作的功能列表。
4.頁面主體區——顯示頁面格式化數據頁面主體區顯示的內容,將依據頁面在系統中的作用而定。
5.Bottom區——可設計為顯示系統所有權等信息。
4.3 總體結構圖
根據系統功能的要求,高校學生考勤管理系統各個模塊之間的層次結構如圖4-2所示:
?
| 高校學生考勤管理系統 |
| 請假系統 |
| 考勤系統 |
| 后臺管理 |
| 圖4-2? 系統功能結構示意圖 Fig.4-2? Structure sketch map of the system’s function |
?
| ? | |
| ? |
?
?
?
?
?
?
?
?
?
?
按用戶劃分,系統結構圖如圖4-3所示:
?
| 高校學生考勤管理系統 |
| 學生 |
| 班主任 |
| 任課老師 |
| 院系領導 |
| 學校領導 |
| 管理員 |
| 圖4-3? 系統用戶結構示意圖 Fig.4-3 Structure sketch map of the System’s user |
?
| ? | |
| ? |
?
?
?
?
?
?
?
?
?
請假系統子功能模塊層次結構圖如圖4-4所示:
?
| 請假系統子模塊 |
| 學生在線請假模塊 |
| 班主任審批模塊 |
| 院系領導審批模塊 |
| 圖4-4? 請假系統結構示意圖 Fig.4-4 Structure sketch map of the system asking for leave |
?
?
?
?
?
?
?
考勤系統子功能模塊的層次結構如圖4-5所示:
?
?
| 考勤管理子模塊 |
| 任課老師提交數據 |
| 各用戶查詢考勤數據 |
| 圖4-5? 考勤系統結構示意圖 Fig.4-5 Structure sketch map of the system checking attendance |
?
| ? | |
| ? |
?
?
?
?
?
?
4.4 本人主要工作任務
本高校學生考勤管理系統分成三大功能模塊來實現,本人主要負責:請假系統、考勤系統兩大功能模塊,涉及前五大類用戶:學生、班主任、任課老師、院系領導、學校領導。后臺管理功能模塊,即系統管理員的功能由同組的同學來實現。
?
?
第5章? 詳細設計
5.1 引言
總體設計階段以比較抽象概括的方式提出了解決問題的辦法。詳細設計是軟件開發時期的第三個階段,也是軟件設計的第二步。其任務就是把解法具體化,也就是回答下面這個關鍵的問題:“應該怎樣具體地實現這個系統呢?”,通過詳細設計應該得出對目標系統的精確描述,給出各個模塊的詳細過程性描述。從而在編碼階段可以把這個描述直接翻譯成用某種程序設計語言書寫的程序。
5.2 系統功能流程圖
1)主功能流程:
?
| 圖5-1? 主界面流程圖 Fig.5-1 main pages’s flow diagram |
| 開始 |
| 用戶登陸 |
| 學生 |
| 班主任 |
| 任課老師 |
| 院系領導 |
| 學校領導 |
| 在線請假 |
| 查看考勤信息 |
| 查看考勤信息 |
| 提交考勤信息 |
| 查看考勤信息 |
| 審批請假 |
| 審批請假 |
| 查看考勤信息 |
| 查看考勤信息 |
| 退出系統 |
| 結束 |
?
| ? | |
| ? |
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
5.3系統目錄結構設計
index.jsp????? 系統首頁
WEB-INF??????? 系統配置目錄
public???????? 公共目錄
image????????? 圖片目錄
student??????? 學生目錄
teacher??????? 任課老師目錄
class_teacher? 班主任目錄
college_leader 院系領導目錄
school_leader? 學校領導目錄
admin????????? 系統管理員目錄
account_manager?????? 賬號管理目錄
class_teacher???????? 班主任指定目錄
college_manager?????? 院系管理目錄
admin子目錄???????? course_manager??????? 課表安排目錄
?????????????????????? kecheng_manager?????? 課程管理目錄
?????????????????????? kaoqin_manager??????? 考勤管理目錄
qingjia?????????????? 請假管理目錄
??????????????????????? year_manager???????? 學年安排目錄
5.4 數據庫設計與實現
5.4.1 實體模型
?
| 老師提交記錄 |
| 記錄ID |
| 提交時間 |
| 上課時間 |
| 圖5-1任課老師提交記錄實體圖 Fig5-2 entity chart of the records submited to by teacher |
| 圖5-3 請假記錄屬性模型 Fig5-3 attribute model of the record asking for leave |
| 院系領導姓名 |
| 請假記錄 |
| 班級代號 |
| 學年代號 |
| 學生學號 |
| 請假原因 |
| 請假天數 |
| 開始時間 |
| 結束時間 |
| 申請時間 |
| 班主任審批狀態 |
| 班主任審批時間 |
| 班主任回復 |
| 院系回復 |
| 院系審批狀態 |
| 院系審批時間 |
?
| ? | ? | ? | ? |
| ? | ? | ||
| ? | |||
| ? | |||
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
| 圖5-4學生出勤記錄屬性模型 Fig5-4 attribute model of the record going on duty |
| 學生出勤記錄 |
| 出勤ID |
| 上課時間 |
| 學號 |
| 出勤情況 |
?
?
?
?
?
?
?
?
?
?
5.4.2 E-R模型
?
| 學生 |
| 請假記錄 |
| 1 |
| n |
| 請假 |
| 圖5-5 學生-請假記錄E-R模型 Fig5-5 the E-R model of the records asking for leave |
| 1 |
| 1 |
| 出勤記錄 |
| 學生 |
| 出勤 |
| 圖5-6 學生—出勤記錄E-R模型 Fig5-6 E-R model of the records going on duty |
?
| ? | |
| ? |
?
?
?
?
?
?
?
?
?
5.4.3 數據庫的邏輯設計
根據系統功能設計的要求以及功能模塊的劃分,對于系統數據庫,可以列出以下數據項和數據結構:
考勤登記表:課程安排代號、記載時間、上課時間。
學生上課出勤信息表:上課時間代號、上課時間、學號、出勤狀態。
請假信息表:請假代號、班級代號、學年代號、學號、請假原因、開始時間、結束時間、請假天數、申請時間、班主任審批狀態、班主任審批時間、班主任回復、院系領導審批狀態、院系領導代號、院系領導審批時間、院系領導回復
5.4.4 數據庫表的創建
根據數據庫需求的分析,建立如下3個基本數據表。
表5-1 請假信息表(qingjia)
| 列名 | 數據類型 | 是否為空 | 說明 |
| id | Int(4) | 否(主鍵)(自動生成) | 請假代號 |
| class_id | varchar(10) | 否 | 班級代號 |
| year_id | varchar(20) | 否 | 學期代號 |
| stu_number | varchar(20) | 否 | 學生學號 |
| qingjia_yuanyin | varchar(200) | 否 | 請假原因 |
| start_time | datetime | 否 | 開始時間 |
| end_time | datetime | 否 | 結束時間 |
| day_number | Int(4) | 否(默認0) | 請假天數 |
| qingjia_time | datetime | 否 | 申請請假時間 |
| class_teacher_status | Int(4) | 否(默認值:0) | 班主任審批狀態 |
| class_teacher_sp_time | datetime | 是 | 班主任審批時間 |
| class_teacher_restore | varchar(200) | 是 | 班主任回復 |
| college_leader_status | Int(4) | 否(默認值:0) | 院系領導審批狀態 |
| college_leader_id | varchar(20) | 是 | 院系領導代號 |
| college_leader_sp_time | datetime | 是 | 院系領導審批時間 |
| college_leader_restore | varchar(200) | 是 | 院系領導回復 |
備注:status 表示審批狀態:0為等待審批,1為同意請假,2為不同意請假。
表5-2 任課老師提交出勤信息記錄表(record)
| 列名 | 數據類型 | 是否為空 | 說明 |
| record_id | Int(4) | 否(自動生成) | 代號 |
| id | Int(4) | 否 | 與表course_time中id關聯 |
| record_time | datetime | 否 | 老師考勤記載時間 |
| sk_time | datetime | 否 | 上課時間 |
表5-3 學生上課出勤記錄表(kaoqin_record)
| 列名 | 數據類型 | 是否為空 | 說明 |
| kaoqin_id | Int(4) | 否(自動生成) | 代號 |
| id | Int(4) | 否 | 與表course_time中id關聯 |
| sk_time | datetime | 否 | 上課時間 |
| Stu_number | Varchar(20) | 否 | 學生學號 |
| Stu_status | Varchar(1) | 否 | 學生上課考勤狀態 |
說明:stu_status的值為:“2”表示曠課。“3”表示遲到。“4”表示早退。“5”表示請假。
5.4.5 數據庫的建立
打開SQL Server2000下面的[企業管理器],登錄之后,選擇[新建數據庫]命令,給數據庫起名為kaoqin。然后通過設計器創建數據表,剛才已經說明了需要不同的數據表來分管,它們分別是“qingjia”,“kaoqin_record”,“record”等,有關這些數據表的信息見上圖。
5.5 前端操作頁面設計
5.5.1 系統登陸設計
當不同的用戶使用系統時,都要事先進行身份驗證。用戶在“用戶名”處輸入系統管理員分配的用戶,選擇正確的用戶類型,最后輸入正確密碼后方能進行系統,用戶名、用戶類型、密碼任一一個輸入有誤,系統都將拒絕用戶使用此系統,若用戶忘記了用戶名或密碼,請與管理員聯系,本系統不支持在線找回密碼功能。學生用戶的用戶名為學生本人的學號,密碼也是學號,其它用戶的用戶名、密碼由系統管理員指定。
本系統在設計時,嚴格考慮好了系統的安全性,不允許用戶不經登陸直接使用系統的任何一個網頁,用戶也不能繞過身份驗證,即:假如一個學生用戶用正確的用戶名和密碼進行系統后,就算他知道管理用戶或其它用戶的某個網頁地址,也是不能打開,進行操作的,系統將自動提示沒權限的錯誤信息。
5.5.2 學生用戶功能設計
根據學生用戶的需求,系統實現了在線請假、查看上課出勤信息、查看個人基本信息這三大主要功能。系統針對學生用戶設計如下功能菜單:基本信息、請假系統、考勤信息、查看課表、修改密碼、安全退出、幫助。在基本信息功能菜單中,學生可以查看自己的學號、姓名、性別、院系、年級、專業、班級號信息。在請假系統功能菜單中,實現了在線請假申請功能,以及查看等待審批的請假信息、請假成功的請假信息、請假失敗的請假信息。在考勤信息菜單下,學生可以查看本學年以及歷史學年上課出勤的統計信息及詳細信息。在查看課表功能菜單中,學生可以查看當前學期的課表安排,以及歷年的課表安排。修改密碼功能菜單,學生可以修改自己的密碼。本系統還自帶幫助文件,方便用戶在使用過程中隨時查閱。
學生用戶的在線請假,在班主任或院系領導還沒批假之前可以由學生自行刪除,若班主任審批了請假,則學生不能刪除申請記錄,學生不能重復請假,因此學生請假時應當慎重。
根據學生用戶請假的需求,學生三天內的請假(包括三天)只需班主任批準后就可生效,四天(包括四天)以上的請假,必須先由班主任同意,然后學校同意,請假方能生效,超過30天的請假不能在線請假。請假開始時間必須在請假結束時間之前,否則系統自動提示出錯信息,且請假時,必須指定請假開始時間,請假結束時間,以及請假原因,請假時不必要指定班主任,系統會自動根據本學期的班級與班主任安排,找到班主任,并將信息自動交給對應班主任進行審批處理,超過四天的請假還將自動交給任何一個院系領導審批處理。系統還約定學生網上請假只能提前一個星期。
請假開始時間與結束時間的約定:請假時間學生可自動選擇,也可自己輸入日期,但是必須輸入正確的日期格式,否則系統將出錯,建議學生選擇日期還不手動輸入,以免出錯。假若學生只請一天假,則開始時間與結束時間都選擇要請假的那一天,如:一個學生2006年5月30日要請假,則開始時間、結束時間都選擇2006-05-30,系統在進行處理時,自動把請假的時間設為從2006-05-30 00:00:00開始,2006-05-30 23:00:00結束。同樣,請超過一天的假也是以這種方式處理的。
在請假的詳細記錄中,有學生請假有關所有詳細信息,包括學生請假的申請時間、開始時間、結束時間、天數、原因、審批時間、回復、請假成功與否等所有有關請假的信息,學生可以隨時查看請假進展情況。
5.5.3 任課老師用戶功能設計
根據任課老師用戶需求,系統實現了任課老師在線公布學生上課出勤信息、查看學生考勤信息兩大基本功能。系統針任課老師用戶設計以下功能菜單:
查看課表、考勤管理、考勤信息、修改密碼、安全退出、幫助。在查看課表功能菜單下,任課老師可以查看本學期自己所帶課程的上課時間以及所教班級的一些基本信息。在考勤管理功能菜單中,系統比較智能的根據當前日期自動提示當前學年還沒登記的學生上課出勤表。在考勤信息功能菜單中,任課老師可以查看已經記錄的學生上課出勤信息,既可以查看學生上課出勤統計信息,也可以考勤學生上課出勤統計信息,還可以做適當的修改。
考勤管理功能是任課老師用戶最主要的功能,任課老師上完課后,將傳統的學生上課出勤情況在網上進行公布,使學生上課出勤信息及時準備對對班主任、院系領導、學校領導透明。根據任課老師用戶的需求,系統實現了自動提示任課老師提交數據的功。根據課表安排,將本學期上完課的,還沒提交數據的學生出勤情況自動提示任課老師提交數據,實現了智能化管理。比如說一個老師在2006-5-30進入了系統,那么這個老師在本學期,也就是2006-5-30之前上過的課,但還沒提交數據出勤登記信息自動顯示出來,等待任課老師提交數據,且任課老師在提交數據時,若學生在上課的那天請了假,且請假成功了,那么系統自動將學生出勤記錄記為請假,任課老師無法記載學生為曠課等情況。
任課老師在考勤信息當中,可以查看所教過的學生上課出勤的詳細信息及統計信息,從而到了學期末,可以方便任課老師根據上課出勤情況對學生平時成績打分。
5.5.4 班主任用戶功能設計
根據班主任用戶功能的需求,系統實現了游覽班級信息、審批本班學生在線請假、及上課考勤信息三大基本功能。系統針對班主任用戶設計如下功能菜單:班級信息、請假系統、考勤信息、修改密碼、安全退出、幫助。在班級信息功能菜單中,班主任用戶可以查看本班學生的基本信息如:年級、專業、班級、學生學號、姓名、性別。在請假系統功能菜單中,班主任可以審批本班學生的在線請假,以及查看審批學生請假的歷史記錄,如:同意的請假記錄和不同意的請假記錄。在考勤信息功能菜單中,班主任用戶可以查看本班學生所有課程的上課出勤信息,包括出勤詳細信息及出勤統計信息。
班主任用戶在整個系統中是學生請假的決策者,學生請假必須經班主任同意后,才能提交給院系領導審批請假。班主任在審批學生請假時,可以對學生的請假返回反饋意見,以對學生說明不同意請假的原因,或向院系領導說明情況的真實性以更好的方便學生請假。班主任另外一大功能是查看本班學生本學期的所有考勤信息,包括詳細信息和統計信息,這樣班主任可以及時有效的與本班同學溝通,提高辦事效率,提高學生的學習成績。
5.5.5 院系領導用戶功能設計
根據院系領導的用戶需求,系統實現了查看本院系信息、審批本院系學生請假、查看考勤信息三大基本功能。系統針對院系領導用戶設計如下功能菜單:院系信息、請假系統、考勤統計、班主任信息、任課老師信息、班主任安排信息、院系課表、修改密碼、安全退出、幫助。在院系信息功能菜單中,院系領導可以查看本院系的專業信息、班級信息、學生信息。在請假系統功能菜單中,院系領導可以審批經班主任同意的長時間請假,并可查看審批請假的歷史記錄。在考勤統計功能菜單中,院系領導可以查看本院系各班級考勤統計數據、查尋學生請假信息、考勤信息等。另外在班主任信息、任課老師信息中院系領導可以查看本院系班主任、任課老師的一些基本信息。在院系課表中可以查看本院系當前學年或歷年課表安排。
院系領導用戶的主要功能是查詢本院系學生上課的考勤信息及審批學生請假。院系領導可以查詢本院系某個班的考勤信息,也可以查詢本院系某個人的考勤信息,在查詢個人考勤統計信息時,是一個模糊查詢,可以根據一個完整學號,唯一的查出一個學生考勤信息,也可輸入部分學號、姓名列出所有相關的考勤記錄。院系領導還可查看本院系的一些基本信息,如:專業、班級、任課老師、班主任等一些基本信息。
5.5.6 學校領導用戶功能設計
根據學樣領導用戶的功能,本系統實現了查看全校基本信息及學生考勤信息這兩在基本功能。針對院系領導用戶設計如下功能菜單:學校信息、考勤信息、院系領導信息、班主任信息、任課老師信息、班主任安排信息、全校課表、修改密碼、安全退出、幫助。在學校信息功能菜單下,學校領導可以查看有關本校的一些基本信息,包括:院系信息、專業信息、班級信息、學生信息等。在考勤統計功能菜單下,學校領導可以分院系,班級查看學生考勤統計數據也可以查尋學生上課出勤信息。
學校領導用戶的功能與院系領導用戶的功能基本上相同,只是查看信息的范圍不一樣,院系領導只能查看本院系的信息,而學校領導可以查看全校學生、任課老師、班主任等所有相關信息。由于與院系領導設計基本上一致,不再重復。
?
?
第6章? 編碼
6.1用戶操作頁面編碼
6.1.1 系統登陸編碼
用戶登陸時操作頁面如圖6-1所示:
?
| ? | ||
| ? |
|
?
?
部分代號:
chuser.jsp
……
<%
request.setCharacterEncoding("GBK");
username=request.getParameter("username");
password=request.getParameter("password");
Type=(String)request.getParameter("type");
char userType=Type.charAt(0);
if(username==null || password==null || username.equals("") ||password.equals("")){
?????? out.println("<center>");
?????? out.println("<h1>用戶名或密碼輸入非法!請返回重新輸入!</h1><br><br>");
?????? out.println("<a href=javascript:history.back()>返回</a>");
?????? out.println("</center>");
?????? return;
??? }
switch(userType){
?case '1' : {sql="select * from stu_user where stu_id='"+username;
??????? ?sql+="' and stu_password='"+password+"'";
???????? rs=conn.executeQuery(sql);
???????? if(rs.next()){
?????????? session.setAttribute("userType",Type);
?????????? session.setAttribute("userName",username);
?????????? session.setMaxInactiveInterval(60*60*24);
?????????? response.sendRedirect("/kaoqin/student/student.jsp");
??????? }else{
?????????? out.println("<center>");
?????????? out.println("<h1>用戶名或密碼不正確</h1><br><br>");
?????????? out.println("<a href=javascript:history.back()>返回</a>");
?????????? out.println("</center>");
???????? }
???????? conn.close();
??????? break;
?????? }
?…………
?%>
?各頁面身份驗證代碼:如check_stu.jsp
<%
??? if(session.getAttribute("userType")!=null && !session.getAttribute("userType").equals("")){
?????? String userType=(String)session.getAttribute("userType");
?????? if(!userType.equals("1"))
????????? response.sendRedirect("/kaoqin/public/error_user.jsp");
??? }else{
???? response.sendRedirect("/kaoqin/public/error_log.jsp");
???? }
?%>
只要在所有的學生用戶頁面中加入上面的代碼后,用戶必須先登陸后才能打開網頁,且不能繞過身份驗證。同樣的頁面對應各用戶還有check_class_teacher.jsp等
6.1.2 學生用戶功能編碼
根據系統詳細設計,學生用戶操作頁面如圖6-2所示:
?
|
?
?
請假功能的實現的程序流程圖如圖6-3所示:
?
?
?
?
?
?
?
?
?
?
?
?
?
| 圖6-3請假系統流程圖 Fig 6-3the flow chart of the system asking for leave |
| 等待班主任審批 |
| 學生請假記錄 |
| N |
| 班主任審批請假 |
| T=0 C=0 N=? |
| T=1 C=0 N=? |
| T=2 C=0 N=? |
| N>=4等待院系審批 |
| 請假失敗 |
| N<4 請假成功 |
| 院系審批請假 |
| T=1 C=0 N>=4 |
| T=1 C=1 N>=4 |
| T=1 C=2 N>=4 |
| 請假失敗 |
| 請假成功 |
| T=0 C=0 N=? |
?
| ? | |
| ? |
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
說明:T 表示班主任對請假審批結果。默認值:0
C 表示院系領導對請假審批結果。默認值:0
N 表示學生請假天數。默認值:0
T、C的值為:0、等待審批。 1、同意請假。2、不同意請假。
功能實現部分代碼:
package qingjia;
public class QJ_Record{
????????? public int day_number=0;
????????? public int class_teacher_status=0;
????????? public int college_leader_status=0;
????????? public QJ_Record(int T,int C,int N){
???????????? this.class_teacher_status=T;
???????????? this.college_leader_status=C;
???????????? this.day_number=N;
????????? }
}
package qingjia;
public class QingJia{
????????? public int judge(QJ_Record record){?????? //對請假記錄進行判斷,返回值為1:請假成功;
????????? ??? int T=record.class_teacher_status;??? //返回值為0:等審批的請假。返回值為-1:失敗的請假
????????? ??? int C=record.college_leader_status;
????????? ??? int N=record.day_number;
????????? ??? int result=0;
????????? ??? if(T==0&&C==0)
????????? ?????? result=0;
????????? ??? if(T==2&&C==0)
????????? ?????? result=-1;
????????? ??? if(T==1&&C==0)
????????? ??? ? if(N>=1&&N<4)
????????? ??? ? ???result=1;
????????? ??? if(T==1&&N>=4)
????????? ??????? if(C==0)
????????? ?????????? result=0;
????????? ??????? else if(C==1)
????????? ???????????????? result=1;
????????? ???????????? else
????????? ???????????????? result=-1;
????????? ??? return result;
????????? }
}
6.1.3 任課老師用戶功能編碼
根據任課老師詳細設計的要求,設計任課老師操作頁面如圖6-4所示:
?
| ? | ||
| ? |
|
?
?
部分代碼:
kq_manager_m.jsp
??? ……
<%
??? format=new java.text.SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
??? String cur_time_2=format.format(cur_time);
??? String sql_t="select * from year where year_id='"+year_id+"'";
??? ResultSet rs_t=conn.executeQuery(sql_t);
??? if(rs_t.next()){
?????? year_id=rs_t.getString("year_id");
?????? year_name=rs_t.getString("year_name");
?????? year_start=rs_t.getTimestamp("year_start");
?????? year_end=rs_t.getTimestamp("year_end");
??? }
??? conn.close();
??? java.util.Calendar calendar=new java.util.GregorianCalendar();
??? calendar.setTime(cur_time);
?? calendar.set(calendar.DATE,calendar.get(calendar.DATE)-1); //限置任課老師不能管理當天學生的出勤
??? java.util.Calendar calendar_1=new java.util.GregorianCalendar();
??? java.util.Calendar calendar_2=new java.util.GregorianCalendar();
??? calendar_1.setTime(year_start);
??? calendar_2.setTime(year_end);
??? ResultSet _rs=null;
??? String _sql="";
??? String week_name="";
?? ?format_1=new java.text.SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
?? format_2=new java.text.SimpleDateFormat("yyyy/MM/dd");
??? format_3=new java.text.SimpleDateFormat("yyyy/MM/dd");
??? String grade_name="";
??? String sp_name="";
??? String class_number_name="";
??? String kecheng_name="";
??? _sql="select distinct kecheng_name,sp_name,grade_name,class_number_name from course_info where year_id='"+year_id+"' and teacher_id='"+teacher_id+"' and kecheng_id='"+kecheng_id+"' and class_id='"+class_id+"'";
??? _rs=conn.executeQuery(_sql);
??? if(_rs.next()){
?????? grade_name=_rs.getString("grade_name");
?????? sp_name=_rs.getString("sp_name");
?????? class_number_name=_rs.getString("class_number_name");
?????? kecheng_name=_rs.getString("kecheng_name");
??? }
??? conn.close();
??? %>
??? <center>
??? <h3><%= year_name %><%= kecheng_name %></h3>
??? <h3><%= grade_name %>級 <%= sp_name %> <%= class_number_name %>班 等待登記的上課考勤信息</h3>
?????? <table width="60%" border="1" cellspacing="0">
?????? <tr bgcolor="#0099FF">
????????? <td>上課時間</td>
????????? <td>星期</td>
????????? <td>第幾周</td>
????????? <td>課時</td>
????????? <td><div align="center">登記</div></td>
?????? </tr>??????
?????? <%
?????? int subDate=date.subDate(calendar_1,calendar);
?????? do{
????????? String before_time=format_1.format(calendar.getTime());
????????? String before_time_2=format_2.format(calendar.getTime());
????????? String before_time_3=format_3.format(calendar.getTime());
????????? int zhou=subDate/7+1;
????????? int day_of_week=calendar.get(calendar_1.DAY_OF_WEEK);
????????? switch(day_of_week){
?????????????? case 1: week_name="星期日";break;
?????????????? case 2: week_name="星期一";break;
?????????????? case 3: week_name="星期二";break;
?????????????? case 4: week_name="星期三";break;
?????????????? case 5: week_name="星期四";break;
?????????????? case 6: week_name="星期五";break;
?????????????? case 7: week_name="星期六";break;
????????? }
????????? _sql="select * from course_info where class_id='"+class_id+"' and year_id='"+year_id+"' and teacher_id='"+teacher_id+"' and week_name='"+week_name+"' and kecheng_id='"+kecheng_id+"'";
????????? _rs=conn.executeQuery(_sql);
???????? if(_rs.next()){
?????????? do{
????????????? String status=_rs.getString("status");
???????????? int pd=zhou%2;
???????????? if(status.equals("1")&&pd==0)
???????????????? continue;
???????????? if(status.equals("2")&&pd==1)
???????????????? continue;
???????????? int id_2=_rs.getInt("id");????? //檢查是否以經登記
???????????? String sql_2="select * from record where id='"+id_2+"' and sk_time='"+before_time_3+"'";
???????????? ResultSet rs_2=conn.executeQuery(sql_2);
???????????? if(rs_2.next())
?????????????? continue;
??????? %>
????? <tr>
???????? <td><%= before_time_2 %></td>
???????? <td><%= week_name %></td>
???????? <td>第<%= zhou %>周</td>
???????? <td><%=_rs.getString("lesson_name") %></td>
???????? <td><div align="center"><a href="record.jsp?id=<%=_rs.getInt("id")%>&time=<%=before_time_3%>">登記</a></div></td>
????? </tr>
?????? <%
???????????? conn.close();
???????????? }while(_rs.next());
?????????? conn.close();
???????? }
???????? calendar.set(calendar.DATE,calendar.get(calendar.DATE)-1);
???????? subDate--;
?????? }while(calendar.after(calendar_1)&&calendar.before(calendar_2));
?????? conn.close();
%>
……
6.1.4 班主任用戶功能編碼
根據班主任用戶的詳細設計要求,設計班主任用戶操作頁面如圖6-5所示:
?
|
?
?
部分代碼:
……
<%
format=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
? String sp_time=format.format(cur_time);
? sql="update qingjia set class_teacher_status='"+qj_sp+"',class_teacher_restore='"+restore+"',class_teacher_sp_time='"+sp_time+"' where id='"+id+"'";
? conn.executeUpdate(sql);
? conn.close();
? response.sendRedirect("qingjia_manager.jsp");
?%>
……
6.1.5 院系領導用戶功能編碼
根據院系領導用戶詳細設計的需求,設計院系領導用戶操作頁面如圖6-6所示:
?
| ? | ||
| ? |
|
?
?
部分代碼:
select_stu.jsp
……
<%
?? request.setCharacterEncoding("GBK");
?? sql="select * from student_c_s_c where college_id='"+college_id+"' and";
?? String sql_2="";
?? stu_number=request.getParameter("stu_number");
?? stu_name=request.getParameter("stu_name");
?? if(stu_number.equals("")&&!stu_name.equals("")){
????? sql_2=sql+"? stu_name like '%"+stu_name+"%'";
?? }else if(!stu_number.equals("")&&stu_name.equals("")){
????????????? sql_2=sql+" stu_number like '%"+stu_number+"%'";
???????? }else{
???????????????? sql_2=sql+" stu_name like '%"+stu_name+"%' and stu_number like '%"+stu_number+"%'";
????????????? }
?%>
<html>
? <head>
??? <title>考勤統計首頁</title>
??? <link rel="stylesheet" href="../public/style.css">
? </head>
? <body class="ss">
? <a href="kq_tongji.jsp" class="a">全院考勤統計信息</a>
? <a href="kq_select.jsp" class="a">查詢</a>
? <a href="javascript:window.location.reload();" class="a">刷新</a>
? <a href="javascript:history.back();" class="a">返回</a>
? <hr></hr>
? <center>
??? <h3>查詢學生考勤統計信息</h3>
??? <form action="select_stu.jsp" method="post" οnsubmit="return formCheck(this)">
??? <table width="70%">
????? <tr>
???????? <td>學號:</td>
???????? <td><input type="text" name="stu_number" size="20"></td>
???????? <td>姓名:</td>
???????? <td><input type="text" name="stu_name" size="20"></td>
???????? <td><input type="submit" value="查詢"></td>
????? </tr>
??? </table>
??? </form>
??? <hr width="70%"></hr>
??? <table width="70%" border="1" cellspacing="0">
?????? <tr bgcolor="#0099FF">
????????? <td>學號</td>
????????? <td>姓名</td>
????????? <td>性別</td>
????????? <td>年級</td>
????????? <td>專業</td>
????????? <td>班級</td>
????????? <td><div align="center">考勤詳細信息</div></td>
????? </tr>
?????? <%
?????????? ResultSet rs_stu=null;
?????????? rs_stu=conn.executeQuery(sql_2);
?????????? if(rs_stu.next()){
????????????? do{
??????? %>
??????? <tr>
?????????? <td><%= rs_stu.getString("stu_number") %></td>
?????????? <td><%= rs_stu.getString("stu_name") %></td>
?????????? <td><%= rs_stu.getString("stu_sex") %></td>
?????????? <td><%= rs_stu.getString("grade_name") %> 級</td>
?????????? <td><%= rs_stu.getString("sp_name") %></td>
?????????? <td><%= rs_stu.getString("class_number_name") %> 班</td>
?????????? <td><div align="center"><a href="stu_kq_info.jsp?stu_number=<%= rs_stu.getString("stu_number") %>">查看</a></div></td>
??????? </tr>
??????? <%
??????????????? }while(rs_stu.next());
?????????? }else{
???????? %>
??????? <tr>
?????????? <td colspan="7"><center>沒有此學生記錄!</center></td>
??????? </tr>
??????? <%
??????????? }
???????? %>
……
6.2 數據庫連接池編碼
6.2.1數據庫連接池程序編碼
/*? SQL Server 2000 連接池對數據庫的所有操作? */
package SQLBean;
import javax.naming.*;
import javax.sql.*;
import java.sql.*;
public class DBConn{
????????? public Context ctx=null;
????????? public Connection cnn=null;
????????? Statement stmt=null;
????????? ResultSet rs=null;
????????? DataSource ds=null;
public DBConn(){??????????????? //構造函數,查找連接池資源
???????????? try{
??????????????? ctx=new InitialContext();
??????????????? if(ctx==null)
??????????????? ? throw new Exception("not environment");
????????? ?ds=(DataSource)ctx.lookup("java:comp/env/jdbc/kaoqin");
???????????? ??? if(ds==null)
???????????? ????? throw new Exception("not find dataBase");
???????????? }catch(Exception e){
??????????????? System.err.println(e.getMessage());
???????????? }
????????? }????
//執行所有的查尋操作
????????? public ResultSet executeQuery(String sql){
???????????? try{
????????? cnn=ds.getConnection();?????? stmt=cnn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
??????????? rs=stmt.executeQuery(sql);??????
???????????? }catch(SQLException e){
??????????????? System.err.println(e.getMessage());
???????????? }
???????????? return rs;
????????? }
?????? //執行所有的刪除,修改、添加操作
????????? public int executeUpdate(String sql){??????
????????? int result=0;
???????????? try{
? ??????????? cnn=ds.getConnection();????????? stmt=cnn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
??????????? result=stmt.executeUpdate(sql);???????
???????????? }catch(SQLException e){
??????????????? System.err.println(e.getMessage());
???????????? }
???????????? return result;
????????? }
//關閉與數據庫的連接
????????? public void close() throws SQLException{?????????? ?? ???try{
????????? if(rs!=null){
????????? ?? rs.close();
????????? }
????????? if(stmt!=null){
????????? ?? stmt.close();
????????? }
????????? if(cnn!=null){
????????? ?? stmt.close();
????????? }
????????? if(ctx!=null){
????????? ?? ctx.close();
????????? }
????????? ?? }catch(Exception e){
????????? ?? ?? ??System.err.println(e.getMessage());
????????? ?? }
????????? }
}
6.2.2 連接池配置文件
server.xml配置文件:(注:針對Tomcat 5.5)
?? <Resource
??? name="jdbc/kaoqin"
??? type="javax.sql.DataSource"
??? removeAbandoned="true"
??? removeAbandonedTimeout="15"
??? maxActive="200"
??? maxIdle="40"
??? maxWait="5000"
??? username="sa"
??? password="8482134"
??? driverClassName="net.sourceforge.jtds.jdbc.Driver"
??? url="jdbc:jtds:sqlserver://127.0.0.1:1433/kaoqin"
??? />
kaoqin.xml配置文件 (注:針對Tomcat 5.5)
<?xml version="1.0" encoding="UTF-8"?>
<Context>
?? <Resource
??? name="jdbc/kaoqin"
??? type="javax.sql.DataSource"
??? removeAbandoned="true"
??? removeAbandonedTimeout="15"
??? maxActive="200"
??? maxIdle="40"
??? maxWait="5000"
??? username="sa"
??? password="8482134"
??? driverClassName="net.sourceforge.jtds.jdbc.Driver"
??? url="jdbc:jtds:sqlserver://127.0.0.1:1433/kaoqin"
??? />
</Context>
?
第7章? 軟件測試
7.1 引言
在開發軟件的過程中,人們使用了許多保證軟件質量的方法分析、設計和實現軟件,但難免還會在工作中犯錯誤。這樣,在軟件產品中就會隱藏許多錯誤和缺陷,尤其是對規模大、復雜性高的軟件更是如此。所以,必須進行認真、計劃、徹底的軟件測試。
7.2 測試方案
7.2.1 黑盒測試
黑盒測試,又稱為功能測試。對于軟件測試而言,黑盒測試把程序看成一個黑盒子,完全不考慮程序的內部結構和處理過程。也就是說,黑盒測試是在程序接口進行的測試,它只檢查程序功能是否能按照規格說明書的規定正常使用,程序是否能適當地接收輸入數據產生正確的輸出信息,并且保持外部信息(如數據庫或文件)的完整性。該測試方案的設計技術主要有:等價劃分、邊界值分析以及錯誤推測法等。
7.2.2 白盒測試
白盒測試的前提是可以把程序看成裝在一個透明的白盒子里,也就是完全了解程序的結構和處理過程。這種方法按照程序內部的邏輯測試程序,檢驗程序中的每條通路是否能按預定要求正確工作。故白盒測試又被稱為是結構測試。該測試方案的設計技術主要有邏輯覆蓋法等。
7.2.3 其它測試方案
除了以上兩種測試方案外,還有其它的測試方案。包含所有可能情況的測試稱為窮盡測試。對于實際程序而言,窮盡測試通常是不可能做到的。因為不可能對每一種可能的情況都進行測試。
7.2.4 本系統所采用測試方案
基于以上測試方法,本人選取的是模塊測試和系統測試,模塊測試部分由本人程序設計過程中自主完成,系統測試部分由同學模擬各種用戶登錄代為完成。
7.3 測試過程
7.3.1 用戶登陸測試
用戶登陸測試是測試系統訪問的安全性,以及各個頁面的設計的安全性,測試方案如下(表6-1)所示:
表 6-1
| 用戶類型 | 用戶名 | 密碼 | 空密碼 | 錯誤密碼/用戶名 | 錯誤類型 |
| 學生 | 2002162122 | 2002162122 | 否 | 否 | 否 |
| 任課老師 | 041002 | 123456 | 否 | 否 | 否 |
| 班主任 | 048001 | 123456 | 否 | 否 | 否 |
| 院系領導 | xinxi_02 | 123456 | 否 | 否 | 否 |
| 學校領導 | school | 123456 | 否 | 否 | 否 |
說明:上表中的“否”表示拒絕訪問,沒有通過系統的身份驗證。“是” 表示可以訪問系統。
通過上表反復測試黑盒測試可知,系統用戶在登陸安全方面不存在問題,用戶必須選擇正確的類型,使用正確的用戶名、密碼方能使用此系統。
7.3.2 頁面使用安全測試
此測試過程主要是測試系統各個頁面的安全性,即在用戶沒有登錄的情況直接在瀏覽器地址中輸入要打開的用戶頁面,或者用戶以正確的用戶名和密碼進入系統后,直接在瀏覽器地址中輸入別的用戶的頁面,測試各頁面是否不需要用戶登錄就可使用,或者是否可以繞過身份驗證。
第一步:在用戶沒登陸系統的情況下,直接在瀏覽器中輸入http://127.0.0.1/kaoqin/student/student.jsp 此地址是學生用戶首頁的完全地址,看是否能打開操作。測試結果:提示用戶還沒登陸的錯誤信息。依次測試別的頁面,別的用戶,測試結果都是:提示用戶還沒登陸的錯誤信息。
第二步:以學生正確的用戶我和密碼進入學生系統后,在瀏覽器中輸入任課老師首頁地址:http://127.0.0.1/kaoqin/teacher/teacher.jsp 看是否能繞過身份驗證,打開別的用戶的頁面。測試結果:提示沒有權限的錯誤信息。用同樣的方法測試別的頁面,別的用戶都得到了同樣的測試結果:提示沒有權限的錯誤信息。
測試結果:通過以上測試可知,系統各個頁都有很好的安全性,每個頁面都不允許用戶在沒有登陸的前提下訪問,用戶在登陸后,也不充許用戶訪問別的用戶類型的頁面,即不能繞過身份驗證。
7.3.3學生用戶測試
- 請假系統測試
請假系統是學生用戶的核心功能,由于涉及的用戶比較多,此部分的測試是在幾個同學的配合下完成,主要完成以下幾個測試:
二、修改密碼測試
7.3.4任課老師用戶測試
一、考勤管理測試
7.3.5班主任用戶測試
1.班級信息測試
測試一個班主任是否可以同時帶多個班級、每個學期帶不同的班。測試結果:班主任能同時帶多個班級,每學期可帶不同的班級。
2.考勤信息測試:
測試班主任是否可以查看本班學生本學期考勤統計信息及詳細信息。測試結果:班主任能查看本班學生本學期考勤統計信息及詳細信息。
7.3.6院系領導/學校領導用戶測試
一、考勤信息測試
?
總? 結
通過幾個月的努力,高校學生考勤管理系統中的兩大功能模塊:請假系統和考勤系統在指導老師的全心指導下,在同學的積極配合與幫助下,基本功能順利完成。在數據庫的開發方面,我學到了不少關于JSP和SQL Server 2000的知識。開發時遇到了許多的困難,但是通過自己的努力,還有老師同學們的幫助,最終還是迎刃而解了。
這次畢業設計完全是按照軟件工程學的方法來進行設計和開發的。在開發過程中,認真調查分析了用戶的需求,及時準備了詳細的文檔資料,這讓我在開發過程中少走了許多彎路。本次設計開發的系統較為龐大,涉及的用戶較多,數據庫設計比較復雜,使我深刻地體會到軟件開發是一項集體項目,單靠一個人就想解決所有的問題是不太實際的。在本次畢業設計中,我和同學共同實現了高校學生考勤管理系統的全部功能,很好的鍛煉了我的團隊協作意識,這對我以后的學習、工作有很大的幫助。
同時,在這次設計中,我也發現了自己的很多不足。首先,對JSP的掌握還不是很全面,對于數據庫管理系統的操作運用也不夠熟練,以至于在系統開發過程中經常碰到一些疑難問題不能快速的解決。其次,就是在準備系統設計文檔時,沒有反復推敲、驗證,以至于在開發過程中出現幾次由于數據庫設計不合理,修改數據庫,而幾乎修改所有程序代碼的情況。再者,是對整個軟件開發的把握能力有待于進一步提高,以及對網頁設計的諸多方面知識也待進一步學習,這些都是我今后應該注意和提高的。
?
?
參考文獻
參考的資料有以下:
[1] 肖金秀 JSP程序設計教程 北京:冶金工業出版社
[2] 孫曉龍 JSP動態網站技術入門與提高 北京:人民郵電出版社
[3] 楊學瑜 JSP入門與提高 北京:清華大學出版社
[4] 魯曉東 JSP軟件工程案例精解 北京:電子工業出版社
[5] 印旻 Java 語言與面向對象程序設計 北京:清華大學出版社
[6] 皮德常 Java 2簡明教程 北京:清華大學出版社
[7] 薩師煊 王珊編著,《數據庫系統概論》,高等教育出版社
[8] 張海藩 編著 《軟件工程導論》,清華大學出版社
[9] 賽奎春 JSP工程應用與項目實踐 北京:機械工業出版社
[10] 汪孝宜 JSP數據庫開發實例精粹 北京:電子工業出版社
[11] 魏茂軍 JSP案例開發 北京:中國水利水電出版社
[12] 黃明 JSP信息系統設計與開發實例 北京:機械工業出版社
[13] 屈輝立 JSP網站編程教程 北京:北京希望電子出版社
[14] 孫衛琴 Tomcat與Java Web開發技術詳解 北京:電子工業出版社
[15] 張桂元 Struts開發入門與項日實踐 北京:人民郵電出版社
參考網站:
一、http://java.sun.com???? java官方網站
二、http://www.apache.org? Tomcat官方網站
?
致? 謝
在這段日子里,指導教師黃華,以及身邊的同學給了我很多的幫助及耐心的教導。在此,對所有給我支持與幫助的老師與同學衷心的道一聲“謝謝”!如果沒有你們的幫助,我的課題肯定不能如此順利迅速的完成。
?
附? 錄
附錄一:文獻資料
原文
J2EE WEB應用架構分析
1、架構概述
J2EE體系包括java server pages(JSP) ,java SERVLET, enterprise bean,WEB service等技術。這些技術的出現給電子商務時代的WEB應用程序的開發提供了一個非常有競爭力的選擇。怎樣把這些技術組合起來形成一個適應項目需要的穩定架構是項目開發過程中一個非常重要的步驟。完成這個步驟可以形成一個主要里程碑基線。形成這個基線有很多好處:
各種因數初步確定:為了形成架構基線,架構設計師要對平臺(體系)中的技術進行篩選,各種利弊的權衡。往往架構設計師在這個過程中要閱讀大量的技術資料,聽取項目組成員的建議,考慮領域專家的需求,考慮贊助商成本(包括開發成本和運行維護成本)限額。一旦架構設計經過評審,這些因數初步地就有了在整個項目過程中的對項目起多大作用的定位。
定向技術培訓:一旦架構師設計的架構得到了批準形成了基線,項目開發和運行所采用的技術基本確定下來了。眾多的項目經理都會對預備項目組成員的技術功底感到擔心;他們需要培訓部門提供培訓,但就架構師面對的技術海洋,項目經理根本就提不出明確的技術培訓需求。怎不能夠對體系中所有技術都進行培訓吧!有了架構里程碑基線,項目經理能確定這個項目開發會采用什么技術,這是提出培訓需求應該是最精確的。不過在實際項目開發中,技術培訓可以在基線確定之前與架構設計并發進行。
角色分工:有了一個好的架構藍圖,我們就能準確劃分工作。如網頁設計,JSP 標簽處理類設計,SERVLET 設計,session bean設計,還有各種實現。這些任務在架構藍圖上都可以清晰地標出位置,使得項目組成員能很好地定位自己的任務。一個好的架構藍圖同時也能規范化任務,能很好地把任務劃分為幾類,在同一類中的任務的工作量和性質相同或相似。這樣工作量估計起來有一個非常好的基礎。
運行維護:前面說過各個任務在架構圖上都有比較好的定位。任何人能借助它很快地熟悉整個項目的運行情況,錯誤出現時能比較快速地定位錯誤點。另外,有了清晰的架構圖,項目版本管理也有很好的版本樹軀干。
擴展性:架構猶如一顆參天大樹的軀干,只要軀干根系牢,樹干粗,長一些旁支,加一些樹葉輕而易舉無疑。同樣,有一個穩定的經得起考驗的架構,增加一兩個業務組件是非常快速和容易的。
大家都知道這些好處,一心想形成一個這樣的J2EE應用程序架構(就像在windows平臺中的MFC)。在這個路程中經歷了兩個大的階段:
模型1
模型1其實不是一個什么穩定架構,甚至談不上形成了架構。模型1的基礎是JSP文件。它從HTTP的請求中提取參數,調用相應的業務邏輯,處理HTTP會話,最后生成HTTP文檔。一系列這樣的JSP文件形成一個完整的模型1應用,當然可能會有其他輔助類或文件。早期的ASP 和 PHP 技術就屬于這個情況。
總的看來,這個模型的好處是簡單,但是它把業務邏輯和表現混在一塊,對大應用來說,這個缺點是令人容忍不了的。
模型2
在經過一番實踐,并廣泛借鑒和總結經驗教訓之后,J2EE應用程序終于迎來了MVC(模型-視圖-控制)模式。MVC模式并不是J2EE行業人士標新立異的,所以前面我談到廣發借鑒。MVC的核心就是做到三層甚至多層的松散耦合。這對基于組件的,所覆蓋的技術不斷膨脹的J2EE體系來說真是福音和救星。
它在瀏覽器(本文對客戶代理都稱瀏覽器)和JSP或SERVLET之間插入一個控制組件。這個控制組件集中了處理瀏覽器發過來的HTTP請求的分發邏輯,也就是說,它會根據HTTP請求的URL,輸入參數,和目前應用的內部狀態,把請求分發給相應的WEB 層的JSP 或SERVLET。
另外它也負責選擇下一個視圖(在J2EE中,JSP,SERVLET會生成回給瀏覽器的html從而形成視圖)。集中的控制組件也有利于安全驗證,日志紀錄,有時也封裝請求數據給下面的WEB tier層。這一套邏輯的實現形成了一個像MFC的應用框架。
2、候選方案
目前,實現模型2的框架也在不斷的涌現,下面列出比較有名的框架。
2.1、Apache Struts
Struts是一個免費的開源的WEB層的應用框架,apache軟件基金致力于struts的開發。Struts具是高可配置的性,和有一個不斷增長的特性列表。一個前端控制組件,一系列動作類,動作映射,處理XML的實用工具類,服務器端java bean 的自動填充,支持驗證的WEB 表單,國際化支持,生成HTML,實現表現邏輯和模版組成了struts的靈魂。
模型:模型以一個或幾個java bean的形式存在。這些bean分為三種:Form beans(表單Beans),它保存了HTTP post請求傳來的數據,在Struts里,所有的Form beans都是 ActionFrom 類的子類。業務邏輯beans,專門用來處理業務邏輯。系統狀態beans,它保存了跨越多個HTTP 請求的單個客戶的會話信息,還有系統狀態。
視圖:控制組件續傳HTTP請求給實現了視圖的JSP文件。JSP能訪問beans 并生成結果文檔反饋到客戶。Struts提供JSP 標簽庫: Html,Bean,Logic,Template等來達到這個目的,并有利于分開表現邏輯和程序邏輯。
2.2、JATO
JATO應用程序框架是iPlanet 應用程序框架的舊名。它是一個成熟的、強大的,基于J2EE標準的面向于開發WEB應用程序的應用框架。結合了顯示字段、應用程序事件、組件層次和以頁面為中心的開發方法、以及MVC和服務到工作者service-to-workers的設計模式等概念。
JATO可適用于中、大、超大規模的WEB應用。但是它也不是一個企業層的應用框架,也就是說它不會直接提供創建EJB, WEB services等企業層組件的方法,但用它可以構造出訪問企業層組件的客戶應用。
這個框架功能主要有三部分組成:iPlanet應用框架核心;iPlanet應用框架組件;iPlanet應用框架擴展。
譯文
Analysis of J2EE WEB application? construction
1、the? outline of the construction
J2EE system includes many technologies such as ?java server pages (JSP), java SERVLET, enterprise bean, WEB service and so on. These technologies appeared have provided an extremely competitive choice to the development of WEB application of electronic commerce . How these technologies are combined to form the stable construction which an adaptabl project needs is an importable step in the project development. Completing this step may form a main milestone baseline. It is a advantage to form this baseline.
Many factors determine it initially.In order to form the construction baseline, the construction designer must choose the center technology in the platform and measure each kind of advantages. Often the construction designer has to check the massive technical datas in this process, listen to the suggestion of members in the component project, consider the domain expert's demand and consider the sponsor’s cost quota (including development cost and movement maintenance cost). Once the construction designer appraises, these factors will initially be localizated to the project playing the major role in the entire project process.
Directional technology training: Once the construction of the construction designer is approved to form the baseline, the technology which the project development and the movement use ?has basically determined. Multitudinous project managers may worry about basic skills of? the component members’ prepared in the project.They need to be trained in ?the department? providing training.But to the technical sea which the construction designer faces on, project manager cannot propose the explicit technical training demand. It is impossible to carry on training to all technologies in the system ! Having the construction milestone baseline, project manager is able to determine what this project development could use any technology.At the time proposing the training demand should be most precise. But in the actual project development, technical training may be carried on before the baseline determined concurrently.
Division of labor: Having ?a good construction blueprint, we can accurately divide the work such as? homepage design, JSP label processing class design, SERVLET design, session bean design and? many kinds of realizations. These all duties may be located ?clearly? on the construction blueprint, enabling the project component member to locate own duty well. At the same time a good construction blueprint can also standardize the duty,? divide well the duty into several kinds in the same kind of which work load and the nature is identical or similar.Such work load estimated has an extremely good foundation.
Movement maintenance: each duty has? quite good localization in a composition. Anyone can is familiar with the movement in the entire project with the help of it quickly and locate? fast where wrong is when the mistake appears. Moreover, having ?the clear frame composition, the project edition management also has? good edition tree torso.
Extension: The construction? likes the torso of a towering big tree.so long as torso root system jail, bough thick, the long some collateral branches, add some leaves to be easy without doubt. Similarly, having stable construction standing ?the test, it is extremely fast and easy to increase 12 service modules.
Everybody knows these advantage and wants to? form a such J2EE application construction as it ?(like MFC in windows platform). It has experienced two big stages in this process:
model 1
Actually model 1 is not? stable? construction, even? far from the construction formed. The foundation of model 1 is? JSP document. It withdraws the parameter from the HTTP request, transfers the corresponding service logic, processes the HTTP conversation and finally produces the HTTP documents. A series of such JSP document forms a complete model 1 application, certainly possibly having other assistances kind or the document. The earlier ASP and the PHP technology belongs to this situation.
To the summary, the advantage of this model is simple, but it mixes the service logic with the performance in the same place. To the big application, this shortcoming is able to be tolerated.
model 2
Through practice, after summarying lesson, the J2EE application has finally welcomed the MVC (model - view pneumatic-control) pattern. The MVC pattern is not something new and different which the J2EE professioner proposes.Therefore in the front I talked about profiting widely. The core of the MVC is to achieve three or even multi-layered loose couplings. To the J2EE system which has ?to based on the module and which covered the technology inflates unceasingly,it really is the gospel and the liberator.
It inserts a control module between in the browser ( in this article all the customer proxys are called browser) and JSP or SERVLET. This control module concentrates HTTP request distribution logic which is sent by the browser processed.In other words, it could ?input parameter according to HTTP request URL,with the present application internal condition, giving the request to distribute the JSP or SERVLET of the corresponding WEB level.
Moreover, it also is responsible for? choicing next view (in J2EE, JSP and SERVLET can produce html for browser to form the view). The centralism control module is also advantageous to the safety certification, the diary record and sometimes also seals the request data to give the following WEB tier level. This set of logical realization forms one application frame like MFC.
2、candidate plan
At present, the realization frames of the model 2 also emerge unceasingly. list some famous frames as follows.
2.1、Apache Struts
Struts is a free and open application frame of the source WEB level.And the apache software fund devotes to the development of the struts. Struts has the nature which is highly disposed and ?has the characteristic tabulation which grows unceasingly. ?The front controlling? module, a series of movements class, the movement mapping, the practical tool class processing XML, the automatic packing of the server carries java bean, the WEB form supporting confirmation , the international support, the produced HTML , realization performance logic and the pattern plate has composed the soul of
the struts.
Model: Model exists as one or? several java beans. These beans are divided into three kinds. Form beans (form Beans), it has preserved the data which the HTTP post requests to transmit. In Struts, all of the Form beans are? the subclass of the ActionFrom class. Service logic beans is to be used to process the service logic specially. System mode beans preserve the conversation information of single customer who surmountes many HTTP requests and ?the system mode.
View: Continue to pass the HTTP by the Controlled module request?? realizes the JSP document of view. JSP can visit beans and produce the result documents to feed back to the customer. Struts provides the JSP label storehouse to achieve this goal such as Html, Bean, Logic, Template and so on. And ?it is advantageous in separating the performance logic and procedure logic.
2.2、JATO
The JATO application frame is ?old name of the iPlanet application frame. It is one mature, formidable application frame which faces to? develope WEB application based on the J2EE standard. It unified the demonstration field, the application event, the module level ,the methods of exploitation taking the page as the center, as well as MVC and designing pattern with service-to-workers concepts and so on.
JATO is suitable ?for ?big, ultra large-scale WEB application. But it is not application frame of the enterprise level.In other words, it cannot provide directly the methods of Enterprise level module such as founding EJB and WEB services. But it may struct the customer application which can visit the enterprise level module.
The function of this frame is mainly composed of three parts:the core of iPlanet application frame; the module of iPlanet application frame; the expansion of iPlanet application frame.
附錄二、系統部署及使用手冊
開發工具的安裝與配置
本系統是跨平臺的,可以在Windows、Linux、Unix等所有操作系統下,不需要做任何修改就能運行,由于Windows平臺運用最為廣泛,在這里只介紹系統在Windows平臺下的部署,別的平臺部署自己查閱相關資料。本系統采用B/S結構,因此客戶端幾乎不需要做任何安裝,以下主要介紹服務器端的部署。
- JDK的安裝及配置
1)簡介
JDK(Java Development Kit )是一切java應用程序的基礎,可以說,所有的java應用程序是構建在這個之上的。它是一組API,也可以說是一些java Class。目前已經正式發布的最新版本是JDK1.5。目前大多數都是在MS系統下,所以,在這里以在win2000下安裝為例進行介紹。
2)下載與安裝
下載地址為JAVA官方站點:http://java.sun.com 。 Windows下,直接運行.exe文件,安裝到一個目錄,我這里用C:\ jdk1.5.0_06為例子。
3)配置
桌面上選擇“我的電腦”(右鍵) 選擇“高級”---> “環境變量”-->“用戶變量”-->“新建”在變量名中輸入:CLASSPATH,變量值中輸入:“.;C:\ jdk1.5.0_06\LIB\dt.JAR;C:\ jdk1.5.0_06\LIB\TOOLS.JAR;”然后確定;注意:“.;”不能少,代表當前路徑。
桌面上選擇“我的電腦”(右鍵) 選擇“高級”---> “環境變量”--->“系統變量”,選擇path選項,點“編輯” 在變量值中增加“C:\jdk1.5.0_06\bin;”。
配置完了,要重新啟動計算機后,環境變量才能有效。
- Tomcat的安裝及配置
1)簡介
自從JSP發布之后,推出了各式各樣的JSP引擎。Apache Group在完成GNUJSP1.0的開發以后,開始考慮在SUN的JSWDK基礎上開發一個可以直接提供Web服務的JSP服務器,當然同時也支持Servlet。Tomcat是完全免費的軟件,任何人都可以從互聯網上自由地下載。目前最新版本是 tomcat-5.5.16。
2)下載與安裝
下載地址是官方網站http://jakarta.apache.org 。用戶可選擇下載原代碼或已經編譯好的壓縮包。
在安裝Tomcat前,你的Win2000下應該已經安裝了JDK,并且你應該已經能大致了解JDK、Tomcat在系統中的地位和相互關系。如果你還沒有安裝好JDK,你可以參閱JDK的安裝及配置。Tomcat不需要安裝,下載解壓后就可直接使用,且可在各種平臺下使用。
3)配置
在桌面上選擇“我的電腦”,右鍵點出菜單,選擇屬性,彈出對話框“系統特性”,選擇“高級”選項頁,然后點“環境變量”,就可以編輯系統的環境變量。
在用戶變量中選擇“新建”選項,變量名為JAVA_HOME,值為:“C:\jdk1.5.0_06”,同樣新建另外一個變量名為:TOMCAT_HOME,變量值為:“C:\Tomcat 5.5”。
接下來就可以執行startup.bat。測試一下Tomcat是否運行正常。當Tomcat能正常啟動后,打開瀏覽器,在瀏覽器中輸入“http://localhost:8080”,若能顯示Tomcat的歡迎首頁,Tomcat已經成功安裝好了。
三、SQL Server 2000的安裝及配置
1)簡介
SQL Server 2000是Microsoft 公司開發出來的大型關系數據系統,其可靠性、高全性等卓越的性能得到用戶一致的好評。
2)安裝
將安裝光盤放入光驅就可根據提示自動安裝,這里不再重述。
3)配置
安裝好SQL Server 2000后,幾乎不需要做什么配置,但有一個非常要注意的地方是,檢查一下默認的端口1433是否打開了,若沒打開,應用程序將無法連接到數據庫。檢驗方法:支命令提示下運行:netstat –an 檢查端口是否打開。若沒打開,就要安裝SP3以上的補丁。
系統部署
高校學生考勤管理系統用JSP+SQL Server 2000設計,數據庫連接使用當前流行的連接池來實現,在部署系統時,請按以下步驟來完成。注意:前提是您以經正確安裝好了JDK、Tomcat、SQL Server 2000,若還沒安裝好,請參考附錄一。
- 將打包文件kaoqin.war 放到Tomact安裝目錄下的webapps子目錄中,在您重啟Tomcat的時候,Tomcat會自動解壓。
- 在SQL Server 2000中新名kaoqin的數據庫,將數據庫備份kaoqin.bak還原到kaoqin數據庫,并將sa用戶的密碼設為:8482134。
- 將jtds-1.2.jar文件考%Tomcat_home%\common\lib目錄下。
- 將server.xml文件覆蓋%Tomcat_home%\conf目錄下的server.xml文件。
- 將kaoqin.xml文件拷貝到%Tomcat_home%\conf\Catalina\localhost目錄下。
- 重新啟動Tomact,在瀏覽器中輸入http://localhost:8080/kaoqin
用戶操作手冊
一、學生操作手冊
1.在線請假
學生“首頁”——“請假系統”——“在線請假” 進入請假申請操作頁面,填寫好請假開始時間、結束時間、請假原因后,點擊“提交”按鈕就完成了請假申請。隨后您可以在“等待審批的請假”中看到請假審批的進展情況,同時在“成功的請假記錄”和“失敗的請假記錄”中看到請假歷史記錄。注意:只請假一天的話,開始時間與結束時間填寫同一天,依此類推。
2.查看考勤信息
學生“首頁”——“考勤信息”進入當前學年本人所有課程的考勤統計信息,同時可以查看有關課程的詳細信息,學生在“歷年考勤信息”中可以查看歷年的考勤信息。
二、班主任操作手冊
1.審批學生請假
班主任“首頁”——“請假系統”——“審批請假” 若有本班學生請假,則列出了相關鏈接,點擊相關“審批”鏈接,進入審批學生請假頁面,此頁面列出了有關學生請假的詳細信息,班主任認真審批后,選擇“同意”或“不同意”來審批學生請假。
2.查看考勤信息
班主任“首頁”——“考勤信息”頁面列出所帶班級的信息,點擊相關“查看”鏈接就可相關班級所有課程學生考勤的統計信息及詳細信息。
三、任課老師操作手冊
1.發布學生上課出勤信息
任課老師“首頁”——“考勤管理”頁面列出了本學年所教班級以及所教課程的相關信息,點擊相關“管理“鏈接”就進入相關的考勤管理頁面,頁面自動提示到當前日期為止,還沒有發布的出勤信息的鏈接。進入相關鏈接就可以發布學生上課出勤信息。
2.查看/修改學生出勤信息
任課老師:“首頁”——“考勤信息”頁面中列出了所教班級所教課程的基本相關信息,點擊相關“查看”鏈接就可看到有關的學生出勤統計信息及詳細信息,在個人的出勤詳細中,可以適當的修改,如刪除某條學生出勤記錄。
四、院系領導操作手冊
1.審批學生請假
院系領導“首頁”——“請假系統”——“審批請假” 若有本班學生請假,則列出了相關鏈接,點擊相關“審批”鏈接,進入審批學生請假頁面,此頁面列出了有關學生請假的詳細信息,班主任認真審批后,選擇“同意”或“不同意”來審批學生請假。
2.查看班級、學生上課出勤信息
院系領導“首頁”——“考勤統計”頁面,在“全院考勤統計”頁面中可以分班級查看學生上課出勤的統計信息及詳細信息。在“查詢”頁面中,可以根據“學號”或“姓名”兩者或兩都之一對學生上課出勤信息進行詳細查詢。
3.查看本院系相關信息
在“院系信息“、”班主任信息“、”教師信息“、”班主任安排“中可以查看本院系的一些相關信息。
五、學校領導操作手冊
1.查看全校班級、學生上課出勤信息
學校領導“首頁”——“考勤統計”頁面,在“全校考勤統計”頁面中可以分班級查看學生上課出勤的統計信息及詳細信息。在“查詢”頁面中,可以根據“學號”或“姓名”兩者或兩都之一對學生上課出勤信息進行詳細查詢。
2.查看本校相關信息
在“學校信息”、“院系信息“、”班主任信息“、”教師信息“、”班主任安排“、“全校課表”中可以查看本校的一些相關信息。
總結
以上是生活随笔為你收集整理的基于jsp(java)高校学生考勤管理系统设计与实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于属性的访问控制(ABAC)
- 下一篇: TensorFlow SSE/AVX/