




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于SSH框架的學(xué)工管理系統(tǒng)的設(shè)計與實現(xiàn)一、項目簡介(一)項目來源XXX學(xué)院是集教學(xué)研究、技術(shù)培訓(xùn)、項目開發(fā)、技術(shù)服務(wù)為一體的完善體系二級管理單位,以前的辦公管理,存在著管理復(fù)雜、煩瑣及信息冗余等弊端,而且由于不可避免的人為原因,總存在一些誤差,存在很大的不科學(xué)性。隨著電腦的普及和學(xué)院對協(xié)同辦公要求的提高,協(xié)同辦公的定義隨之擴展,將其提升到了智能化辦公的范疇。學(xué)院不僅需要解決日常辦公、基礎(chǔ)信息管理、信息交流等常規(guī)協(xié)同的功能,并且在即時溝通、數(shù)據(jù)共享、移動辦公等方面提出了更進一步的需求, 以提高他們工作效益和管理水平。根據(jù)學(xué)院本身的需要,設(shè)計了一個學(xué)工管理系統(tǒng),該統(tǒng)融合最新的企業(yè)OA辦公自動化管
2、理理念,支持智能查找,動態(tài)報表,及時交流等功能,容納大量數(shù)據(jù)的OA辦公系統(tǒng),提供低成本的,無紙化,可視化的自動化解決方案。該系統(tǒng)采用模塊化結(jié)構(gòu)設(shè)計、可擴展性強、易于維護、操作簡便為全院教職工提供良好的辦公手段和環(huán)境,使之準確、高效、心情愉快地工作。(二)項目功能學(xué)工辦自動化管理系統(tǒng)主要包括:日常管理、班主任管理、公寓管理、團委管理、黨務(wù)管理、系統(tǒng)管理這6個模塊。本案例主要說明系統(tǒng)管理模塊,該模塊在整個系統(tǒng)中及其的重要,該模塊主要有:人員角色管理、角色管理、權(quán)限管理、角色權(quán)限管理、分欄管理、部門管理、學(xué)生登錄信息管理這七個小功能,不同用戶由于權(quán)限不同屬于不同的角色,角色與權(quán)限相對應(yīng)。增加一個用戶
3、時同時設(shè)置該用戶的角色,有了角色就具備了一定的權(quán)限。二、系統(tǒng)開發(fā)技術(shù)SSH2框架將服務(wù)器端應(yīng)用分為DAO層、Service層、Action控制層、Spring容器層、視圖層,各層之間通過接口聯(lián)系。DAO層完成數(shù)據(jù)庫增加、刪除、修改等細節(jié),DAO層將底層數(shù)據(jù)庫訪問操作和業(yè)務(wù)邏輯分開,對業(yè)務(wù)層提供面向?qū)ο蟮脑L問接口。Service業(yè)務(wù)層提供了處理應(yīng)用程序的業(yè)務(wù)邏輯和業(yè)務(wù)校驗??刂茖拥目刂破鰽ction接受用戶的輸入并調(diào)用業(yè)務(wù)層的業(yè)務(wù)方法和表示層的組件去完成用戶的請求。服務(wù)器的各種組件的生成都是由Spring容器來控制,Spring容器提供了依賴注入、實例管理、事務(wù)處理等服務(wù)。視圖層是用戶看到并與之
4、交互的界面,視圖向用戶顯示相關(guān)的數(shù)據(jù),并能接受用戶的輸入數(shù)據(jù),但不能進行任何實際的業(yè)務(wù)處理。SSH2架構(gòu)設(shè)計圖如圖2-1所示。視圖JSPStruts Struts2 過濾器、攔截器 Spring 容器ActionServiceDAOPOJO數(shù)據(jù)庫圖2-1 SSH2架構(gòu)設(shè)計圖SSH2框架的工作流程說明:l 將Struts2視圖層產(chǎn)生的請求提交給控制層,控制層根據(jù)配置文件決定使用哪些攔截器、Action類。l 請求經(jīng)過一系列攔截器,根據(jù)不同的請求級別攔截器做出不同的處理。l 調(diào)用Struts2的Action,Spring容器通過配置文件中Bean 的ID自動裝配Action。l Spring容器定
5、位Action對應(yīng)的業(yè)務(wù)邏輯。l 業(yè)務(wù)邏輯層把對應(yīng)的業(yè)務(wù)處理請求轉(zhuǎn)發(fā)給DAO層。l DAO層將業(yè)務(wù)邏輯層的數(shù)據(jù)封裝完成后,通過持久層的Hibernate框架映射的POJO對象與數(shù)據(jù)進行交互。應(yīng)用SSH2架構(gòu)設(shè)計可以充分發(fā)揮它們的優(yōu)勢,實現(xiàn)了多層系統(tǒng)開發(fā)的低偶合,不僅減少了重復(fù)開發(fā)工作量,縮短開發(fā)時間,降低開發(fā)成本,同時,使程序設(shè)計更加合理,程序運行更加穩(wěn)定。三、需求分析(一)需求說明1系統(tǒng)業(yè)務(wù)概述學(xué)工辦自動化管理系統(tǒng)主要包括:日常管理、班主任管理、公寓管理、團委管理、黨務(wù)管理、系統(tǒng)管理這6個模塊。本案例主要說明系統(tǒng)管理模塊,該模塊在整個系統(tǒng)中及其的重要,該模塊主要有:人員角色管理、角色管理、權(quán)
6、限管理、角色權(quán)限管理、分欄管理、部門管理、學(xué)生登錄信息管理這七個小功能,不同用戶由于權(quán)限不同屬于不同的角色,角色與權(quán)限相對應(yīng)。增加一個用戶時同時設(shè)置該用戶的角色,有了角色就具備了一定的權(quán)限。2系統(tǒng)用例用例圖用來確定需求的范圍,這些需求是設(shè)計開發(fā)的依據(jù)。用例圖將系統(tǒng)看作黑盒,從外部執(zhí)行者的角度來理解系統(tǒng)。圖中的用例是用戶與計算機之間一次典型的交互作用,在UML中,用例表示為一個橢圓,執(zhí)行者是指用戶在系統(tǒng)中用類似人的圖形來表示的,但執(zhí)行者未必是人。例如,執(zhí)行者可以是一個外界系統(tǒng),該外界系統(tǒng)可能需要從當前系統(tǒng)中獲取信息,與當前系統(tǒng)進行交互。根據(jù)學(xué)生管理系統(tǒng)項目需求分析,得出系統(tǒng)主要用例圖,如下圖所示
7、。主要角色(Actor)包括系統(tǒng)管理員、學(xué)工管理員、班主任、學(xué)生。圖3-1 系統(tǒng)管理用例系統(tǒng)管理是學(xué)工管理系統(tǒng)必備的功能之一。系統(tǒng)管理主要包括權(quán)限管理、分欄管理、角色管理、角色權(quán)限設(shè)置、人員角色設(shè)置等。不同用戶由于權(quán)限不同屬于不同的角色,角色與權(quán)限相對應(yīng)。增加一個用戶時同時設(shè)置該用戶的角色,有了角色就具備了一定的權(quán)限。(二)功能需求描述1系統(tǒng)管理系統(tǒng)管理功能是學(xué)工管理系統(tǒng)中核心模塊。該功能主要是針對用戶權(quán)限進行管理,學(xué)工管理系統(tǒng)有不同的用戶如學(xué)生、班主任、學(xué)工管理員、系統(tǒng)管理員等,不同的用戶具有不同的權(quán)限。通過權(quán)限與角色、人員與角色的設(shè)定,用戶具有某種角色就有特定的權(quán)限,不同的用戶由于角色的不
8、同擁有不同的權(quán)限。系統(tǒng)管理設(shè)計的思路是:給不同用戶賦予不同的角色,不同的角色設(shè)置了不同的權(quán)限,不同的權(quán)限所擁有的功能又不同,這個主要體現(xiàn)在對權(quán)限分欄的設(shè)置,根據(jù)功能分欄的不同,功能頁面就是根據(jù)這些關(guān)系的設(shè)置確定的。該模塊主要分為:人員角色管理、角色管理、權(quán)限管理、角色權(quán)限管理、分欄管理這五個功能。系統(tǒng)提供了系統(tǒng)管理員,可以對所有用戶進行管理控制。該模塊的功能結(jié)構(gòu)圖如下:圖3-2系統(tǒng)管理功能結(jié)構(gòu)圖l 數(shù)據(jù)需求用戶人員信息,角色信息,權(quán)限信息,角色權(quán)限信息,分欄信息,用戶權(quán)限信息.l 用戶接口系統(tǒng)管理員通過頁面提交各類信息的功能。l 用戶權(quán)限系統(tǒng)管理員:所有功能。l 報表需求暫無。2角色管理角色管
9、理是系統(tǒng)管理員創(chuàng)建角色,查看角色,修改角色以及刪除角色。系統(tǒng)角色管理如下圖所示:圖3-3角色管理結(jié)構(gòu)圖四、系統(tǒng)設(shè)計(一)數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計主要是用SQL Server2000進行設(shè)計的,在設(shè)計的前期還運用了powerdesigner進行數(shù)據(jù)庫的輔助設(shè)計。數(shù)據(jù)庫的設(shè)計的好壞直接影響到,整個項目的好壞,因此數(shù)據(jù)庫的設(shè)計很重要。1系統(tǒng)管理的表視圖系統(tǒng)模塊中共涉及到七張核心表,同時它也不同程度的和教師用戶,學(xué)生用戶表之間都有相關(guān)的聯(lián)系,分別是:角色表、權(quán)限角色表、角色表、權(quán)限表、用戶信息表分欄表、部門表,Powerdesigner中的系統(tǒng)管理pdm表結(jié)構(gòu)如圖4-1 所示。圖4-1 pdm表結(jié)構(gòu)如圖P
10、owerdesigner中的由pdm表結(jié)構(gòu)生成的系統(tǒng)管理cdm表結(jié)構(gòu)如圖4-2所示:圖4-2 cdm表結(jié)構(gòu)圖(二)詳細設(shè)計1系統(tǒng)管理(STUOA-XTGL)該系統(tǒng)管理主要包括的:人員角色管理、角色管理、權(quán)限管理、角色權(quán)限管理、分欄管理、部門管理、學(xué)生登錄信息管理這七個模塊。系統(tǒng)結(jié)構(gòu)圖如4-3所示。圖4-3 系統(tǒng)結(jié)構(gòu)圖分欄管理(STUOA-XTGL-COLUMN)l 程序描述系統(tǒng)管理員管理分欄,可以根據(jù)需要添加,修改,刪除,修改分欄。l 功能分欄功能結(jié)構(gòu)圖如圖4-4所示。圖4-4分欄結(jié)構(gòu)圖u 修改分欄n 進入分欄修改頁面;n 填寫要修改的分欄信息;n 發(fā)送提交;u 查看分欄查看所有分欄信息列表;
11、u 刪除分欄有不需要的分欄,可以刪除分欄;u 添加分欄n 填寫分欄信息;n 發(fā)送提交;l 流程邏輯添加分欄業(yè)務(wù)流程圖如4-5所示。圖4-5分欄業(yè)務(wù)流程圖l 算法添加分欄算法流程圖如圖4-6所示。圖4-6分欄算法流程圖添加分欄:u 操作是添加分欄;u 獲取頁面?zhèn)鬟^來的分欄對象;u 調(diào)用ColumnService.isExistColumn(String columnName)方法判斷是否存在同樣的分欄名的對象,如果不存在就把該對象添加到數(shù)據(jù)庫中,如果已經(jīng)存在就返回到添加的頁面;u 調(diào)用columnService中的addColumn(Column column)的方法添加Column對象到數(shù)據(jù)庫
12、中;u 判斷添加結(jié)果,如果添加成功了就跳轉(zhuǎn)到顯示分欄列表的頁面,如果不成功就會返回到添加的頁面;經(jīng)過上面對系統(tǒng)的數(shù)據(jù)庫以及對該部分的業(yè)務(wù)的詳細設(shè)計,為接著的代碼編寫做好了充分的準備。五、系統(tǒng)實現(xiàn)與測試該部分是對系統(tǒng)實現(xiàn)和測試的一個闡述,主要從開發(fā)平臺、程序結(jié)構(gòu)圖、項目模塊頁面、分欄管理模塊的核心代碼、系統(tǒng)測試,這幾方面進行詳細的說明。(一)開發(fā)平臺數(shù)據(jù)庫:SQL Server平臺技術(shù):Spring2.0+Hibernate+JavaScript+struts2操作系統(tǒng):Windows XP(二)程序結(jié)構(gòu)圖圖5-1stuOA程序結(jié)構(gòu)圖stuOA為項目的名稱,也是項目的根目錄。WebRoot為We
13、b目錄,包括圖片目錄images和JSP文件。WEB-INF目錄、lib目錄及web.xml依然為固定的目錄和文件。Src目錄包含如下幾個部分:1包l Action包(com.txsm.stuOA.action);l Service包 (com. txsm. stuOA.service);l DAO包(com. txsm. stuOA.dao);l Util包com. txsm. stuOA.util);l Test包(com. txsm. stuOA.test);l Model包(com. txsm. stuOA.model);l service和dao包中有接口包和實現(xiàn)包2 配置文件lll
14、(三)項目模塊頁面系統(tǒng)管理功能是學(xué)工管理系統(tǒng)中核心模塊。該功能主要是針對用戶權(quán)限進行管理,學(xué)工管理系統(tǒng)有不同的用戶如學(xué)生、班主任、學(xué)工管理員、系統(tǒng)管理員等,不同的用戶具有不同的權(quán)限。通過權(quán)限與角色、人員與角色的設(shè)定,用戶具有某種角色就有特定的權(quán)限,不同的用戶由于角色的不同擁有不同的權(quán)限。該模塊主要分為:人員角色管理、角色管理、權(quán)限管理、角色權(quán)限管理、分欄管理這些功能。系統(tǒng)用戶登錄頁面根據(jù)用戶的類型不同,進入不同的操作界面。圖5-2系統(tǒng)用戶登錄頁面系統(tǒng)管理的主頁面系統(tǒng)提供了系統(tǒng)管理員,可以對所有用戶進行管理控制。管理員可以對整個系統(tǒng)的用戶的進行管理,主要管理系統(tǒng)中用戶的角色和權(quán)限。圖5-3系統(tǒng)管
15、理的主頁面分欄管理的主頁面點擊菜單欄“分欄管理”鏈接,如圖5-4,管理員對系統(tǒng)中所涉及到的分欄進行管理,可以對分欄進行增加,刪除,修改,查看。圖5-4分欄管理的主頁面人員角色添加管理頁面點擊“添加”鏈接,如圖5-5,管理員對系統(tǒng)中個角色的用戶進行添加。圖5-5人員角色添加管理頁面(四)分欄管理模塊的核心代碼根據(jù)上面詳細設(shè)計中著重介紹的是分欄管理中的修改功能的實現(xiàn),所以該部分的代碼主要就是該功能的實現(xiàn)代碼。AupdateColumn.jsp <body> <div align="center"> <h5>分欄信息修改</h5>
16、<table> <s:form action="columnManagerControl!update.action" theme="simple"> <s:hidden name="id" value="%#session.column.columId"/> <tr> <td>原分欄名稱</td> <td><s:property value="#session.column.columnName" /&g
17、t;</td> </tr> <tr> <td>新的分欄名稱</td> <td><s:textfield name="newColumnName" /></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" class="btn" value="保存"/>
18、; <input type="reset" class="btn" value="重置"/> </td> </tr> </s:form> </table></div></body>BColumnAction.java package com.txsm.stuOA.action;import com.txsm.stuOA.service.*;import com.txsm.stuOA.vo.*;import java.util.*;
19、import javax.servlet.http.HttpServletRequest;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class ColumnAction extends ActionSupport private static final long serialVersionUID = 1L;/屬性column,用于接受從用戶界面輸入的
20、信息protected Column column;/private int id;/屬性columnService,用于幫助action完成相關(guān)的操作protected IColumnService columnService;public String execute()throws Exceptionreturn null;/由columnservice層幫助完成public String updatePre()throws Exception String result="" /獲取id參數(shù) HttpServletRequest request=ServletAct
21、ionContext.getRequest(); String idStr=request.getParameter("id"); if(idStr=null) idStr="0" int id=Integer.parseInt(idStr); System.out.print("id="+id); Column column=columnService.searcherColumnByID(id); System.out.print("column="+column.toString(); if(column!=
22、null) /將column保存到會話中 ActionContext ctx=ActionContext.getContext(); Map map=ctx.getSession(); map.put("column", column); result="update" else result="error" return result;/顯示所有分欄信息public String listAllColumn() throws Exception String result = ""List<Column&g
23、t; list = new ArrayList(); list = columnService.searcherAllColumn();System.out.println("list="+list);if (list = null) result = "error" else ActionContext ctx = ActionContext.getContext();Map map = ctx.getSession();map.put("allColumn", list);result="show"return
24、 result;public String update() throws ExceptionString result=""HttpServletRequest request=ServletActionContext.getRequest();String idStr=request.getParameter("id");/得到頁面輸入的新的信息String newColumnName=request.getParameter("newColumnName");if(idStr=null)idStr="0"in
25、t id=Integer.parseInt(idStr);if(newColumnName=null) newColumnName=""column.setColumId(id);column.setColumnName(newColumnName);boolean iresult=columnService.updateColumn(column);if(iresult)result=this.listAllColumn();elseresult="error"return result;public Column getColumn() return
26、 column;public void setColumn(Column column) this.column = column;public IColumnService getColumnService() return columnService;public void setColumnService(IColumnService columnService) this.columnService = columnService;package com.txsm.stuOA.dao.impl;import java.util.*;import org.hibernate.Query;
27、import org.hibernate.Session;import org.hibernate.Transaction;import com.txsm.stuOA.dao.*;import com.txsm.stuOA.vo.*;public class ColumnDAO extends BaseDAO implements IColumnDAO / 更新分欄public boolean updateColumn(Column column) boolean result = false;try Session session = getSession();Transaction tra
28、ns = session.beginTransaction();session.update(column);mit();System.out.println("update success");result = true;session.close(); catch (Exception e) e.printStackTrace();return result;/ 查詢所有的分欄對象加入到列表中,并返回public List searcherAllColumn() List list = new ArrayList();try Session session = getSession();String hql = "from Column column"
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東城市建設(shè)職業(yè)學(xué)院《心理咨詢與輔導(dǎo)》2023-2024學(xué)年第二學(xué)期期末試卷
- 佳木斯職業(yè)學(xué)院《熱工與熱機》2023-2024學(xué)年第二學(xué)期期末試卷
- 東北師范大學(xué)《液壓與氣動》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京語言大學(xué)《水資源利用》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江工業(yè)大學(xué)之江學(xué)院《生態(tài)環(huán)境保護基礎(chǔ)(三)》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江越秀外國語學(xué)院《市場營銷學(xué)概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 中央美術(shù)學(xué)院《課堂教學(xué)技能訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 石家莊理工職業(yè)學(xué)院《災(zāi)害衛(wèi)生學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長垣烹飪職業(yè)技術(shù)學(xué)院《電工及電子學(xué)(二)》2023-2024學(xué)年第二學(xué)期期末試卷
- 益陽醫(yī)學(xué)高等專科學(xué)?!堕_發(fā)技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 出師表(選擇題)答案版
- (正式版)JBT 9229-2024 剪叉式升降工作平臺
- (高清版)DZT 0208-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 金屬砂礦類
- (高清版)DZT 0368-2021 巖礦石標本物性測量技術(shù)規(guī)程
- 礦山開采與環(huán)境保護
- 企業(yè)事業(yè)部制的管理與監(jiān)督機制
- 兒童體液平衡及液體療法課件
- 勞動防護用品培訓(xùn)試卷帶答案
- ORACLE執(zhí)行計劃和SQL調(diào)優(yōu)
- 2024年鐘山職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 2024年湖南交通職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
評論
0/150
提交評論