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

Struts2框架技術研究

2016-10-21 19:09:29黃玲
科技創新與應用 2016年7期

黃玲

摘 要:Struts從推出以來得到了廣泛應用,是一種優秀的MVC開發框架,卻隨著應用的不斷擴大,也逐漸暴露出了一些不足。Struts2框架是基于WebWork推出的一個新的MVC框架,他與Struts相比,具有較大變化。文章介紹了Struts框架與WebWork框架,系統得分析了Struts2框架的體系結構,通過他與Struts框架對比,重點探討了Struts2控制器的實現原理,從而總結出Struts2較之Struts框架的優勢。

關鍵詞:WebWork;Struts2;控制器;面向切面編程

Struts1框架雖然用的比較廣泛,也比較成熟,但在面對其他的MVC的框架來說,雖然有自己的不足之處。為了彌補這些不足,Struts1進行了一些更新,之后就產生了現在的Struts2。

1 Struts1框架

Struts1由兩部分控制器組成,他們分別是核心控制器和業務邏輯控制器,核心控制器是有Struts1框架自身提供的,而業務邏輯則是有用戶自定義的,由開發者提供。

應用是由請求驅動的,是由客戶端的瀏覽器發送請求,然后被Struts1的核心控制器進行攔截,核心控制器再根據請求來決定是否調用業務邏輯控制器處理請求,當用戶請求處理完后,其處理結果通過 jsp現給用戶。

Struts1的缺陷:

(1)支持的前臺表現比較少。Struts1推出時只能夠支持jsp作為前臺的表現。

(2)與Servlet API嚴重耦合,對測試非常不友好。一旦離開了Web容器,測試會非常困難。因為Struts1是完全是基于Servlet API的,所以在Struts1的業務邏輯控制器內部,充滿了大量的Servlet API action中的參數,嚴重依賴Web服務器。

2 WebWork框架

WebWork是建立在名叫Xwork基礎之上的框架,他是來自另一個優秀的開源組織opensymphony。Xwork是一個標準的Command模式,簡便、靈活且功能強大,而且完全從web層脫離出來。

WebWork采用相互關聯較低的設計,系統的action和servlet API不在相互依賴,允許系統從B/S結構向C/S結構轉換 WebWork能夠支持更多的前臺技術。他可以脫離Web應用,通過IOC控制反轉與控制反轉容器,能讓測試更簡單。

相對于Struts1,WebWork優點如下:

(1)action無需與Servlet API耦合,使測試更加簡便。

(2)action無需與WebWork耦合,代碼重用率高。

還可以繼承一個父類;但一旦已經繼承了一個父類,則僅僅實現WebWork的action接口,包含了一個execute方法。用一個接口來代替繼承是一個非常好的優化,用一個接口來實現框架行為,對類的影響較小,繼承任意味著該類不能在繼承其他父類。

(3)支持更多的前臺技術,讓畫面表現更加靈活。

3 Struts2框架

Struts2是從WebWork繼承而來,而非Struts1。因此Struts2框架與WebWork框架相比,只是更改了一些在WebWork框架里的名稱。而我們研究他的處理流程,Struts2與Struts1相似,它們都是優控制器構成核心而成的。Struts2的控制器也由兩部分組成:核心控制器ServletDispatcher和業務邏輯控制器Action。

Struts2的業務處理流程大致如下:

首先用戶從客戶端的瀏覽器輸入數據,提交頁面,向服務器發送請求。例如 /test/login.action、/reg/register.action;

然后Struts2得到用戶請求和數據后,會根據具體的請求來調用合適的Action;

再然后通過攔截器自動對請求應用通用功能,例如:i18n、頁面校驗等其他功能;

之后調用Action的execute方法,該execute方法將得到用戶提交的數據然后進行具體的業務邏輯處理;

最后,處理結果將以各種不同的方式返回到瀏覽器中,前臺頁面技術可由開發者自由選擇。

我們來看看Struts2的核心控制器ServletDispatcher。

核心控制器其實是一個Filter,由Struts2的框架供給。他會將用戶的請求進行篩選,過濾,當客戶的請求以.Action結,則Struts2框架會接受該請求,進行處理。Struts2框架會根據.Action的前面部分來分配調用的Action。而我們需要在配置文件struts.xml定義Action與他的實現類之間的一一對應關系。Struts2框架還提供了一系列攔截器,這些攔截器負責傳遞參數到Action中,并調用Action的execute方法來處理用戶請求。

AOP即面向切面編程,也就是所謂的攔截器,在執行開發者業務邏輯之前,或者之后,處理一些共通的功能需求。這樣就可以分離出許多跟具體業務邏輯不相關,或者關系并不大的功能,比如說校驗用戶是否登陸,攔截用戶的含有非法字符的請求等等。這樣開發者就不需要為這些通用功能分心,只需要將重心放在自己的業務邏輯上便可。增加了代碼的重用性,減少了代碼的冗余,提高了性能和代碼的質量,提高了開發的效率。攔截器可以實現許多功能,使用攔截器只需要在struts.xml,也就是配置文件中配置到需要的攔截器,這樣的話安裝配置的順序,攔截器就看在Action執行前后執行。這樣具有很好的維護性,如果需求有了變化,則只要修改這個攔截器就可以。

