• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于MVC的公文管理系統(tǒng)的實(shí)現(xiàn)

    2014-12-31 00:00:00曾秋麗
    數(shù)字化用戶 2014年7期

    【摘 要】隨著計(jì)算機(jī)科學(xué)技術(shù)的發(fā)展,辦公自動(dòng)化已經(jīng)深入到我們工作生活的方法面面,公文管理系統(tǒng)應(yīng)運(yùn)而生。由于無紙化的操作,公文管理系統(tǒng)大大節(jié)約了公文流轉(zhuǎn)過程中各個(gè)環(huán)節(jié)的耗時(shí),提高了使用單位和部門的工作效率。本文使用mvc編程模式,運(yùn)用struts、hibernate、spring三大框架來實(shí)現(xiàn)公文管理系統(tǒng)中的發(fā)文管理、收文管理、審核管理、個(gè)人信息管理、用戶信息管理等主要功能。

    【關(guān)鍵詞】公文管理;MVC;struts;hibernate;spring

    一、引言

    辦公自動(dòng)化的產(chǎn)生和發(fā)展催生了許多辦公自動(dòng)化軟件產(chǎn)品,針對(duì)于辦公自動(dòng)化的核心——公文管理的軟件產(chǎn)品也有各種各樣的實(shí)現(xiàn)方式,而其基本功能要求上大致相同,不同的實(shí)現(xiàn)方式有其不同的優(yōu)點(diǎn)。本文采用MVC模式,運(yùn)用J2EE開發(fā)中常使用的三大框架struts、hibernate、spring來實(shí)現(xiàn)公文管理系統(tǒng)功能,提高了系統(tǒng)的開發(fā)效率與可重用性,降低的代碼冗余度,代碼具有更好的封裝性,MVC模式中各層之間并不透明,增加了代碼的安全性,各層之間耦合度低,當(dāng)系統(tǒng)需要增減功能時(shí),不用修改已經(jīng)寫好的部分的代碼,直接增加該功能的實(shí)現(xiàn)即可,代碼的可擴(kuò)展性良好。

    二、需求分析

    (一)公文管理系統(tǒng)簡(jiǎn)介

    本文實(shí)現(xiàn)公文管理系統(tǒng)的一般功能,公文管理系統(tǒng)的功能是進(jìn)行公文的統(tǒng)一管理,用戶登錄系統(tǒng)后,可以進(jìn)行發(fā)文操作,具有權(quán)限的用戶收取這篇文章,對(duì)文章進(jìn)行審核,通過審核的文章將會(huì)在發(fā)送該公文的用戶系統(tǒng)的被審公文中顯示,同時(shí)用戶可以下載公文中包含的附件。

    (二)功能分析

    1、用戶信息管理。對(duì)用戶及用戶信息的管理即是對(duì)用戶資料檔案、用戶的分類、用戶的優(yōu)先級(jí)別等信息的管理,在公文管理系統(tǒng)中,發(fā)文與收文操作都與用戶信息有關(guān)聯(lián)。

    2、個(gè)人信息管理。個(gè)人信息管理即用戶對(duì)自己信息的維護(hù),實(shí)現(xiàn)修改密碼和用戶名等,管理員用戶和普通可以自定義自己的用戶名及密碼,但是root用戶不能修改自己信息。

    3、公文管理

    公文管理包括兩個(gè)子功能:收文管理和發(fā)文管理

    發(fā)文管理

    發(fā)文管理的主要功能需求如下:

    編輯公文:用戶可以通過一般的輸入方式錄入公文,也可以通過上傳文件的方式實(shí)現(xiàn)公文的錄入,普通用戶可以修改自己發(fā)布的公文,被選作公文接收者的用戶可以修改自己發(fā)布的公文,審核其收到的公文[2]

    公文查詢:系統(tǒng)可實(shí)現(xiàn)對(duì)全部公文按創(chuàng)建公文用戶查詢,并將查詢結(jié)果按時(shí)間排序[3]

    公文導(dǎo)出:系統(tǒng)實(shí)現(xiàn)了對(duì)公文進(jìn)行附件上傳錄入的模式,同時(shí)也實(shí)現(xiàn)了公文附件下載,用戶可以通過將公文附件下載保存到本地機(jī)進(jìn)行查看,打印等操作[3]

    (2) 收文管理

    收文管理的主要功需求能如下:

    收文登記:自動(dòng)完成收文

    公文查詢:對(duì)全部公文按條件查詢,并將查詢結(jié)果按時(shí)間排序[3]

    公文導(dǎo)出:可以將公文下載到本地機(jī)上進(jìn)行修改,查看等操作[3]

    公文辦理:授權(quán)管理員可對(duì)自己收到的文件進(jìn)行審批工作

    (三)系統(tǒng)活動(dòng)圖

    三、MVC模式與主要實(shí)現(xiàn)技術(shù)

    (一) MVC模式

    MVC是一種使用MVC(Model View Controller 模型-視圖-控制器)設(shè)計(jì)創(chuàng)建Web應(yīng)用程序的模式[1]。

    Model(模型)表示應(yīng)用程序核心,是應(yīng)用程序中用于處理應(yīng)用程序數(shù)據(jù)邏輯的部分,通常模型對(duì)象負(fù)責(zé)在數(shù)據(jù)庫中存取數(shù)據(jù)。

    View(視圖)顯示數(shù)據(jù),是應(yīng)用程序中處理數(shù)據(jù)顯示的部分,通常是依據(jù)模型數(shù)據(jù)創(chuàng)建的。

    Controller(控制器)處理輸入即寫入數(shù)據(jù)庫記錄,是應(yīng)用程序中處理用戶交互的部分。通??刂破髫?fù)責(zé)從視圖讀取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù)。

    MVC分層有助于管理復(fù)雜的應(yīng)用程序,可以在一個(gè)時(shí)間內(nèi)專門關(guān)注一個(gè)方面。同時(shí)也讓應(yīng)用程序的測(cè)試更加容易。MVC分層同時(shí)也簡(jiǎn)化了分組開發(fā)。不同的開發(fā)人員可同時(shí)開發(fā)視圖、控制器邏輯和業(yè)務(wù)邏輯。

    (二)主要實(shí)現(xiàn)技術(shù)

    1、JSP技術(shù)

    Java Server Pages(JSP)是一種實(shí)現(xiàn)普通靜態(tài)HTML和動(dòng)態(tài)HTML混合編碼的技術(shù)。JSP頁面由HTML代碼和嵌入其中的JAVA代碼所組成。服務(wù)器在頁面被客戶端所請(qǐng)求以后對(duì)這些JAVA代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。

    2、Struts

    Struts是Apache基金會(huì)的一個(gè)開源項(xiàng)目,是應(yīng)有最廣泛的Java Web開發(fā)框架。Struts提供通用的MVC體系結(jié)構(gòu),把傳統(tǒng)的Web開發(fā)(Servlet+JSP)分成Model(模型層)、View(視圖層)、Control(控制層)三部分,使設(shè)計(jì)思路更加清晰。其中Model層專注于業(yè)務(wù)邏輯(即數(shù)據(jù)的存儲(chǔ)、處理等),View專注于數(shù)據(jù)在瀏覽器端的顯示,Control層連接Model層與View層[4]。Struts有著詳細(xì)的文檔、廣泛的支持。其作用是接收用戶請(qǐng)求,調(diào)用業(yè)務(wù)邏輯代碼,轉(zhuǎn)發(fā)到正確的頁面。在struts中,所有的控制邏輯都是利用struts-config.xml文件來進(jìn)行配置的。

    3、Spring

    Spring是一個(gè)輕量級(jí)MVC框架,不需要特殊的容器支持,不依賴于特定的規(guī)范如J2EE規(guī)范等, Spring不提供某種功能,它只是將所有的組件部署到Spring中,管理、維護(hù)、執(zhí)行它們,因此Spring也被稱為輕量級(jí)“容器”。Spring最重要的思想是Inversion of Control(控制反轉(zhuǎn)或反向控制),或者稱為Dependency Injection(依賴注入),負(fù)責(zé)根據(jù)配置信息,創(chuàng)建不同的數(shù)據(jù)訪問層及業(yè)務(wù)邏輯層的實(shí)例,并將其注入到業(yè)務(wù)邏輯層與表現(xiàn)層中,從而實(shí)現(xiàn)三個(gè)層次的解耦。

    4、Hibernate

    Hibernate是一種ORM框架,使用簡(jiǎn)單、功能強(qiáng)大、對(duì)所有的數(shù)據(jù)庫都有良好的支持。Hibernate能直接操作POJO,并且是一種輕量級(jí)的框架,不依賴于任何容器。在Hibernate中,Hibernate充當(dāng)了Dao層,根據(jù)POJO與實(shí)體類的映射配置自動(dòng)生成相應(yīng)的SQL語句。從控制臺(tái)輸出可以看到Hibernate生成的SQL語句。當(dāng)實(shí)體類發(fā)生變化時(shí),只需修改實(shí)體類配置。

    四、公文管理系統(tǒng)的實(shí)現(xiàn)

    (一)視圖層的實(shí)現(xiàn)

    視圖層采用實(shí)現(xiàn)了MVC模式的struts框架來實(shí)現(xiàn)

    1、Model層實(shí)現(xiàn):作用是向Action對(duì)象提供數(shù)據(jù)

    package com.qlzeng.documentManager.model;

    public class User {

    private int userId;

    private int level;

    … …

    public int getLevel() {

    return level; }

    public void setLevel(int level) {

    this.level = level;}

    public int getUserId() {

    return userId;}

    … …

    }

    2、View層實(shí)現(xiàn):即頁面設(shè)計(jì),實(shí)現(xiàn)主要包括 jsp 文件、css 文件

    <%@ page language=\"java\" contentType=\"text/html; charset=GB18030\" pageEncoding=\"GB18030\"%>

    <%@include file=\"/common/common.jsp\" %>

    <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">

    修改用戶

    ……

    3、Controller層實(shí)現(xiàn)

    (1) 編寫Action類實(shí)現(xiàn)對(duì)Jsp頁面代碼的隱藏

    public ActionForward modify(ActionMapping mapping, ActionForm form,

    HttpServletRequest request, HttpServletResponse response)

    throws Exception {UserForm uf = (UserForm)form;

    User user = manager4User.findUserById(uf.getUserId());

    if (uf.getUsername() != 1 uf.getPassword() != 1 uf.getPassword() != \"\" uf.getUsername() != 1) {

    if(uf.getUserId() != 1) {

    BeanUtils.copyProperties(user, uf);

    manager4User.modifyUser(user);

    }

    }

    request.getSession().setAttribute(\"user\", user);

    return mapping.findForward(\"user_modify_success\");

    }

    (2) 通過Struts-config.xml文件控制頁面跳轉(zhuǎn)

    name=\"userForm\"

    scope=\"request\"

    parameter=\"method\"

    >

    (二)控制器層的實(shí)現(xiàn)

    控制器層也稱作業(yè)務(wù)邏輯層,通過Spring框架來實(shí)現(xiàn),通過對(duì)Spring的配置,實(shí)現(xiàn)Spring、struts和hibernate的集成。并且提供實(shí)現(xiàn)業(yè)務(wù)邏輯的接口,便于視圖層訪問模型層。

    package com.qlzeng.documentManager.manager;

    import ……

    public interface Manager4User {

    public User findUserById(int userId);

    public PagerModel searchUsers();

    public void addUser(User user);

    public void deleteUser(int userId);

    public void modifyUser(User user);

    public User login(String username, String password, HttpServletRequest request);

    }

    (三)模型層的實(shí)現(xiàn)

    模型層也叫數(shù)據(jù)訪問層,通過hibernate框架來實(shí)現(xiàn),其功能有兩個(gè),其一為配置數(shù)據(jù)庫服務(wù)器類型,實(shí)現(xiàn)與數(shù)據(jù)庫連接,其二為映射實(shí)體類與數(shù)據(jù)表,持久化對(duì)象。

    五、結(jié)語

    公文管理系統(tǒng)被廣泛運(yùn)用于各種企事業(yè)單位中,本文提供了一種基于MVC模式的公文管理系統(tǒng)的實(shí)現(xiàn)方式,使得一個(gè)實(shí)現(xiàn)了基本公文管理功能的系統(tǒng)可以在加入不同使用部門所特有的業(yè)務(wù)邏輯功能后適用于不同的單位,具有較高的通用性。

    參考文獻(xiàn):

    [1]孫福振,李艷,李業(yè)剛,J2EE平臺(tái)上MVC設(shè)計(jì)模式的研究與實(shí)現(xiàn)[J],山東理工大學(xué)學(xué)報(bào),2006, 20(2),P50-51.

    [2]劉先偉,基于.NET的政府協(xié)同辦公自動(dòng)化系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D],電子科技大學(xué),2010.

    [3]謝瑤,湖南人文科技學(xué)院公文流轉(zhuǎn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D],山東大學(xué),2011.

    [4]王經(jīng)緯,船舶票務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D],大連海事大學(xué),2011.

    作者簡(jiǎn)介:曾秋麗(1990.9--)貴州大學(xué),電子信息學(xué)院 ,電子與通信工程專業(yè)。

    文昌市| 绥中县| 民权县| 潍坊市| 永兴县| 九龙城区| 锡林郭勒盟| 东平县| 绥江县| 江北区| 永平县| 秦安县| 固原市| 沙田区| 新乐市| 永济市| 乳源| 延川县| 乌什县| 天水市| 噶尔县| 黔西县| 万全县| 普洱| 化德县| 中宁县| 石泉县| 手机| 任丘市| 射阳县| 武宁县| 乐东| 长汀县| 榆中县| 大城县| 海口市| 五寨县| 保康县| 皮山县| 祁门县| 浪卡子县|