畢業(yè)設(shè)計(論文)基于Struts的學(xué)生管理系統(tǒng)的設(shè)計與實現(xiàn)



《畢業(yè)設(shè)計(論文)基于Struts的學(xué)生管理系統(tǒng)的設(shè)計與實現(xiàn)》由會員分享,可在線閱讀,更多相關(guān)《畢業(yè)設(shè)計(論文)基于Struts的學(xué)生管理系統(tǒng)的設(shè)計與實現(xiàn)(45頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、IJ JI IA AN NG GX XI I N NO OR RM MA AL L U UN NI IV VE ER RS SI IT TY Y學(xué)學(xué) 士士 學(xué)學(xué) 位位 論論 文文THESIS OF BACHELOR(20062010 年)年)基于基于Struts的的學(xué)生管理系統(tǒng)的學(xué)生管理系統(tǒng)的設(shè)計與實現(xiàn)設(shè)計與實現(xiàn)Design and Implementation of Student Management System Based on Struts 指指 導(dǎo)導(dǎo) 老老 師師 : 姓姓 名名 : 學(xué)學(xué) 號號 : 0667110111 學(xué)學(xué) 院院 : 軟軟 件件 學(xué)學(xué) 院院專專 業(yè)業(yè) : 軟軟 件
2、件 工工 程程完完 成成 時時 間間 : 2010 年年 4 月月 摘要II摘摘 要要學(xué)校的學(xué)生管理是教學(xué)管理的一個重要內(nèi)容, 傳統(tǒng)的管理方法、手段以及工作效率已不能適應(yīng)新的發(fā)展需要,無法很好地完成學(xué)生管理工作。學(xué)生管理系統(tǒng)的應(yīng)用提高了學(xué)校學(xué)生管理的效率。本學(xué)生管理系統(tǒng)是基于 Struts 框架實現(xiàn)的系統(tǒng),后臺數(shù)據(jù)庫采用的是MySQL。系統(tǒng)有三個用戶即管理員、教師和學(xué)生。管理員的功能有學(xué)生管理模塊、教師管理模塊、課程管理模塊和班級管理模塊,這些模塊中,除了基本的刪除、添加、查詢外,還具有更加詳細的查詢內(nèi)容。教師可以選擇上課的學(xué)生并為學(xué)生錄入成績,學(xué)生可以選課并維護自己的個人信息。本文首先簡單介
3、紹了系統(tǒng)的開發(fā)背景、使用的相關(guān)技術(shù)然后詳細闡述了系統(tǒng)的設(shè)計與實現(xiàn)過程。關(guān)鍵詞關(guān)鍵詞:學(xué)生管理;Struts;JSP;MySQLAbstractIIIAbstractAbstractThe student management of the school is an important content in the teaching management.Traditional education management the method, means and work efficiencies have already cant adapt the new development deman
4、d, cant complete the teaching management work nicely. Student Management System to improve the efficiency of the management school students.The student management system is Implementation based on the frame of Sturts,use the MySQL database.there are three kinds of the user: Administration、Teacher an
5、d Student, the function of the administration are student management modules,teacher management modules ,course management modules and class management modules.Basic functions such as delete, add and query are realized in these modules,and more detailed query contents are added in the modules.Teache
6、r could choose the student and give the score of the student.Student could enroll in and search personal information,the function relatively falls well-found, can satisfy the request between student and teacher basically. This article first introduces the system development background, the use of re
7、lated technologies and then detail the system design and implementation.Key words:Student management;Struts;JSP;MySQL 目錄IV目目 錄錄第 1 章 緒論.11.1 系統(tǒng)的開發(fā)背景.11.2 系統(tǒng)開發(fā)的目標.11.3 本系統(tǒng)的內(nèi)容.1第 2 章 系統(tǒng)相關(guān)技術(shù)概述.32.1 JSP 技術(shù)介紹.32.1.1 JSP 簡介.32.1.2 JSP 的優(yōu)缺點.42.2 Struts 介紹 .42.2.1 MVC 模式 .42.2.2 Struts 框架.52.2.3 Struts 標簽庫.
8、62.3 JDBC 介紹.82.4 MySQL Server 簡介.9第 3 章 系統(tǒng)分析與設(shè)計.103.1 系統(tǒng)業(yè)務(wù)流程圖.103.2 數(shù)據(jù)流圖.103. 3 系統(tǒng)用例分析.123.3.1 前臺用例圖123.3.2 后臺用例圖133.4 系統(tǒng)數(shù)據(jù)庫設(shè)計.143.4.1 數(shù)據(jù)庫設(shè)計原則.143.4.2 數(shù)據(jù)庫概念設(shè)計.153.4.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計16第 4 章 系統(tǒng)關(guān)鍵技術(shù)應(yīng)用.19目錄V4.1 系統(tǒng)的架構(gòu)設(shè)計.194.2 Struts 框架在系統(tǒng)中的應(yīng)用 .204.1.1 Struts 一般開發(fā)流程.204.1.2 系統(tǒng)中各類的實現(xiàn).204.1.3 系統(tǒng) Struts 的配置.21第
9、5 章 系統(tǒng)的實現(xiàn).235.1 系統(tǒng)包結(jié)構(gòu).235. 2 用戶登陸.245. 3 后臺管理登錄功能實現(xiàn).255. 4 管理員功能實現(xiàn).285. 5 教師功能實現(xiàn).325. 6 學(xué)生功能模塊實現(xiàn).345.7 系統(tǒng)分頁的實現(xiàn).35第 6 章 總結(jié).38參考文獻.39致謝.40第 1 章 緒論1第第 1 章章 緒論緒論1.1 系統(tǒng)的開發(fā)背景隨著互聯(lián)網(wǎng)的發(fā)展,利用 INTERNET 技術(shù)來實現(xiàn)“無紙辦公”這個概念已經(jīng)深入人心,如何利用現(xiàn)有的資源,來更好地服務(wù)于學(xué)校的教學(xué),服務(wù)于學(xué)校的管理工作,是擺在我們面前的一個共同的命題。就目前而言,學(xué)校的學(xué)生管理方式還停留在手工操作基礎(chǔ)上,每個學(xué)期和學(xué)年,教師需要
10、花費大量的時間來錄入學(xué)生成績,文件檔案也是使用傳統(tǒng)人工的方式,管理人員需要花費較多的時間來進行管理,例如對學(xué)校的學(xué)生、教師、班級等的管理。這種傳統(tǒng)人工的管理方式存在著許多缺點:效率低、保密性差,另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。學(xué)生管理系統(tǒng)是一個教育單位不可缺少的部分,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要,所以學(xué)生管理系統(tǒng)應(yīng)該能夠為用戶提供充足的信息和快捷的查詢手段。本學(xué)生管理系統(tǒng)的開發(fā)就是為了減少教師的手工操作、提高學(xué)校學(xué)生管理的效率。1.2 系統(tǒng)開發(fā)的目標本系統(tǒng)的目標是能夠促使學(xué)生管理規(guī)范話、系統(tǒng)化、程序化、自動化,最大限度保證數(shù)據(jù)的
11、安全對于基于網(wǎng)絡(luò)的學(xué)生管理系統(tǒng)顯得尤為重要,新的學(xué)生管理系統(tǒng)不僅能夠給學(xué)校教學(xué)提供便利的服務(wù),而且具有很好的擴展性和可延伸性,方便系統(tǒng)的日后維護和升級。1.3 本文的主要內(nèi)容本學(xué)生管理系統(tǒng)的用戶權(quán)限有三個,分別是系統(tǒng)管理員、教師和學(xué)生。系統(tǒng)管理員可以實現(xiàn)對整個系統(tǒng)的管理,如:學(xué)生管理、教師管理、班級管理和課程管理,在這些管理中,管理員可以增加、刪除、修改相關(guān)的信息以及查詢符合條件的信息等功能。教師的主要功能是錄入學(xué)生成績、查看選報我課程的學(xué)生、是否接受學(xué)生的選課和查看個人信息等。學(xué)生的主要功能是選課、查看已選課程、查看個人信息、修改密碼等。系統(tǒng)在具體的實現(xiàn)過程中,為了方便用戶操作等,利用 Aj
12、ax 技術(shù)實現(xiàn)實時第 1 章 緒論2校驗,即當管理員增加一個學(xué)生或是增加班級等信息時,系統(tǒng)會自動查找當前增加的信息是否在數(shù)據(jù)庫已經(jīng)存在,如果當前的信息和數(shù)據(jù)庫中的信息匹配則可提示用戶,當前信息已存在請重新輸入。本文首先簡單介紹了系統(tǒng)的開發(fā)背景、開發(fā)目標、使用的相關(guān)技術(shù)然后詳細闡述了系統(tǒng)的設(shè)計與實現(xiàn)過程。第 1 章簡述了系統(tǒng)的開發(fā)背景和目標,以及系統(tǒng)的主要內(nèi)容。第 2 章簡單的介紹了系統(tǒng)的相關(guān)技術(shù)。第 3 章主要是系統(tǒng)的分析與設(shè)計。第 4 章介紹了系統(tǒng)關(guān)鍵技術(shù)的應(yīng)用。第 5 章介紹了系統(tǒng)的實現(xiàn)。第 6 章是個人的總結(jié)。第 2 章 系統(tǒng)相關(guān)技術(shù)概述3第第 2 章章 系統(tǒng)相關(guān)技術(shù)系統(tǒng)相關(guān)技術(shù)概述概述
13、2.1 JSP 技術(shù)介紹2.1.1 JSP 簡介 JSP(JavaServer Pages)是由 Sun Microsystems 公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標準。JSP 技術(shù)有點類似 ASP 技術(shù),它是在傳統(tǒng)的網(wǎng)頁 HTML 文件(*.htm,*.html)中插入 Java 程序段(Scriptlet)和 JSP 標記(tag),從而形成 JSP 文件(*.jsp) 67。 用 JSP 開發(fā)的 Web 應(yīng)用是跨平臺的,即能在 Linux 下運行,也能在其他操作系統(tǒng)上運行。JSP 技術(shù)使用 Java 編程語言編寫類 XML 的 tags 和 scriptlets,來封裝產(chǎn)
14、生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過 tags 和 scriptlets 訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP 將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示分離,支持可重用的基于組件的設(shè)計,使基于 Web 的應(yīng)用程序的開發(fā)變得迅速和容易。 Web 服務(wù)器在遇到訪問 JSP 網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同 JSP 文件中的 HTML 代碼一起返回給客戶。插入的 Java 程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。 JSP 與 Java Servlet 一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個 HTML 文本,因此客戶端只要有瀏覽器就能瀏覽。 JSP
15、 的 1.0 規(guī)范的最后版本是 1999 年 9 月推出的,12 月又推出了 1.1 規(guī)范。目前較新的是 JSP1.2 規(guī)范,JSP2.0 規(guī)范的征求意見稿也已出臺。JSP 頁面由 HTML 代碼和嵌入其中的 Java 代碼所組成。服務(wù)器在頁面被客戶端請求以后對這些 Java 代碼進行處理,然后將生成的 HTML 頁面返回給客戶端的瀏覽器。Java Servlet 是 JSP 的技術(shù)基礎(chǔ),而且大型的 Web 應(yīng)用程序的開發(fā)需要 Java Servlet 和 JSP 配合才能完成。JSP 具備了 Java 技術(shù)的簡單易用,完全的面向?qū)ο?,具有平臺無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點。 自
16、JSP 推出后,眾多大公司都支持 JSP 技術(shù)的服務(wù)器,如IBM、Oracle、Bea 公司等,所以 JSP 迅速成為商業(yè)應(yīng)用的服務(wù)器端語言。第 2 章 系統(tǒng)相關(guān)技術(shù)概述42.1.2 JSP 的優(yōu)缺點 JSP 技術(shù)的優(yōu)點:(1)一次編寫,到處運行。在這一點上 Java 比 PHP 更出色,除了系統(tǒng)之外,代碼不用做任何更改。(2)系統(tǒng)的多平臺支持?;旧峡梢栽谒衅脚_上的任意環(huán)境中開發(fā),在任意環(huán)境中進行系統(tǒng)部署,在任意環(huán)境中擴展。相比 ASP/PHP 的局限性是顯而易見的。 (3)強大的可伸縮性。從只有一個小的 Jar 文件就可以運行 Servlet/JSP,到由多臺服務(wù)器進行集群和負載均衡,到
17、多臺 Application 進行事務(wù)處理,消息處理,一臺服務(wù)器到無數(shù)臺服務(wù)器,Java 顯示了一個巨大的生命力。 (4)多樣化和功能強大的開發(fā)工具支持。這一點與 ASP 很像,Java 已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費得到,并且其中許多已經(jīng)可以順利的運行于多種平臺之下。JSP 技術(shù)的缺點:(1)與 ASP 一樣,Java 的一些優(yōu)勢正是它致命的問題所在。正是由于為了跨平臺的功能,為了極度的伸縮能力,所以極大的增加了產(chǎn)品的復(fù)雜性。 (2)Java 的運行速度是用 class 常駐內(nèi)存來完成的,所以它在一些情況下所使用的內(nèi)存比起用戶數(shù)量來說確實是“最低性能價格比”了。從另一方面,
18、它還需要硬盤空間來儲存一系列的.java 文件和.class 文件,以及對應(yīng)的版本文件。2.2 Struts 介紹2.2.1 MVC 模式整個系統(tǒng)采用了 MVC 模式進行設(shè)計。MVC 模式是一種流行的軟件設(shè)計模式,它把系統(tǒng)分為 3 個模塊:模型(Model) 、視圖(View)和控制器(Controller)1014。各個模塊的功能說明參見表 2.1 所示。表2.1 MVC 的三個模塊MVC 模塊描述模型代表應(yīng)用程序狀態(tài)和業(yè)務(wù)邏輯視圖提供可交互界面,向客戶顯示模型數(shù)據(jù)第 2 章 系統(tǒng)相關(guān)技術(shù)概述5控制器響應(yīng)客戶的請求,根據(jù)客戶的請求來操縱模型,并把模型的響應(yīng)結(jié)果經(jīng)由視圖展現(xiàn)給客戶各個模塊之間的
19、相互作用如圖 2.1 所示??蛻艨梢詮囊晥D的客戶界面上瀏覽數(shù)據(jù)或發(fā)出請求,客戶的請求由控制器處理,它根據(jù)客戶的請求調(diào)用模型的方法,完成數(shù)據(jù)更新,然后調(diào)用視圖的方法將響應(yīng)結(jié)果展示給客戶。視圖也可以直接訪問模型,查詢數(shù)據(jù)信息,當模型中的數(shù)據(jù)發(fā)生變化時,它會通知視圖刷新界面,顯示更新后的數(shù)據(jù)。采用 MVC 模式有很多好處:一是能將顯示、邏輯和數(shù)據(jù)分開,某一方面的改變不會影響另一方面;其次是可以在不更改視圖顯示的情況下,更改控制器,以達到更改視圖與用戶交互的響應(yīng)模式的目的。圖2.1 MVC 模型圖2.2.2 Struts 框架(1)Struts 框架結(jié)構(gòu)及工作原理Struts 是把 MVC 設(shè)計模式運
20、用到 Web 應(yīng)用中,它由一組相互協(xié)作的類(組件) 、Servlet 以及標記庫組成,其結(jié)構(gòu)如圖2.2所示。Struts 是一個使用Servlet 和 JSP 在 Java 中實現(xiàn) MVC 模式的開放源代碼工程,它繼承了 MVC 的各項特點,并根據(jù) J2EE 的特點,作了相應(yīng)的變化和擴展。圖2.2 Struts框架結(jié)構(gòu)Servelet/Jsp 容器Web Server控制器ActionServlet視圖JSPActionActionAction模型ActionFormBeanJavaBeanWeb 客 戶第 2 章 系統(tǒng)相關(guān)技術(shù)概述6圖2.2 Struts框架結(jié)構(gòu)圖 (2)Struts 框架的
21、運行機制為了更好的理解 Struts 的流程,下面通過一個活動圖更具體描述接受請求直至返回響應(yīng)的整個過程10,如圖 2.3 所示。圖2.3 Struts響應(yīng)用戶請求的工作流程2.2.3 Struts 標簽庫用過 struts1.xml 的人都知道,標簽庫有 html、bean、logic、tiles,而 struts2.0里的標簽卻沒有分類,只用在 jsp 頭文件加上就能使用 struts2.0 的標簽庫下面就介紹下每個標簽的用法:A: 第 2 章 系統(tǒng)相關(guān)技術(shù)概述7-超鏈接,類似于 html 里的;-執(zhí)行一個 view 里面的一個 action;-如果 action 的 errors 有值那
22、么顯示出來;-如果 action 的 message 有值那么顯示出來。B:-類似于 struts1.xml 中的,JavaBean 的值。C:-復(fù)選框;-多選框。D:-獲取日期格式;-日期輸入框;-顯示錯誤信息;-表示一個塊,類似于 html 的;-雙下拉框。F:-獲取相應(yīng) form 的值。G:-和標簽一起使用。H:-在里使用,表示頭文件結(jié)束;-隱藏值。I:-包含一個輸出,servlet 或 jsp 頁面;-用于遍歷集合。L:-只讀的標簽。P:-為其他標簽提供參數(shù);-密碼輸入框;-得到value的屬性。R:第 2 章 系統(tǒng)相關(guān)技術(shù)概述8-單選按鈕;-重置按鈕。S:-單選框;-提交按鈕。T:-
23、表格;-I18n 文本信息;-文本域輸入框;-文本輸入框;-攔截器。U:-創(chuàng)建 url。2.3 JDBCJDBC(Java 數(shù)據(jù)庫連接)是 Java 程序45與數(shù)據(jù)庫系統(tǒng)通信的標準 API,它由一組用 Java 語言編寫的類和接口組成。有了 JDBC,只需用 JDBC API 編寫一個程序,就可實現(xiàn)向各種關(guān)系數(shù)據(jù)庫發(fā)送 SQL 語言。Java 程序和 JDBC 驅(qū)動程序的關(guān)系如圖 2.4 所示。本系統(tǒng)中通過 JavaBean 與 JDBC API 的連接。圖2.4 Java程序與JDBC驅(qū)動程序第 2 章 系統(tǒng)相關(guān)技術(shù)概述92.4 MySQL ServerMySQL3是最流行的開放源碼 SQL
24、 數(shù)據(jù)庫管理系統(tǒng),它是由 MySQL AB 公司開發(fā)、發(fā)布并支持的。MySQL AB 是由多名 MySQL 開發(fā)人創(chuàng)辦的一家商業(yè)公司。它是一家第二代開放源碼公司,結(jié)合了開放源碼價值取向、方法和成功的商業(yè)模型。(1)MySQL 是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng)。關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大的倉庫內(nèi)。這樣就增加了速度并提高了靈活性。MySQL 的 SQL 指得是“結(jié)構(gòu)化查詢語言”。SQL 是用于訪問數(shù)據(jù)庫的最常用標準化語言,它是由 ANSI/ISO SQL 標準定義的。SQL 標準自 1986 年以來不斷演化發(fā)展,有數(shù)種版本。(2)MySQL 軟件是一種開放源碼軟件?!伴_放
25、源碼”意味著任何人都能使用和改變軟件。任何人都能從 Internet下載 MySQL 軟件,而無需支付任何費用。如果愿意,你可以研究源碼并進行恰當?shù)母?,以滿足你自己的需求。MySQL 軟件采用了 GPL(GNU 通用公共許可證),定義了在不同情況下可以用軟件作的事和不可作的事。如果你對 GPL不滿意,或需要在商業(yè)應(yīng)用程序中嵌入 MySQL 代碼,可從我方購買商業(yè)許可版本。更多信息,請參見 MySQL 許可概述。 (3)MySQL 數(shù)據(jù)庫服務(wù)器具有快速、可靠和易于使用的特點。如果它正是你所尋找的,不妨一試。MySQL 服務(wù)器還有一套實用的特性集合,這些特性是通過與我們用戶的密切合作而開發(fā)的。在
26、我們的基準測試主頁上,給出了 MySQL 服務(wù)器和其他數(shù)據(jù)庫管理器的比較結(jié)果。MySQL 服務(wù)器最初是為處理大型數(shù)據(jù)庫而開發(fā)的,與已有的解決方案相比,它的速度更快,多年以來,它已成功用于眾多要求很高的生產(chǎn)環(huán)境。盡管MySQL 始終在不斷發(fā)展,但目前 MySQL 服務(wù)器已能提供豐富和有用的功能。它具有良好的連通性、速度和安全性,這使的 MySQL 十分適合于訪問 Internet 上的數(shù)據(jù)庫。 (4)MySQL 服務(wù)器工作在客戶端/服務(wù)器模式下,或嵌入式系統(tǒng)中。 MySQL 數(shù)據(jù)庫軟件是一種客戶端/服務(wù)器系統(tǒng),由支持不同后端的 1 個多線程 SQL 服務(wù)器,數(shù)種不同的客戶端程序和庫,眾多管理工具
27、和廣泛的應(yīng)用編程接口 API 組成。我們還能以嵌入式多線程庫的形式提供 MySQL 服務(wù)器,你可以將其鏈接到你的應(yīng)用程序,從而獲得更小、更快、和更易管理的產(chǎn)品。第 3 章 系統(tǒng)分析與設(shè)計10第第 3 章章 系統(tǒng)分析系統(tǒng)分析與設(shè)計與設(shè)計3.1 系統(tǒng)業(yè)務(wù)流程圖根據(jù)對該學(xué)生管理系統(tǒng)進行深入分析可得到以下系統(tǒng)流程圖8,如圖 3.1所示。 登登錄錄用用戶戶名名與與密密碼碼系系統(tǒng)統(tǒng)管管理理員員教教師師學(xué)學(xué)生生學(xué)學(xué)生生管管理理正正確確返返回回不不正正確確班班級級管管理理課課程程管管理理教教師師管管理理成成績績管管理理教教師師信信息息我我的的學(xué)學(xué)生生待待選選學(xué)學(xué)生生落落選選學(xué)學(xué)生生我我的的班班級級個個人人信信
28、息息修修改改密密碼碼課課程程信信息息信信息息查查詢詢選選課課課課程程表表落落選選課課程程待待定定課課程程已已修修課課程程未未過過課課程程個個個個信信息息修修改改密密碼碼3.1 系統(tǒng)業(yè)務(wù)流程圖學(xué)生管理系統(tǒng)的業(yè)務(wù)流程圖主要是描述用戶登錄后,根據(jù)不同的權(quán)限進行相應(yīng)的操作。管理員可以進行課程管理、班級管理、學(xué)生管理和教師管理,教師主要是實現(xiàn)成績管理和信息查詢,學(xué)生可以進行選課和信息查詢。第 3 章 系統(tǒng)分析與設(shè)計113.2 系統(tǒng)數(shù)據(jù)流圖數(shù)據(jù)流圖8是一種圖形化技術(shù),它描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受的變換,是系統(tǒng)邏輯功能的圖形表示,管理員數(shù)據(jù)流圖如圖 3.2所示、教師數(shù)據(jù)流圖如圖 3.3
29、所示、學(xué)生數(shù)據(jù)流圖如圖 3.4 所示。用戶表管理員學(xué)生管理班級信息表教師管理課程管理班級設(shè)置課程信息表圖3.2 管理員數(shù)據(jù)流圖管理員數(shù)據(jù)庫流圖主要是描述管理員進行管理時數(shù)據(jù)的流向,當管理員進行學(xué)生管理、教師管理時,數(shù)據(jù)將存儲在用戶表中。當進行課程管理時,數(shù)據(jù)存儲在課程信息表中。當進行班級設(shè)置時,將數(shù)據(jù)存儲在班級信息表中。第 3 章 系統(tǒng)分析與設(shè)計12成績表教師錄入成績班級用戶視圖班級信息表課程查看班級圖3.3 教師數(shù)據(jù)流圖教師數(shù)據(jù)流圖主要是描述教師進行相應(yīng)操作時,數(shù)據(jù)的主要流向。當教師錄入成績時,將錄入的成績存儲在成績表中。教師從班級信息表中查看班級信息、從班級用戶視圖中查看課程信息。成績表學(xué)
30、生查看成績成績課程視圖選課查看班級圖3.4 學(xué)生數(shù)據(jù)流圖學(xué)生數(shù)據(jù)流圖主要是描述學(xué)生進行操作時,數(shù)據(jù)的流向,學(xué)生從成績表中可以查看自己的成績。從成績課程視圖中查看班級信息和選課。第 3 章 系統(tǒng)分析與設(shè)計133.3 系統(tǒng)用例分析3.3.1 系統(tǒng)前臺用例圖對于系統(tǒng),學(xué)生可以查詢自己的信息、查看可以選修的課程信息、查詢已選修了的所有課程的信息和成績等信息,學(xué)生的用例圖如圖 3.5 所示。教師主要是錄入學(xué)生某門課程的成績等。教師的用例圖如圖 3.6 所示。信信信信信信信信信信信信信信信信信信信信信信信信圖3.5 學(xué)生用例圖學(xué)生用例圖主要是描述學(xué)生用例的主要功能,有選課、成績查詢、查看課程信息和修改密碼
31、。圖3.6 教師用例圖教師用例圖主要是描述教師用例的主要功能,有成績管理和個人信息的修改。第 3 章 系統(tǒng)分析與設(shè)計143.3.2 系統(tǒng)后臺用例圖我們的系統(tǒng)后臺操作是針對系統(tǒng)管理員工作設(shè)計的,系統(tǒng)管理員擁有所有權(quán)限,教師根據(jù)工作擁有部分權(quán)限。系統(tǒng)管理員主要是日常操作以下幾個工作環(huán)節(jié):學(xué)生管理、教師管理、課程管理、班級管理。如圖 3.78所示。信信信信信信信信信信信信信信信信信刪 刪刪 刪信信信信信信信信信信信信信信信信信信信信信信信信信信信信信信信信信信圖3.7 系統(tǒng)后臺用例圖系統(tǒng)后臺用例圖主要是描述系統(tǒng)管理員用例的主要功能,管理員用例可以進行課程管理、班級管理、學(xué)生管理和教師管理,并進行增加
32、、刪除和修改。第 3 章 系統(tǒng)分析與設(shè)計153.4 系統(tǒng)數(shù)據(jù)庫設(shè)計3.4.1 數(shù)據(jù)庫設(shè)計原則數(shù)據(jù)庫的設(shè)計應(yīng)該遵循數(shù)據(jù)庫設(shè)計的基本原則,為后期的系統(tǒng)開發(fā)實現(xiàn)提供支持。在進行系統(tǒng)數(shù)據(jù)庫設(shè)計時一般應(yīng)該遵循的基本原則主要如下9:(1)一致性系統(tǒng)數(shù)據(jù)庫設(shè)計要符合數(shù)據(jù)一致性原則。數(shù)據(jù)的一致性是指表示同一個客觀事物的數(shù)據(jù),在同一時刻無論出現(xiàn)在何處都應(yīng)該是一致的,正確的。在關(guān)系型數(shù)據(jù)庫中,事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)轉(zhuǎn)變到另一個一致性狀態(tài)。當事務(wù)完成時,必須使所有數(shù)據(jù)都具有一致的狀態(tài)。由于數(shù)據(jù)庫面向整個系統(tǒng),可以被多個應(yīng)用程序和多個用戶共享數(shù)據(jù)。(2)規(guī)范化系統(tǒng)的數(shù)據(jù)庫設(shè)計應(yīng)遵循規(guī)范化原則。規(guī)
33、范化一般分為幾個級別:1NF,2NF, 3NF, 4NF,BCNF。一般原則上要采用第三范式要求進行設(shè)計。(3)完整性數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性。主要是需要防止合法用戶使用數(shù)據(jù)庫時向數(shù)據(jù)庫加入不符合語義的數(shù)據(jù),保護數(shù)據(jù)結(jié)構(gòu)不受損害,防止錯誤數(shù)據(jù)輸入和輸出,對輸入到數(shù)據(jù)庫中的數(shù)據(jù)要有預(yù)定義的規(guī)則約束。(4)安全性在系統(tǒng)的數(shù)據(jù)庫中集中了大量數(shù)據(jù),是系統(tǒng)正常運行的基礎(chǔ),因此,數(shù)據(jù)的安全性是數(shù)據(jù)庫設(shè)計中一個比較重要的問題,保護數(shù)據(jù)安全主要指保護數(shù)據(jù)庫數(shù)據(jù),防止非授權(quán)用戶使用數(shù)據(jù)庫或合法用戶非法操作數(shù)據(jù)庫而造成數(shù)據(jù)的泄露、改變或破壞。因此,在設(shè)計時候,應(yīng)該提供相應(yīng)保護數(shù)據(jù)安全的手段。(5)可伸縮性數(shù)
34、據(jù)庫結(jié)構(gòu)的設(shè)計應(yīng)該在滿足現(xiàn)有系統(tǒng)功能應(yīng)用需求的基礎(chǔ)上,充分考慮業(yè)務(wù)發(fā)展的需要、移植的需要,滿足可伸縮性、可擴展性和移植性等要求。(6)可維護和管理在進行數(shù)據(jù)庫設(shè)計時,應(yīng)該考慮易于對數(shù)據(jù)進行管理和維護,提高系統(tǒng)運行效率。3.4.2 數(shù)據(jù)庫概念設(shè)計為了使用戶的數(shù)據(jù)要求清楚、準確地描述出來,通常需要建立一個概念性第 3 章 系統(tǒng)分析與設(shè)計16的數(shù)據(jù)模型。概念數(shù)據(jù)模型是一種面向問題的數(shù)據(jù)模型,是按照用戶的觀點對數(shù)據(jù)建立的模型。它描述了從用戶的角度看到的數(shù)據(jù),反映了用戶的現(xiàn)實環(huán)境,而且與在軟件系統(tǒng)中的實現(xiàn)無關(guān),經(jīng)過對數(shù)據(jù)的各種分析, 該系統(tǒng)涉及到的實體有:管理員信息實體、學(xué)生信息實體、教師信息實體、班級
35、信息實體、課程信息實體。系統(tǒng)總體結(jié)構(gòu)功能模塊設(shè)計后,將對數(shù)據(jù)庫進行設(shè)計,本系統(tǒng)運用的是關(guān)系數(shù)據(jù)庫,數(shù)據(jù)之間的結(jié)構(gòu)關(guān)系可用 E-R 圖9來分析。E-R 圖由實體、屬性、實體之間的關(guān)系三部分組成。如圖 3.8 所示。學(xué)學(xué)生生教教師師管管理理員員錄錄入入成成績績1N管管理理1 1N N班班級級課課程程更更新新更更新新1 1N1 1N N選選修修N NN所所屬屬1N N賬賬號號密密碼碼密密碼碼職職稱稱密密碼碼學(xué)學(xué)號號姓姓名名學(xué)學(xué)籍籍系系別別性性別別電電話話號號碼碼電電子子郵郵箱箱教教室室號號教教師師編編號號上上課課時時間間課課程程號號班班級級號號系系別別預(yù)預(yù)選選課課學(xué)學(xué)分分課課程程號號課課程程名名班班
36、級級號號學(xué)學(xué)號號課課程程名名成成績績學(xué)學(xué)分分學(xué)學(xué)號號班班級級號號分分數(shù)數(shù)學(xué)學(xué)分分課課程程號號教教師師編編號號圖3.8 系統(tǒng)E-R圖系統(tǒng) E-R 圖主要是描述各實體間的關(guān)系,本系統(tǒng)的實體有管理員、教師、學(xué)生、班級、課程。管理員可以更新課程和班級信息,還能管理學(xué)生。教師和學(xué)生間的關(guān)系主要是教師為學(xué)生錄入成績。學(xué)生和課程間的關(guān)系是學(xué)生可以選修課程,學(xué)生和班級間的關(guān)系是學(xué)生屬于某個班級。第 3 章 系統(tǒng)分析與設(shè)計173.4.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計 在本系統(tǒng)中的不同功能模塊中,涉及到的數(shù)據(jù)多種多樣,作用各不相同,同時又互相聯(lián)系。系統(tǒng)的許多功能都要涉及到數(shù)據(jù)庫中的不同的表,而數(shù)據(jù)庫中的表的設(shè)計和表之間關(guān)系
37、的設(shè)計,是數(shù)據(jù)庫設(shè)計的重點。通過對 ER 圖各實體的分析,得到如下的相關(guān)表格。(1)用戶信息表(user):用戶信息表保存了所有用戶的信息,id 是表的主鍵,power(權(quán)限)字段有三個值:分別是 1,2,3。1 代表管理員,2 代表教師,3 代表學(xué)生。title(職稱)字段允許為空,只有老師有職稱:講師、副教授、教授。如表 3.1 所示。表 3.1 用戶信息表(2)課程信息表(course):course 表保存了所有課程的信息,cour_id 作為表的主鍵,課程名不允許為空,如表 3.2 所示。表 3.2 課程信息表序號字段名字段類型說明備注1cour_idVarchar(100)課程號P
38、rimary Key2nameVarchar(100)課程名NOTNULL3markInt(11)學(xué)分4prepareVarchar(100)預(yù)選課5depVarchar(100)系別(3)班級信息表(classes):class_id 作為表的主鍵, 班級信息表中的cour_id 對應(yīng)課程信息表中的 cour_id,tea_id 對應(yīng)用戶信息表中的 id,如表 3.3所示。序號字段名字段類型說明備注1id Varchar(32)id 號Primary Key2nameVarchar(32)登陸姓名NOTNULL3passwordVarchar(32)登陸密碼NOTNULL4powerVarc
39、har(32)用戶權(quán)限NOTNULL5titleVarchar(32)教師職稱6rollVarchar(32)學(xué)籍7jiguanVarchar(100)籍貫8departmentVarchar(100)系別9sexVarchar(32)性別10markInt(11)總學(xué)分11telVarchar(100)電話號碼12phoneVarchar(100)手機號碼13emailVarchar(100)電子郵箱第 3 章 系統(tǒng)分析與設(shè)計18表 3.3 班級信息表序號字段名字段類型說明備注1class_idVarchar(100)班級號Primary Key2tea_idVarchar(100)教師號F
40、oreign Key3room_idVarchar(100)教室號Foreign Key4cour_timeVarchar(100)上課時間(4)成績信息表(enrol): 成績信息表中的 class_id 對應(yīng)的是班級信息表中的 class_id,而 stu_id 對應(yīng)的是用戶信息表中的 id,如表 3.4 所示。表 3.4 成績信息表序號字段名字段類型說明備注1idInt(11)ID 號Primary Key1class_idVarchar(100)班級號Foreign Key2stu_idVarchar(100)學(xué)生號Foreign Key3acceptVarchar(100)是否被接受
41、4scoreVarchar(100)分數(shù)(5)選課信息表(stu_enrol): 選課信息表中的 class_id 對應(yīng)班級信息表中的 class_id,stu_id 對應(yīng)的是用戶信息表中的 id,通過 class_id 找到班級信息表中的 cour_id,在通過 cour_id 對應(yīng)找到課程信息表中的 cour_name.而通過stu_id 對應(yīng)到成績信息表中 stu_id,可以查找到 score。如表 3.5 所示。表 3.5 選課信息表序號字段名字段類型說明備注1class_idVarchar(100)班級號Foreign Key2cour_nameVarchar(100)課程名3stu
42、_idVarchar(100)學(xué)號Foreign Key4scoreVarchar(100)分數(shù)5markVarchar(100)學(xué)分6totalmarkVarchar(100)總學(xué)分第 4 章 系統(tǒng)關(guān)鍵技術(shù)應(yīng)用19第第 4 章章 系統(tǒng)關(guān)鍵技術(shù)應(yīng)用系統(tǒng)關(guān)鍵技術(shù)應(yīng)用4.1 系統(tǒng)的架構(gòu)設(shè)計整個系統(tǒng)架構(gòu)采用基于 MVC 模式 Struts 框架10,視圖用 JSP 或 HTML 顯示,業(yè)務(wù)在 JavaBean 中實現(xiàn),控制由 Action 類的實例控制。系統(tǒng)運行后,用戶通過瀏覽器訪問系統(tǒng),看到的只能是視圖層,在視圖層上,用戶進行相應(yīng)操作。視圖層由若干 JSP 頁面組成??刂破鞯暮诵氖荢truts.x
43、ml 配置文件,它控制著頁面的跳轉(zhuǎn),是系統(tǒng)的控制中心。真正的業(yè)務(wù)在JavaBean 類中體現(xiàn),JavaBean 類由若干個業(yè)務(wù)類組成,對業(yè)務(wù)的操作一般需要操作數(shù)據(jù)庫。學(xué)生管理系統(tǒng)框架結(jié)構(gòu)圖見圖 4.1。瀏 覽 器Web 瀏 覽 器視圖(JSP)控 制 器(ActionServlet)ActionActionStruts.xml模 型(JavaBean)DataBase圖 4.1 系統(tǒng)框架結(jié)構(gòu)圖第 4 章 系統(tǒng)關(guān)鍵技術(shù)應(yīng)用204.2 Struts 框架在系統(tǒng)中的應(yīng)用4.2.1 Struts 一般開發(fā)流程(1)收集和定義應(yīng)用需求;(2)定義視圖,視圖上的數(shù)據(jù)顯示以及視圖之間的流程;(3)定義 Ac
44、tionMappings,建立業(yè)務(wù)邏輯之間的關(guān)系;(4)根據(jù)每個用戶視圖需要的模型數(shù)據(jù)創(chuàng)建 ActionForm;(5)開發(fā)業(yè)務(wù)邏輯處理組件;(6)編寫 Action 對象,完成請求到業(yè)務(wù)邏輯處理的橋(Action 類中也可以編寫業(yè)務(wù)邏輯處理代碼,但是這樣不利于程序的維護、擴展);(7)建立配置文件 struts.xml,web.xml 等;(8)開發(fā)部署。4.2.2 系統(tǒng)中各類的實現(xiàn)(1)Action 類Action 類負責(zé)控制器的實現(xiàn),主要用于控制理模塊中的 Action 類,如表4.1 所示。表 4.1 學(xué)生管理系統(tǒng)中的 Action 類類名說明ClassActionClassActio
45、n 接收封裝在 ClassInfo 中的數(shù)據(jù),并根據(jù) struts.xml 中的method 屬性的值來判斷班級管理模塊中的操作,并調(diào)用相應(yīng)的模型中的業(yè)務(wù)實現(xiàn)類,完成有關(guān)視圖中的頁面請求并產(chǎn)生響應(yīng)。(2)persistence 類Persistence 類主要是負責(zé)與數(shù)據(jù)庫連接,將用戶輸入的數(shù)據(jù)庫插入到數(shù)據(jù)庫中,如表 4.2 所示。表 4.2 學(xué)生管理系統(tǒng)中的 persistence 類類名說明ClassDAOImpl將 JSP 頁面中的數(shù)據(jù),通過 ClassAction 類傳遞到 DAO 中,插入 classes表(3)JavaBean 類JavaBean 類負責(zé)封裝數(shù)據(jù)的實現(xiàn),學(xué)生管理系統(tǒng)
46、中的 JavaBean 類具體見表4.3 所示。表 4.3 學(xué)生管理系統(tǒng)中的 JavaBean 類第 4 章 系統(tǒng)關(guān)鍵技術(shù)應(yīng)用21類名說明NewPagerNewPage 封裝了實現(xiàn)分頁的方法NewPagerServiceNewPagerService 封裝了實現(xiàn)上一頁、下一頁和最后一頁的實現(xiàn)MD5.javaMD5 實現(xiàn)了對用戶密碼的轉(zhuǎn)換DBConnection用來負責(zé)對數(shù)據(jù)庫的連接,并封裝了對數(shù)據(jù)的操作方法。4.2.3 系統(tǒng) Struts 的配置對于struts.xml10 14配置文件,其主要是實現(xiàn)從JSP頁面轉(zhuǎn)到JAVA類,在通過result中的name屬性轉(zhuǎn)回到JSP頁面,并將數(shù)據(jù)顯示現(xiàn)
47、JSP頁面中,下面給出幾個例子。 用戶登錄功能的配置: /login.jsp login /teacher.jsp /student.jsp /admin.jsp /login.jsp /login.jsp 學(xué)生管理的代碼配置: viewStudent /admin_add_StudentError.jsp /admin_display_Student.jsp /admin.jsp第 4 章 系統(tǒng)關(guān)鍵技術(shù)應(yīng)用22 viewStudent /admin_delete_StudentError.jsp /admin_student_Information.jsp /admin.jsp /admin
48、_student_Information.jsp /admin.jsp 第 5 章 系統(tǒng)的實現(xiàn)23第第 5 章章 系統(tǒng)的實現(xiàn)系統(tǒng)的實現(xiàn)5.1系統(tǒng)包結(jié)構(gòu)該系統(tǒng)包目錄結(jié)構(gòu)如圖 5.1 所示。圖5.1 包結(jié)構(gòu)圖包 stu.persistence 存放的是眾多的 Dao 接口和所有 Dao 接口的實現(xiàn)類如圖 5.2所示。圖5.2 包 stu.persistence 目錄結(jié)構(gòu)包 stu.service 存放的是眾多的 Facade 接口和所有的 Facade 接口的實現(xiàn)類如圖 5.3 所示。第 5 章 系統(tǒng)的實現(xiàn)24圖 5.3 包 stu.service 目錄結(jié)構(gòu)包 stu.action 放的是所有的
49、action 類,用于和 JSP 頁面連接然后又通過返回值,從 struts.xml 中找到相應(yīng)的配置,實現(xiàn)控制的功能,如圖 5.4 所示。圖 5.4 包 stu.action 目錄結(jié)構(gòu)包 stu.util 放的是與數(shù)據(jù)庫連接的 DBConnection 類,如圖 5.5 所示。圖 5.5 包 stu.util 目錄結(jié)構(gòu)5. 2 用戶登陸用戶登陸時,根據(jù)用戶登陸的用戶 ID 和密碼來判斷用戶的權(quán)限是管理員、老師還是學(xué)生,然后分別轉(zhuǎn)入不同的頁面,如圖 5.6 所示。第 5 章 系統(tǒng)的實現(xiàn)25login.jsp用戶類型用戶名密碼登陸LoginActionstudent.jspteacher.jsp
50、admin.jsplogin.jsp用戶名或密碼有誤數(shù)據(jù)圖 5.6 用戶登陸5.3 后臺管理登錄功能實現(xiàn)進入后臺管理,需要使用用戶編號和密碼登錄,驗證成功后才可以進入系統(tǒng),具體實現(xiàn)思想為:打開 login.jsp,如下圖所示,輸入用戶號和密碼到loginValidtae,進入 validateAction 中通過 loginValidate.java 得到 JSP 頁面輸入的用戶號、姓名和驗證碼,首先判斷輸入的驗證碼是否正確,如果錯誤,返回登陸頁面提示驗證碼錯誤,如果正確接著判斷用戶名和密碼是否正確,在UserDAOImpl 中有一些具體的實現(xiàn)方法。如果正確進入后臺,否則提示用戶名或密碼錯誤,
51、返回登陸界面,效果如圖 5.7 所示。 圖5.7 管理登陸界面這是登陸的 login.jsp 頁面,form 表單里有用戶輸入的用戶各、密碼和驗證碼。第 5 章 系統(tǒng)的實現(xiàn)26用戶 ID密碼驗證碼 根據(jù) struts.xml 中的配置如下所示,找到與 login.jsp 頁面中 form 表單上的與 struts.xml 配置文件中相似的 action,然后根據(jù) result 的 name 屬性值進行跳轉(zhuǎn)。 /login.jsp login /teacher.jsp /student.jsp /admin.jsp /login.jsp /login.jsp 下面是 LoginAction.ja
52、va 中的代碼:public class LoginAction private String user_Name; /login.jsp 頁面的用戶名private String user_Password;/login.jsp 頁面的密碼第 5 章 系統(tǒng)的實現(xiàn)27private String user_Code;/login.jsp 頁面的驗證碼private UserFacade userFacade;public LoginAction() userFacade = new UserFacadeImpl();public String login()boolean flag=false
53、;UserInfo user=new UserInfo();user.setName(user_Name);user.setPassword(user_Password);try/這里調(diào)用 UserDAOImpl 中的 login()方法,login()返回的是一個 boolean類型的值flag=userFacade.login(user);if(flag=true)這是調(diào)用 UserDAOImpl 中的 selectUserByName()方法,返回一個UserInfo 對象UserInfo userIn=userFacade.selectUserByName(user_Name);Htt
54、pServletRequest request=ServletActionContext.getRequest();HttpSession session = request.getSession();/將用戶的信息用 session 保存在 user 中session.setAttribute(user, userIn);/獲取 Image.jsp 頁面生成的驗證碼String code=(String)(session.getAttribute(rand);/獲得登陸用戶的權(quán)限并將其轉(zhuǎn)化為整型int power=Integer.parseInt(userIn.getPower();if(c
55、ode.equals(user_Code)if(power=1) /用戶權(quán)限是 1 表示登陸的用戶是學(xué)生,返回字段 studentreturn student; /用戶權(quán)限是 2 表示登陸的是教師用戶,返回字段 teacherelse if(power=2) return teacher;/如果登陸的用戶權(quán)限即不是 1 也不是 2,則表示登陸的是管理員,返回字段/admin第 5 章 系統(tǒng)的實現(xiàn)28else return admin;elsereturn codeError;5.4 管理員功能實現(xiàn)管理員管理模塊的功能有:學(xué)生管理、教師管理、課程管理、班級管理、個人信息。首先管理員登陸后進入如圖
56、 5.8 所示圖 5.8 管理員登陸頁面(1)學(xué)生管理:對學(xué)生信息的添加、刪除、修改,還可以根據(jù)學(xué)生所在的系別和學(xué)籍來搜索符合條件的學(xué)生,實現(xiàn)的思想是,先定義一個接口UserDAO,然后定義了一個類 UserDAOImpl 用來具體實現(xiàn),當管理員點擊學(xué)生管理時就出現(xiàn)如圖 5.9 所示。圖 5.9 學(xué)生管理頁面查看所有學(xué)生用戶的代碼如下所示:public String viewStudent()throws SQLExceptiontry/學(xué)生用戶的權(quán)限是 1,所以從 user 表中查找權(quán)限是 1 的用戶,即學(xué)生第 5 章 系統(tǒng)的實現(xiàn)29String sql=select * from user
57、 where power=1;/通過調(diào)用 UserDAOImpl 中的 getTotalRows()方法,獲得總的行數(shù),將其/保存在 totalRows totalRows = stuFacade.getTotalRows(sql);/調(diào)用 UserDAOImpl 中的方法,將獲得的信息保存在 pager 對象中pager=newPage.getPager(currentPage, pagerMethod, totalRows);currentPage=Integer.toString(pager.getCurrentPage();totalPages=Integer.toString(pag
58、er.getTotalPages();/將查找到的所有學(xué)生信息,放在 stus stus=stuFacade.queryByPage(pager.getStartRow(),pager.getPageSize(),sql);/如果 try 語句執(zhí)行成功,就返回字符 Successreturn Success;然后根據(jù) struts.xml 中的配置信息返回到相應(yīng)的頁面中,代碼如下所示:/admin_student_Information.jsp/admin.jsp下面是管理員增加一個學(xué)生的用戶頁面,本功能的實現(xiàn)用了模態(tài)的功能,當點擊增加按鈕時,就出現(xiàn)如圖 5.10 所示。圖5.10 增加學(xué)生頁
59、面第 5 章 系統(tǒng)的實現(xiàn)30增加的代碼如下所示: public String addStudent() throws SQLException/這是引用了 strust2 中的內(nèi)置對象,目的是獲得 session 中保存的值HttpServletRequest request = ServletActionContext.getRequest();HttpSession session = request.getSession();/這里是通過 getAttribute 獲得當前登陸的用戶的權(quán)限,將其保存在 power中String power=(String)(UserInfo)sessio
60、n.getAttribute(user).getPower();try/如果當前登陸的用戶權(quán)限是 3,即表示登陸的是管理員,就讓其執(zhí)行下面的操作if(power.equals(3)UserInfo notice=new UserInfo();/下面是將從 JSP 頁面中獲得的值,set 到 UserInfo 對象中notice.setId(stuInfo.getId();/這是調(diào)用 UserDAOImpl 中的 addUserInfo()方法 stuFacade.addUserInfo(notice);/如果 try 語句執(zhí)行成功的話,就返回字符 Successreturn Success;e
61、lse return Error;在 struts.xml 中的代碼配置信息如下所示:viewStudent/admin_add_StudentError.jsp下面是執(zhí)行刪除的功能,當管理員點擊刪除按鈕時,效果如圖 5.11 所示。第 5 章 系統(tǒng)的實現(xiàn)31圖5.11 刪除學(xué)生頁面刪除的實現(xiàn)代碼如下所示: public String deleteStudent()throws SQLException/引用 struts2 的內(nèi)置對象HttpServletRequest request = ServletActionContext.getRequest();HttpSession sessi
62、on = request.getSession();/獲取登陸用戶的權(quán)限String power=(String)(UserInfo) session.getAttribute(user).getPower();/將用戶當前要刪除的用戶 ID 獲得到后強制轉(zhuǎn)化為整型,并保存在 noid中int noid=Integer.parseInt(id);tryif(power.equals(3)UserInfo noticeInfo = stuFacade.selectUserById(noid);/調(diào)用 UserDAOImpl 中的 deleteUserInfo()方法stuFacade.delet
63、eUserInfo(noticeInfo);/如果 try 語句執(zhí)行成功就返回字符 Successreturn Success;else return Error;在 struts.xml 中的配置信息如下所示:viewStudent/admin_delete_StudentError.jsp管理員可以按系別和學(xué)籍等搜索符合條件的學(xué)生信息,如實現(xiàn)效果如圖5.12 所示。圖 5.12 搜索學(xué)生頁面搜索符合條件的學(xué)生的代碼如下所示: 第 5 章 系統(tǒng)的實現(xiàn)32public String searchStudent()throws SQLExceptiontry String sql=select
64、* from user;int flag=0;/這個用來標識用戶選擇的搜索條件是一個還是多個if(stuInfo.getRoll()!=null&!stuInfo.getRoll().equals() if(stuInfo.getRoll().equals(1) sql=sql+ where roll=在校;/下面按類似的方法搜索flag+;if(stuInfo.getDepartment()!=null&!stuInfo.getDepartment().equals()&flag!=0)if(stuInfo.getDepartment().equals(1)sql=sql+ and depa
65、rtment=軟件工程;/下面按類似的方法搜索符合條件的信息flag+;else if(stuInfo.getDepartment()!=null&!stuInfo.getDepartment().equals()if(stuInfo.getDepartment().equals(1)sql=sql+ where department=軟件工程;/以下按類似的方法搜索符合條件的信息flag+;sql=sql+ and power=1;totalRows = stuFacade.getTotalRows(sql);pager=newPage.getPager(currentPage, pager
66、Method, totalRows);currentPage=Integer.toString(pager.getCurrentPage();totalPages=Integer.toString(pager.getTotalPages();stus = stuFacade.queryByPage(pager.getStartRow(), pager.getPageSize(),sql);return Success;catch(Exception e)e.printStackTrace();return Error;(2)教師管理:對教師信息的添加、刪除、修改,修改的功能實現(xiàn)與增加的類似,其功能的實現(xiàn)與學(xué)生管理的類似。(3)課程管理:對課程信息的添加、刪除、修改,實現(xiàn)的方法與學(xué)生管理類似。(4)班級管理:對班級信息的添加、刪除、修改,與學(xué)生管理的實現(xiàn)類似。第 5 章 系統(tǒng)的實現(xiàn)335. 5 教師功能實現(xiàn)老師的功能:主要包括錄入學(xué)生成績、查看我的學(xué)生、查看個人信息和修改密碼等功能。(1)查看我的學(xué)生:將數(shù)據(jù)顯示在 JSP 頁面中,然后通過修改按鈕來錄入學(xué)生的成績.主要的實現(xiàn)是定義一個
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專題黨課講稿:以高質(zhì)量黨建保障國有企業(yè)高質(zhì)量發(fā)展
- 廉政黨課講稿材料:堅決打好反腐敗斗爭攻堅戰(zhàn)持久戰(zhàn)總體戰(zhàn)涵養(yǎng)風(fēng)清氣正的政治生態(tài)
- 在新錄用選調(diào)生公務(wù)員座談會上和基層單位調(diào)研座談會上的發(fā)言材料
- 總工會關(guān)于2025年維護勞動領(lǐng)域政治安全的工作匯報材料
- 基層黨建工作交流研討會上的講話發(fā)言材料
- 糧食和物資儲備學(xué)習(xí)教育工作部署會上的講話發(fā)言材料
- 市工業(yè)園區(qū)、市直機關(guān)單位、市紀委監(jiān)委2025年工作計劃
- 檢察院政治部關(guān)于2025年工作計劃
- 辦公室主任2025年現(xiàn)實表現(xiàn)材料
- 2025年~村農(nóng)村保潔員規(guī)范管理工作方案
- 在深入貫徹中央8項規(guī)定精神學(xué)習(xí)教育工作部署會議上的講話發(fā)言材料4篇
- 開展深入貫徹規(guī)定精神學(xué)習(xí)教育動員部署會上的講話發(fā)言材料3篇
- 在司法黨組中心學(xué)習(xí)組學(xué)習(xí)會上的發(fā)言材料
- 國企黨委關(guān)于推動基層黨建與生產(chǎn)經(jīng)營深度融合工作情況的報告材料
- 副書記在2025年工作務(wù)虛會上的發(fā)言材料2篇