【正文】
結果返回結果字符串 ActionInvocation負責查找結果字符串對應的 (Result)然后執(zhí)行這個 Result Result會調用一些模版( JSP) 來呈現(xiàn)頁面,之后攔截器 (Interceptor N)會在被執(zhí)行 (順序和 Action執(zhí)行之前相反 )最后響應 (HttpServletResponse)被返回在 (核心控制器)( FilterDispatcher)。其全新的體系結 構與 Struts 1 的體系結構差別巨大。第四章將對系統(tǒng)進行測試。本論文還包含系統(tǒng)的基礎部分,包含登錄及用戶管理、參數(shù)設置、郵件提醒、通知發(fā)布和站內信等功能。 本論文選取了其中的選題與基礎數(shù)據(jù)模塊。本系統(tǒng)按照畢業(yè)設計的流程進行管理,將以往師生之間分散的畢業(yè)設計論文交流整合到一個統(tǒng)一的平臺,在此平臺上老師可以提交論文題目、對論文的撰寫過程進行指導和打分;學生可以進行選題、提交開題報告、最終提交論文;而教務管理人員可以方便的獲悉畢業(yè)論文的整個進度情況。Java Web 開發(fā) 。選題模塊主要實現(xiàn)畢業(yè)設計的在線出 題與選題,基礎數(shù)據(jù)模塊是本系統(tǒng)運行所需的模塊,包括登錄、用戶管理、參數(shù)設置、發(fā)布通知、站內信、郵件提醒等功能。本系統(tǒng)采用 B/S 架構,后臺為 Java 語言編寫,使用 Struts 2 + Spring + Hibernate 框架開發(fā)。 摘 要 在當今社會 ,信息化浪潮強烈沖擊著傳統(tǒng)教育模式 ,信息技術和教育相結合成為了當今世界教育改革和發(fā)展的有效形式和推動力量 ,信息化建設的進程在教育行業(yè)中被不斷推進。以 MySQL作為數(shù)據(jù)庫系統(tǒng)。本系統(tǒng)實現(xiàn)了所需的功能,基礎數(shù)據(jù)模塊均能正常運行,達到了預期的目的。畢業(yè)設計論文管理 Abstract In today39。 該系統(tǒng)的實現(xiàn),有利于畢業(yè)設計管理的網(wǎng)絡化,從以往繁瑣的人工管理里解放出來,對于教師而言,各個階段的流程把控可以更加的清晰和明確,對 學生而言,即使在外面實習的時候,也能夠及時地將自己畢業(yè)論文的進展和問題,在網(wǎng)絡上和老師溝通。本部分重點實現(xiàn)了系統(tǒng)的選題功能。此部分是支持系統(tǒng)正常運行所需要的。 第 1 章 開發(fā)關鍵技術介紹 本系統(tǒng)使用了 JSP 和 Servlet 技術,數(shù)據(jù)庫系統(tǒng)則是開源的 MySQL數(shù)據(jù)庫,采用了最常見的 Web 開源框架 SSH ( Struts 2+Spring+Hibernate)開發(fā)。它以 WebWork為核心,采用攔截器的機制來處理用戶的請求,這樣的設計也使得業(yè)務邏輯控制器能夠與 ServletAPI 完全脫離開,所以也可將其理解為 WebWork 的更新產(chǎn)品。 MVC 架 構介紹 “ MVC 架構 (ModelViewController)是軟件工程中的一種軟件架構模式,一種軟 件設計典范,用一種業(yè)務邏輯和數(shù)據(jù)顯式分離的方法組織代碼,將業(yè)務邏輯被聚集到一個部件里面,在界面和用戶圍繞數(shù)據(jù)的交互能被改進和個性化定制的同時而不需要重新編寫業(yè)務邏輯。通常模型對象負責在數(shù)據(jù)庫中存取數(shù)據(jù)。 MVC 架構將業(yè)務邏輯、數(shù)據(jù)、顯示三部分分開,數(shù)據(jù)層、業(yè)務邏輯層和表示層獨立完成任務。它是為了解決企業(yè)應用開發(fā)的復雜性而創(chuàng)建的。 簡單來說, Spring 是一個輕量級的控制反轉 ( IoC)和面向切面( AOP)的容器框架。簡單的說, ORM 是通過使用描述對象和數(shù)據(jù)庫之間映射的元數(shù)據(jù),將 java 程序中的對象自動持久化到關系數(shù) 據(jù)庫中。 Hibernate 框架 Hibernate 是一個開放源代碼的對象關系映射框架,它對 JDBC 進行了非常輕量級的對象封裝,使得 Java 程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。需求分析是開發(fā)一Application Persistent Objects Hibernate JDBC Database 個系統(tǒng)時的首要步驟。 (1)教師出題 教師可以在“教師出題”頁面中,上傳學生可選的課題,上傳課題的同時,也可以上傳課題設計的資料,以便于學生的選擇,如果當老師出的課題 還未被學生選擇,則可以刪除已出的課題。 (4)選題模塊用例分析 模塊涉及的用戶包括:教師 (Teacher)、學生 (Student)、管理員 (Admin)。 學生的專業(yè)( Major):用于存儲學生的專業(yè)信息,包括專業(yè)的 ID、專業(yè)的名稱( Name)、和對應的院系 ID( DeptID)。一個院系可以對應多個專業(yè),一個專業(yè)只能對應一個院系。 選題模塊用例圖如圖 所 示。 郵件的提醒 用于教師與選題學生的交流,當學生選題后,教師就會收到系統(tǒng)的提示郵件,提醒教師需要在接下來的時間里對學生進行指導。管理員可以添加、刪除用戶、更改用戶的信息、重置用戶的密碼等等。 用戶表中的數(shù)據(jù)通過用戶類型來判斷是學生數(shù)據(jù)還是教師數(shù)據(jù)。 用戶所需功能: 教師和學生:修改密碼、修改個人信息。當有重要的通知需要全體用戶查看時,管理員可以使用該 系統(tǒng)發(fā)布。 公告存儲的信息包括公告的標題( BulletinTitle)、公告的內容( Bulletin Content)、公告發(fā)布的時間( Data)、公告的點擊量( ClickNum)和公告的文件組 ID( FileGroupID)。 圖 通知發(fā)布功能用例圖 系統(tǒng)設計 在了解和獲取了用戶的需求之后,我們根據(jù)采用的開發(fā)框架和技術。既方便了用戶的使用,也有利于后期的維護。用戶在頁面上的操作傳到服務器上,由 Struts2 的過濾器截獲并解析,查詢到對應的處理 Action,在 Action 中,調用對應的業(yè)務邏輯處理,即由Service 層提供處理的業(yè)務。 系統(tǒng)功能如圖 所示。 數(shù)據(jù)庫 Web 瀏 覽器 Action 層 (處理 web 數(shù)據(jù) ) Service 層(業(yè)務邏輯) DAO 層(訪問數(shù)據(jù)庫) 數(shù)據(jù)返回 訪問數(shù)據(jù)庫 返回請求 web 請求 Web 服務器 JSP 頁面(顯示信息) 圖 系統(tǒng)主要功能 學生瀏覽題目:學生在頁面中查看所有本專業(yè)老師的已出題目。 只有全部符合,才可進行接下來的操作: 添加新的選題記錄; 更改題目的被選擇狀態(tài); 添加開題報告 發(fā)送郵件。 ③ 管理功能 教師添加題目 學生瀏覽題目 選題 是否可選? 添加選題記錄 是 否 更改題目狀態(tài) 添加開題報告記錄 選題完成 更改個人信息:登錄用戶可以更改自己的性別、手機號、郵箱和用戶密碼。 查看通知:用戶無需登錄可以看到通知的列表。系統(tǒng)界面如圖 所示。 點擊參考資料的下載鏈接,可以下載該題目的參考資料。 分頁欄可以動態(tài)設置每一頁顯示的數(shù)據(jù)條數(shù)。此日期范圍由教務員修改。 教務員發(fā)布通知頁面: 圖 教務員發(fā)布通知 教務員在此 頁面進行通知的編輯和發(fā)布,同時也可以在通知中添加附件。 類設計 本系統(tǒng)主要分 Entity類 (實體類 )和 Bean類(業(yè)務管理類)兩部分。 Entity類 (實體類 )放于 包內。除此之 外,一些公用的如加密解密的工具類,則放在 的包中。 圖 出題教師添加畢業(yè)設計題目時序圖 教師在出題完畢之后,學生可以進行選題操作。 表 ChooseTopicAction類主要方法描述 方法名 參數(shù) 返回值 功能描述 Input 無 String, Struts 2 的 result 名稱 為學生分頁顯示題目列表 list 無 String, Struts 2 的 result 名稱 獲取并顯示題目的參考資料列表 choose 無 String, Struts 2 的 result 名稱 判斷題目是否可選并完成選題 cancel 無 String, Struts 2 的 result 名稱 學生取消選題 myTopic 無 String, Struts 2 的 result 名稱 學生查看自己的選題 : 學生 : 教師 : T o p i c : Se l e ct e d Su b j e ct : O p e n i n g re p o rt1 : C re a t e ()2 : L i st ()3 : Se l e ct Su b j e ct ()3 . 1 : C re a t e ()3 . 2 : C h a n g e St a t u s( )4 : L i st ()5 : L i st () 業(yè)務邏輯類 TopicService 的主要方法描述如表 所示。該類主要方法如表 所述。主要通過自定義的攔截器 SecurityAdmin 完成。當執(zhí)行方法時,攔截器會獲取 action類中相關方法的注解,由此可以判斷當前用戶是否有權限執(zhí)行該方法。設計優(yōu)良的數(shù)據(jù)庫對于系統(tǒng)的運行效率有著極大的提高。 (2) 數(shù)據(jù)庫表設計 ① 學生和教師的信息 表 Student 表結構 列名 類型 長度 約束 備注 Id Varchar 13 主鍵 學號 Grade Int 11 非空 年級,如 2020 : U se rS t ru t s 2 A ct i o nS e cu ri t yI n t e rc e p t o r1 : re q u e st () 1 . 1 : i n t e rc e p t ()1 . 1 . 1 : i n vo ke () Name Varchar 10 學生姓名 Sex Varchar 1 男,女 MajorID Int 11 外鍵 () 專業(yè)號 ClassID Varchar 20 外鍵 () 班級號 Email Varchar 30 Phone Varchar 20 MinorID Int 11 外鍵 () 表 Teacher 表結構 列名 類型 長度 約束 備注 Id Int 11 主鍵 教師號 Name Varchar 10 教師姓名 Sex Varchar 1 男,女 MajorID Int 11 外鍵 () 專業(yè)號 Desc_ Varchar 202000 Email Varchar 30 Phone Varchar 20 學生表( Student)用于存儲學生的學號、年級、姓名、性別、專業(yè)代碼、班級代碼、郵箱地址、電話號碼等相關身份信息,表結構參見表 。 ③ 用戶信息存儲 用戶表主要包括用戶 Id、用戶名稱、密碼、類型、最后登錄時間等字段。表結構參見表 。 表 User 表結構 列名 類型 長度 約束 備注 Userid Varchar 20 主鍵 用戶 ID Username Varchar 20 非空 用戶名字 Password Varchar 32 非空 密碼 Type Varchar 20 非空 類型 _grant Bit 1 非空 是否能授權 Enable Bit 1 非空 是否可用 lastLoginTime Datetime 0 最后登錄時間 lastLoginAddress Varchar 30 最后登陸 IP 地址 lastLogoutTime Datetime 0 最后登出時間 表 role 表結構 列名 類型 長度 約束 備注 Id Int 11 主鍵 自增主鍵 Rolename Varchar 20 非空 角色名稱 _desc Varchar 50 角色描述 Level Int 2 非空 角色級別 表 Userrole 表結構 列名 類型 長度 約束 備注 Id Int 11 主鍵 Userid Varchar 20 外鍵 () 用戶 ID Roleid Int 11 外鍵 () ④ 畢業(yè)設計題目及論文選題 題目表( Topic)用于存儲教師提供的所有可選題目。 選題表( SelectedTopic)用于存儲學生已選的題目的信息,主要字段包括:學生學號,題目的 ID,出題教師 ID,選題學生屆數(shù),學生最終確定的題目和答辯小組評分和教師評分。 表 Bulletin表結構 列名 類型 長度 約束 備注 Id Int 11 主鍵,自增 自動 ID Title Varchar 100 非空 公告主題 Content Varchar 20200 公告內容 Date DateTime 發(fā)布時間 Click Int 11 點擊次數(shù) Filegroup Varchar 30 通知附件 ⑥ 站內信消息 站內通信消息表 (Message)存儲了教師與選課學生之間的交流信息,主要字段包括:消息 ID、消息內容,是否已讀,發(fā)件人 ID,收件人 ID 和發(fā)送時間信息。 表 File 表結構 列名 類型 長度 約束 備注 Id Int 11 主鍵,自增 自動 ID RefBy Int 11 非空 引