999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Struts2的Web控制層研究及應用*

2016-06-21 09:20:37
計算機與數字工程 2016年5期

梁 弼

(四川文理學院計算機學院 達州 635000)

?

基于Struts2的Web控制層研究及應用*

梁弼

(四川文理學院計算機學院達州635000)

摘要在分析目前多層Web應用存在維護難、穩定差等問題的情況下,結合三層架構和MVC思想,論文提出了一種基于Struts2的Web控制層實現方案,并將其應用于可移動文物圖片管理系統的控制層部分,通過該實例詳細闡述了該方案的具體實施過程。實際應用表明,該控制層方案不僅具有可行性,而且它能有效解決業務邏輯層沉重的負擔,并為開發穩定可靠、維護性好的Web應用程序奠定了基礎。

關鍵詞控制層方案; Struts2技術; 切實可行; 多層Web; 穩定可靠

Class NumberTP311

1引言

伴隨著Internet及Web應用的快速發展,大型化、復雜化的Web應用已經越來越普遍,這使得應用程序不但后期維護變得繁瑣,而且程序運行的穩定性也受到嚴峻考驗,傳統的三層架構(即表示層、業務邏輯層和數據訪問層)已不能滿足當前復雜Web應用開發的需求[1]。結合三層架構和MVC思想(即模型-控制-視圖),本文從原業務邏輯層中分離出新的一層(即控制層),該層專門用來接收和轉發來自表示層的用戶請求,這樣大大減輕原業務邏輯層沉重負擔以及代碼量。為了實現該Web控制層功能,本文使用目前主流的Struts2框架技術來構建完成,并將其所應用于可移動文物圖片管理系統的控制層部分。實際開發證明,所構建的控制層不但切實可行,而且能提高多層Web應用程序的維護性及穩定性。

2Struts2框架技術

2.1Struts2簡介

Struts2是在Struts1和WebWork技術基礎上進行合并的全新框架技術,它以WebWork為核心,采用攔截器的機制來處理用戶請求,這樣設計的好處是讓業務邏輯控制器能夠與Servlet API完全脫離,所以Struts 2可以理解為WebWork的更新產品[2]。雖然Struts2與Struts1在命名上差別甚微,但實際上Struts2相對于Struts1來講在體系結構上有著很大的差別,不過它繼承了Struts1結構清晰、簡單易用等優點。而且它使用了MVC設計模式,具有更好的可擴展性以及強大的功能。得益于這樣優點,目前Struts2已廣泛應用于大中型Web應用程序開發[3]。

2.2Struts2體系結構

Struts2的體系結構如圖1所示[4]。從圖1可以看出,經過初始化的Request經過Servlet容器進入一系列Filter中,接著調用FilterDispatcher,FilterDispatcher詢問ActionMapper來決定這個請求是否需要調用某個Action。若ActionMapper找到了Request與之對應的Action,FilterDispatcher則將把控制權轉交給ActionProxy,ActionProxy通過CongratulationManager詢問框架的struts.xml,找到需要調用的Action類。然后ActionProxy創建對應的ActionInvocation實例,接著調用Interceptor以及Action本身。Action處理完后返回Result,Result通過渲染常被設置為JSP或FreeMarker等的Template,然后再次執行Interceptor,最后根據web.xml中配置的Filter返回結果到表示層。

圖1 Struts2結構圖

3基于Struts2的Web控制層研究

3.1控制層介紹

控制層本身是對MVC中C的實現,主要負責接收并解析來自表示層的用戶請求,根據不同請求調用相應的業務邏輯處理方法對其分配處理,并依據當前的狀態數據及業務邏輯的處理結果選擇對應的視圖返回到表示層[5]。由于所有的請求都要經過控制層進行過濾轉發,這樣可以降低表示層組件之間,以及表示層和業務邏輯層組件之間的耦合度,提高每個組件的相對獨立性。而且控制層最后還決定把正確的視圖組件返回到表示層,可以減少表示層組件之間直接的、錯綜復雜的鏈接關系,這有利于Web應用程序后期擴展和維護。

