亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

        【關(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開(kāi)發(fā)中常使用的三大框架struts、hibernate、spring來(lái)實(shí)現(xiàn)公文管理系統(tǒng)功能,提高了系統(tǒng)的開(kāi)發(fā)效率與可重用性,降低的代碼冗余度,代碼具有更好的封裝性,MVC模式中各層之間并不透明,增加了代碼的安全性,各層之間耦合度低,當(dāng)系統(tǒng)需要增減功能時(shí),不用修改已經(jīng)寫(xiě)好的部分的代碼,直接增加該功能的實(shí)現(xiàn)即可,代碼的可擴(kuò)展性良好。

        二、需求分析

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

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

        (二)功能分析

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

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

        3、公文管理

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

        發(fā)文管理

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

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

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

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

        (2) 收文管理

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

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

        公文查詢(xún):對(duì)全部公文按條件查詢(xún),并將查詢(xún)結(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ù)庫(kù)中存取數(shù)據(jù)。

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

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

        MVC分層有助于管理復(fù)雜的應(yīng)用程序,可以在一個(gè)時(shí)間內(nèi)專(zhuān)門(mén)關(guān)注一個(gè)方面。同時(shí)也讓?xiě)?yīng)用程序的測(cè)試更加容易。MVC分層同時(shí)也簡(jiǎn)化了分組開(kāi)發(fā)。不同的開(kāi)發(fā)人員可同時(shí)開(kāi)發(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頁(yè)面由HTML代碼和嵌入其中的JAVA代碼所組成。服務(wù)器在頁(yè)面被客戶(hù)端所請(qǐng)求以后對(duì)這些JAVA代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶(hù)端的瀏覽器。

        2、Struts

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

        3、Spring

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

        4、Hibernate

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

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

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

        視圖層采用實(shí)現(xiàn)了MVC模式的struts框架來(lái)實(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):即頁(yè)面設(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\">

        修改用戶(hù)

        ……

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

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

        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) 通過(guò)Struts-config.xml文件控制頁(yè)面跳轉(zhuǎn)

        name=\"userForm\"

        scope=\"request\"

        parameter=\"method\"

        >

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

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

        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ù)訪(fǎng)問(wèn)層,通過(guò)hibernate框架來(lái)實(shí)現(xiàn),其功能有兩個(gè),其一為配置數(shù)據(jù)庫(kù)服務(wù)器類(lèi)型,實(shí)現(xiàn)與數(shù)據(jù)庫(kù)連接,其二為映射實(shí)體類(lèi)與數(shù)據(jù)表,持久化對(duì)象。

        五、結(jié)語(yǔ)

        公文管理系統(tǒng)被廣泛運(yùn)用于各種企事業(yè)單位中,本文提供了一種基于MVC模式的公文管理系統(tǒng)的實(shí)現(xiàn)方式,使得一個(gè)實(shí)現(xiàn)了基本公文管理功能的系統(tǒng)可以在加入不同使用部門(mén)所特有的業(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é)院 ,電子與通信工程專(zhuān)業(yè)。

        亚洲av国产av综合av卡| 久久亚洲宅男天堂网址| 成人精品一区二区三区中文字幕| 亚洲国产韩国欧美在线| 精品高潮呻吟99av无码视频| 加勒比无码专区中文字幕| 午夜无码片在线观看影院y| 久久精品国产亚洲av调教| 凹凸国产熟女精品视频app| 91网站在线看| 超碰97人人做人人爱少妇| 亚洲啪av永久无码精品放毛片| 亚欧美日韩香蕉在线播放视频| 亚洲av无码av在线播放| 国产丝袜美腿精品91在线看| 婷婷四房播播| 国偷自拍av一区二区三区| 女同同志熟女人妻二区| 国产精品成人av在线观看| 日韩av高清无码| 久久久精品人妻一区亚美研究所 | 国产黄色三级三级三级看三级| 久久免费看视频少妇高潮| 日本二区三区视频免费观看| 亚洲免费视频播放| 亚洲一区二区三区综合免费在线| 亚洲伊人av天堂有码在线| 国产一区二区三区毛片| 五月天国产成人av免费观看| 国产欧美va欧美va香蕉在线观 | 中文字幕乱码琪琪一区| 久久aⅴ无码av免费一区| 无码精品人妻一区二区三区人妻斩| 亚洲精品国产精品国自产观看| 岛国大片在线免费观看| 青青草成人免费在线视频| 亚洲av免费手机在线观看| 久久人妻少妇嫩草av| 日韩精品一区二区三区在线观看的| 国产精品美女一区二区三区| 蜜桃视频高清在线观看|