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.

主站蜘蛛池模板: 久久国产免费观看| 人妻中文字幕无码久久一区| 亚洲成人在线网| 一本色道久久88综合日韩精品| 欧美精品v| 亚洲激情99| 国产一级毛片在线| 久久综合丝袜长腿丝袜| 伊人天堂网| 久久久久亚洲AV成人网站软件| 欧美性猛交xxxx乱大交极品| 亚洲国产精品日韩欧美一区| 色一情一乱一伦一区二区三区小说| 国产精品毛片一区视频播| 日本在线视频免费| 国产色伊人| 啦啦啦网站在线观看a毛片 | 国产成人夜色91| 一边摸一边做爽的视频17国产 | 亚洲人成人无码www| 欧美日韩久久综合| 亚洲精品国产精品乱码不卞 | 亚洲国产91人成在线| 中文字幕66页| 青草精品视频| 欧美一区二区精品久久久| 97成人在线视频| 亚洲综合香蕉| 久久婷婷人人澡人人爱91| 午夜视频www| 性欧美精品xxxx| 精品国产一区二区三区在线观看 | 欧美天天干| 久久综合丝袜日本网| 久久99精品久久久久纯品| 国产99精品久久| 中国一级特黄大片在线观看| 亚洲午夜片| 欧美日韩精品一区二区视频| 亚洲色欲色欲www在线观看| 色哟哟色院91精品网站| 国产浮力第一页永久地址 | 亚洲色中色| 日韩一级毛一欧美一国产| 在线a视频免费观看| 乱系列中文字幕在线视频| 国产精品美女免费视频大全| 国产成人精品在线| 69免费在线视频| 久久久久亚洲精品无码网站| 老汉色老汉首页a亚洲| 亚洲国产黄色| 午夜性刺激在线观看免费| 中文字幕在线永久在线视频2020| 国产福利在线免费观看| 国产成人AV男人的天堂| 精品欧美日韩国产日漫一区不卡| 国产美女无遮挡免费视频网站 | 精品黑人一区二区三区| 亚洲妓女综合网995久久| 亚洲a级在线观看| 国产女人爽到高潮的免费视频 | 欧美一区日韩一区中文字幕页| 国产成年女人特黄特色毛片免| 欧美全免费aaaaaa特黄在线| 夜色爽爽影院18禁妓女影院| 欧美日韩国产一级| 日韩高清中文字幕| 成人年鲁鲁在线观看视频| 久久这里只有精品8| 国内精品视频区在线2021| 久久中文字幕av不卡一区二区| 精品一区二区三区四区五区| 日本在线亚洲| 精品无码一区二区在线观看| 一本色道久久88| 国内精自视频品线一二区| 亚洲狼网站狼狼鲁亚洲下载| 国产综合欧美| 国内嫩模私拍精品视频| 久久黄色免费电影| 2022精品国偷自产免费观看|