3.2控制層方案設計

本文從原業務邏輯層分離出Web控制層,使其處于表示層和業務邏輯層之間,它是用戶請求和業務邏輯處理之間的橋梁。該控制層側重于控制Web應用程序的流程,而應用程序的具體邏輯則放在JavaBean中,這樣可以提高應用程序的靈活性和可重復性。為了增強本控制層的可行性,本文主要使用Struts2框架的Filter、Action及struts.xml等來構建完成,其中Filter是Struts2框架中的核心組件,主要負責接收Http請求,并根據struts.xml的配置信息,把請求轉發給相應的Action。Action類則充當用戶請求和業務邏輯處理之間的適配器,主要控制應用程序的流程,而不是實現應用程序的業務邏輯功能,這樣通過Filter、Action和struts.xml等組件來實現對用戶請求的控制轉發,進而減輕業務邏輯層的負擔。其具體設計如圖2所示[6]。

圖2 基于Struts2的Web控制層方案設計

由圖2可看出,該控制層方案有效地與上層的表示層以及下層的業務邏輯層分離,而且層間低耦合,層內高內聚,這有利于構建靈活性高、重用性強、易部署、易擴展、易維護的Web應用程序。

3.3控制層方案實現

在Web應用程序中控制層主要完成頁面間的導航以及響應用戶的點擊等操作[7]。使用Struts2來實現控制層方案主要包括四個方面的內容: 1) 環境搭建,將支持Struts2功能的Jar包導入Web應用程序中,以提供其開放的資源; 2) 主控制器配置,具體是在web.xml配置過濾器,它負責管理所有用戶請求的分發派遣; 3) 編寫各個模塊的Action類,它負責調用業務邏輯方法來處理用戶的具體請求; 4) 在struts.xml文件中配置頁面的導航,而且struts.xml是真正實現控制的文件,該文件指明了表示層請求需要執行的路徑、類、方法的名稱以及從Action返回需要生成的表示層頁面名稱,根據Action名字與類名的映射關系調用對應的Action對象實現對業務的控制。

4基于Struts2的Web控制層應用

本文將所提出的控制層方案應用于可移動文物圖片管理系統的控制層部分,通過本案例來詳細闡述該方案的具體實施過程。

4.1環境搭建

環境搭建是本控制層方案實施的第一步,也是使用Struts2框架技術最重要的一步。該可移動文物圖片管理系統的控制層以MyEclipse為開發平臺,Java為基本語言,Struts2技術為基礎。為了讓本系統能通過Struts2來實現控制層功能,需要將Struts2框架的核心類庫增加到應用中,即導入Struts2相關Jar包,如struts2-core-2.jar、xwork-core-2.jar、ognl-3.jar、freemarker-2.jar、commons-logging-1.jar、commons-fileupload-1jar以及commons-io-1.jar等,然后當運行系統時將會自動啟用Struts2的控制服務。

4.2配置web.xml