4 Action業務邏輯控制器

Action業務邏輯控制器,由用戶自己實現。與Struts1的Action不同,Struts2的Action完全與ServletAPI分離,更加靈活,易于提高效率和質量。Struts2中的Action可以不需要Struts1中的Action那樣繼承Action父類。

Struts2的action有一個execute方法,這個方法沒有參數。在Action中有個不帶參數的execute方法,為什么要設計一個不帶參數的方法呢, 因為這樣的話我們開發的應用不需要部署到Web容器中,即可進行測試,更加靈活,易于提高效率和質量。由于它不依賴于servlet請求,有更強的可移植、可重用性。

Struts2中Action的屬性可以實現和Struts1中ActionForm的屬性類似的,但實現的方式是不同的功能。在Struts2中,是利用框架提供的攔截器來分析請求,并將請求值賦給Action的對應屬性。

用戶自己開發的Action類可以不繼承任何父類,這樣雖然自由,但是很有可能會不規范,或者是增加開發的難度和代碼量。所以為了規范這些Action類,Struts2為開發者提供了一個接口,規范了類這個Action類得實現。同時,為了處理一些Web應用中常用的功能,比如國際化網頁上的文字,頁面數據的有效性的校驗,數據的類型轉換和數據裝載等。用戶的Action類繼承該類后,大大地簡化了Action的開發。

為了能夠訪問Web應用的原來的ServletAPI,Struts2提供了ActionContext,還有另外一些接口,如ServletContextAware、ServletRequestAware、Servle-tResponseAware。當Action類實現了這些接口,就可以通過這些接口訪問ServletAPI實例。

參考文獻

[1]飛思科技產品研發中心.Web服務應用開發詳解[M].北京:電子工業出版社,2002:189-199.

[2]袁文雯.GSM無線數據傳輸的研究和應用[D].杭州:浙江大學,2003:6.

[3]趙佳玉,鮑慧.藍牙技術及其與相關技術的比較[J].電力系統通信,2003(12):15.

[4]王金濤.一種新型分布式無線監測系統[J].計算機工程與應用,2002(13):55-57.

主站蜘蛛池模板: 波多野结衣视频一区二区| 欧美人在线一区二区三区| 在线另类稀缺国产呦| 国产一区二区丝袜高跟鞋| 国产喷水视频| 91热爆在线| 欧美成人二区| 亚洲精品午夜无码电影网| 波多野结衣中文字幕久久| 无码人中文字幕| 色哟哟精品无码网站在线播放视频| 亚洲成aⅴ人片在线影院八| 久久久久人妻一区精品| 国产午夜无码片在线观看网站 | 国产综合色在线视频播放线视 | 色综合久久88色综合天天提莫 | 成人免费视频一区二区三区| 国产v精品成人免费视频71pao| 久久人搡人人玩人妻精品一| 夜夜操狠狠操| 国产真实二区一区在线亚洲| 国产精品自在在线午夜区app| 黄色网页在线播放| 久久久久亚洲AV成人网站软件| 精品色综合| 天天综合网色| 国产精品无码制服丝袜| av天堂最新版在线| 久久久久久国产精品mv| 欧美精品一二三区| 亚洲色欲色欲www在线观看| 国产精品无码作爱| 99视频精品在线观看| 国产精品性| 国产老女人精品免费视频| 亚洲无码精品在线播放 | 国产18在线| 亚洲美女一级毛片| 亚洲无码熟妇人妻AV在线| 亚洲精品无码AV电影在线播放| 亚洲精品欧美重口| 国产精品原创不卡在线| 91无码人妻精品一区| 久久这里只精品国产99热8| 九九九精品成人免费视频7| 国产欧美综合在线观看第七页| 色屁屁一区二区三区视频国产| 久久久久亚洲精品成人网 | 成年免费在线观看| 日韩精品少妇无码受不了| 国产成人久视频免费| 日韩a级毛片| 免费在线a视频| 日韩中文无码av超清| 97在线视频免费观看| 国产成人h在线观看网站站| 亚洲国产清纯| av一区二区无码在线| 一级毛片免费高清视频| JIZZ亚洲国产| 91亚洲免费视频| 国产毛片一区| 高清不卡毛片| 国产成人精品午夜视频'| 亚洲无码日韩一区| 亚洲无码高清视频在线观看 | 亚洲 欧美 偷自乱 图片| 亚洲色大成网站www国产| 欧美乱妇高清无乱码免费| 国产激情无码一区二区APP| 国产第一页亚洲| 婷婷六月激情综合一区| 国产亚洲一区二区三区在线| 亚洲色图欧美在线| 911亚洲精品| 国产99久久亚洲综合精品西瓜tv| 亚洲国产成人久久精品软件| 国产av一码二码三码无码| 国产精品尤物铁牛tv| 国产亚洲欧美日韩在线一区二区三区| 国产精品尹人在线观看| 免费A级毛片无码免费视频|