在web.xml中主要完成控制層的主控制器配置,即對StrutsPrepareAndExecuteFilter的配置,它的實質是一個過濾器或中央控制器,負責初始化整個Struts2框架并處理所有的用戶請求[8]。該過濾器包括了一些初始化參數的配置,有的參數指定了要加載的額外XML配置文件,這會對Struts2框架的行為有影響。本可移動文物圖片管理系統中所有的請求都需Struts2處理,因此在配置web.xml時所有用戶請求(/*)都交由該Struts2的Filter進行過濾,其核心配置如下:

……〈web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" ……〉

〈filter〉

〈filter-name〉struts2〈/filter-name〉

〈filter-class〉org.apache.struts2.dispatcher.ng.filter.

StrutsPrepareAndExecuteFilter〈/filter-class〉

〈/filter〉

〈filter-mapping〉

〈filter-name〉struts2〈/filter-name〉

〈url-pattern〉/*〈/url-pattern〉

〈/filter-mapping〉

……

〈/web-app〉

4.3編寫Action類

Action類又可稱為業務邏輯控制器,它才是Web應用程序的核心,也是控制層需要完成的主要內容,開發人員需要提供大量的Action類來對請求進行控制轉發,并在struts.xml中配置說明。而且Struts2技術采用低侵入式設計,因此不需要Action類繼承任何的Struts2基類,或者實現任何Struts2接口[9]。這樣Struts2的Action類就是一個普通的JavaBean,從而很好地實現了代碼重用。本可移動文物圖片管理系統控制層的Action類主要要:UserAction.java、AdminAction.java、CulturalRelicAction.java、PictureUploadAction.java、PictureDownloadAction.java、PicturePageAction.java以及MessageAction.java等,其中PictureUploadAction.java的核心代碼如下:

……public class PictureUploadAction {

……private File file; private String contentType; private String fileName;……

getXX()/setXX()方法……

User user; String pageto="index";

try {

DoUpload doUpload=new DoUpload();

pictureFileName=doUpload.fileUpload(file, "D:/uploadPic",fileName);

user=(User) request.getSession().getAttribute("user");

Userup userup=new Userup();

userup.setName(request.getParameter("name"));

班會課上我發給每人32開大的信箋5張,要求:請找你身邊熟悉的任何五位同學,每人用一張紙盡量找出他/她的閃光點(性格品行、學習生活勞動、為人處世等)寫出一兩點,最好有理有據(簡單事件概述),格式“×××同學:在我心中你是……的人,記得那天……(每當……時你總是……)”,下面落款真實姓名,表揚人就要大方。我還提醒他們寫的這些會給對方及其家長看到的。

userup.setDescrip(request.getParameter("descrip"));

userup.setCrTime(request.getParameter("crTime"));

userup.setOwner(user.getUsername());

userup.setPicUrl(request.getParameter("type"));

userup.setPicUrl(pictureFileName);……pageto="myuseruplist";

} catch (Exception e) {request.setAttribute("message", "文物圖片上傳失敗");}

request.setAttribute("message", "文物圖片上傳成功");return pageto;}

public String uploadother() {……}……}

4.4配置struts.xml

Struts.xml是真正實現控制轉發的文件,它是Web控制層的核心配置文件,負責管理應用程序中的Action[10]。在該文件中主要對Action的三個方面進行配置。第一,對Struts2的系列Action進行配置;第二,在配置Action同時也明確指定實現該Action具體的類;第三,配置在Action處理后返回不同的結果時,根據不同結果應該調用的相應視圖。這樣配置定義后,當一個請求經過Struts2過濾器進入Action控制器時,Struts2將會查詢struts.xml找出對應處理的類及方法,并把處理結果交給Struts2,Struts2會根據結果再查詢struts.xml找到對應的視圖返回到表示層[11]。本可移動文物圖片管理系統控制層的struts.xml配置文件主要有struts2-user.xml、struts2-admin.xml、struts2-culturalRelic.xml、struts2-pictureUpload.xml、struts2-pictureDownLoad.xml、struts2-picturePage.xml以及struts2-message.xml等,其中struts2-pictureDownload.xml的關鍵配置如下:

……〈struts〉

〈constant name="struts.multipart.maxSize" value="5010241024"/〉

〈package name="struts2-pictureDownload " extends="struts2-default" namespace="/" 〉

〈action name=" pictureDownload " class=" PictureDownloadAction "〉

〈param name="fileName"〉〈/param〉

〈result name="success" type="stream"〉

〈param name="contentType"〉text/plain〈/param〉

〈param name="contentDisposition"〉 attachment;filename="${fileName}"〈/param〉

〈param name="inputName"〉downloadFile〈/param〉〈/result〉

〈/action〉 ……

〈/package〉 〈/struts〉

最后,根據Action中Result的配置編寫相應的表示層頁面來顯示控制層響應結果,如index.jsp、login.jsp、pictureUpload.jsp、pictureDownload.jsp、message.jsp、success.jsp以及fail.jsp等。

5結語

由于多層Web應用的普及以及四層架構的出現,控制層的作用越來越重要。本文提出并論述了一種基于Struts2的控制層實現方案,并將其應用于可移動文物圖片管理系統的控制層部分。實踐證明該控制層方案使Web應用程序上下各層相互獨立、耦合度低,為大中型企業級應用程序開發提供了優勢,主要體現在: 1) 組件化便于在開發中劃分責任,有利于代碼重用; 2) 可以通過Action控制器控制應用程序全局流程; 3) 模塊化通過JavaBean實現新業務,無需修改整個應用,便于后期維護和擴展。并且基于該方案所實現的Web應用程序具有靈活性高、擴展性強、維護方便以及穩定性好等特點,而且該方案具有普遍性,值得推廣應用。

參 考 文 獻

[1] 魏乃堯.基于Struts2的輿情監控系統的設計與實現[D].濟南:山東大學,2013:3-45.

WEI Naiyao. Design and Implementation of Public Opinion Monitoring System Based on Struts2[D]. Jinan: Shandong University,2013:3-45.

[2] 沈磊.基于Struts2和Hibernate的RBAC模型設計與實現[D].南京:南京師范大學,2011:15-33.

SHEN Lei. Design and Implementation of RBAC Based on Struts2 and Hibernate[D]. Nanjing: Nanjing Normal University,2011:15-33.

[3] 曾軍.基于Struts2架構的工程項目管理系統設計與實現[D].長沙:湖南大學,2013:29-44.

ZENG Jun. Design and Implementation of Project Management System Based on Struts2 Architecture[D]. Changsha: Hunan University,2013:29-44.

[4] 吳剛.基于Struts2的電子商城系統的研究與與實現[D].成都:電子科技大學,2014:3-9.

WU Gang. Research and Implementation of Online Shopping System Based on Struts2[D]. Chengdu: University of Electronic Science and Technology of China,2014:3-9.

[5] 周明明,董亞波,朱淼良.基于MVC的Web控制層的開發模型設計[J].計算機應用與軟件,2005,22(12):96-97.

ZHOU Mingming, DONG Yabo, ZHU Miaoliang. Design of a Model for Developing Web Controller Based on MVC[J]. Computer Application and Software,2005,22(12):96-97.

[6] 梁弼,劉篤晉,肖麗利.基于五層架構的不可移動文物數字化平臺構建研究[J].計算技術與自動化,2014,4(4):115-118.

LIANG Bi, LIU Dujin, XIAO Lili. Research on the Construction of Immovable Historical Relics Digital Platform Based on Five-layer Architecture[J]. Computing Technology and Automation,2014,4(4):115-118.

[7] 郭昌興.基于Struts2的公文管控系統的設計與實現[D].天津:南開大學,2014:15-26.

GUO Changxing. Design and Implementation of Document Management System Based on Struts2[D]. Tianjin: Nankai University,2014:15-26.

[8] 楊力,陳利學,趙永清.基于移動代理的Struts2框架[J].計算機工程,2013,39(1):260-263.

YANG Li, CHENG Lixue, ZHAO Yongqing. Struts2 Framework Based on Mobile Agent[J]. Computer Engineering,2013,39(1):260-263.

[9] 祝世東.基于MVC設計模式的Struts2框架在建材檢測系統中的研究與應用[D].沈陽:沈陽理工大學,2009:7-54.

ZHU Shidong. Research and Application of Building Material Examination System by Struts2 Framework Based on MVC Pattern[D]. Shenyang: Shenyang Ligong University,2009:7-54.

[10] 聶常紅,張屹,李寶智.基于Struts2的MVC模式在高校科研管理系統中的應用[J].電子技術與軟件工程,2014,9(9):95-97.

NIE Changhong, ZHANG Yi, LI Baozhi. Application of MVC Mode in University Research Result Management System Based on Struts2[J]. Electronic Technology & Software Engineering,2014,9(9):95-97.

[11] 張小勇.基于角色的訪問控制模型在Web信息系統中的設計與實現[D].南京:南京理工大學,2011:10-18.

ZHANG Xiaoyong. Design and Implementation of Web Information System Based on Role Access Control Model[D]. Nanjing: Nanjing University of Science and Technology,2011:10-18.

Research and Application of Web Control Layer Based on Struts2

LIANG Bi

(School of Computer Science, Sichuan University of Arts and Science, Dazhou635000)

AbstractAnalyzing the current problems of multi-layer Web application such as difficult maintenance, poor stability and the like, this paper proposes a new implementation plan of Web control layer on the basis of Struts2, integrating the three-layer architecture and the MVC idea. Meanwhile, the new plan is applied in the control layer of the movable cultural relics pictures management system, which demonstrates the specific implementation process of this plan. It proves that this plan is not only of feasibility, solves the problem of heavy burden shouldered by the business logic layer, and lays a solid foundation for developing a Web application featured by reliability, stability and easy maintenance.

Key Wordscontrol layer plan, Struts2 technology, practical and feasible, multi-layer Web, stable and reliable

* 收稿日期:2015年11月4日,修回日期:2015年12月17日

基金項目:2014年國家檔案局科技項目(編號:2014-X-65);2015年四川省教育廳一般項目(編號:15ZB0323,16ZB0362)資助。

作者簡介:梁弼,男,碩士,講師,研究方向:軟件工程、智能信息處理與應用軟件。

中圖分類號TP311

DOI:10.3969/j.issn.1672-9722.2016.05.029

主站蜘蛛池模板: 丝袜亚洲综合| 午夜欧美理论2019理论| 又爽又黄又无遮挡网站| 黄色福利在线| 无码精品福利一区二区三区 | 五月激激激综合网色播免费| 久久一本日韩精品中文字幕屁孩| 亚洲视频无码| 日韩无码黄色| 日本亚洲欧美在线| 国产午夜福利亚洲第一| 中文字幕人成乱码熟女免费| 青青草国产免费国产| 麻豆国产原创视频在线播放| 青青草一区| 亚洲综合18p| 福利在线一区| 在线观看精品自拍视频| 成人年鲁鲁在线观看视频| 国产真实乱子伦精品视手机观看| 久草视频精品| 伊人久久精品亚洲午夜| 亚洲天堂免费在线视频| 尤物亚洲最大AV无码网站| 亚洲综合专区| 国产素人在线| 波多野结衣一区二区三区88| 人妻精品全国免费视频| 久久无码av三级| 欧美成人aⅴ| 色欲综合久久中文字幕网| 热久久国产| 亚洲国产AV无码综合原创| 毛片网站在线播放| 99热这里只有精品5| 91麻豆精品国产91久久久久| 欧美综合区自拍亚洲综合天堂| 伊伊人成亚洲综合人网7777| 久久女人网| 夜夜拍夜夜爽| 欧美 国产 人人视频| 亚洲激情区| 日本AⅤ精品一区二区三区日| 高清无码一本到东京热| 免费Aⅴ片在线观看蜜芽Tⅴ| 欧美v在线| av尤物免费在线观看| 精品小视频在线观看| 99在线国产| 中文字幕调教一区二区视频| 午夜毛片免费观看视频 | 青青青视频91在线 | 欧美综合中文字幕久久| 99re视频在线| 91福利免费| 美女扒开下面流白浆在线试听| 精品久久777| 欧美日韩国产综合视频在线观看| 九九视频免费看| 国产又爽又黄无遮挡免费观看| 四虎成人在线视频| 国产日韩精品欧美一区灰| 在线观看国产网址你懂的| 精品国产一区二区三区在线观看 | 不卡网亚洲无码| 超碰精品无码一区二区| 国产97色在线| 40岁成熟女人牲交片免费| 国产91久久久久久| 中国国产高清免费AV片| 性色生活片在线观看| 日韩在线永久免费播放| 五月激情综合网| 国产精品无码在线看| 最新国产成人剧情在线播放| 国产国模一区二区三区四区| 日韩不卡免费视频| 婷婷色丁香综合激情| 欧美视频二区| 99久久国产综合精品2020| 欧美三级视频网站| 99re视频在线|