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

基于AOP思想的過濾器技術及其應用

2016-03-18 03:12:29黃玲
移動信息 2016年5期
關鍵詞:模塊化用戶方法

黃玲

?

基于AOP思想的過濾器技術及其應用

黃玲

重慶工程學院,重慶 400056

AOP為Aspect Oriented Programming的縮寫,意為面向切面編程。利用AOP可以對業務邏輯的各個部分進行隔離,從而使得業務各部分之間的耦合度降低,提高程序的可重用性,同時提高了開發的效率。過濾器就應用了這種思想在客戶端提交數據進行業務邏輯出來之前對提交的數據進行預處理。過濾器在生成系統日志,權限管理等方面有非常廣泛的應用。

AOP;面向切面編程;攔截器

過濾器提供過濾作用,所謂過濾也就是說按照一定的規則放走一部分東西,而留下另一部分東西。形象地說,就像漁網。漁網有洞,比網洞大的魚被漁網留在網里,而比網洞小的魚則漏出漁網,從而起到了攔住大魚,放掉小魚的目的。

Java中的過濾器不能處理用戶請求,和對客戶端生成響應,它只提供過濾作用。主要用于對HttpServletRequest進行預處理,攔截Request之后,提取用戶提交的數據;也可以對HttpServletResponse進行后處理,是個典型的處理鏈。一個web.xml文件中可以配置多過濾器,Web服務器按照它們在web.xml文件中的配置順序來加載這些過濾器。

Servlet過濾器中結合了許多元素,從而使得過濾器成為獨特、強大和模塊化的Web組件。也就是說,Servlet過濾器是:

聲明式的:通過Web部署中的XML標簽來聲明。這樣允許添加和刪除過濾器,而無需改動任何應用程序代碼。

動態的:過濾器在運行時由Servlet容器調用來攔截和處理請求和響應。

靈活的:它可用于對來自客戶機的直接調用執行預處理、后期處理以及處理在防火墻之后的Web組件之間調度的請求。最后,可以將過濾器鏈接起來以提供必需的功能。

模塊化的:通過把應用程序處理邏輯封裝到單個類文件中,過濾器從而定義了可容易地從請求或響應鏈中添加或刪除的模塊化單元[1]。

可移植的:與Java平臺的其他許多方面一樣,Servlet過濾器是跨平臺和跨容器可移植的,從而進一步支持了Servler過濾器的模塊化和可重用本質。

可重用的:歸功于過濾器實現類的模塊化設計,以及聲明式的過濾器配置方式,過濾器可以容易地跨越不同的項目和應用程序使用。

透明的:過濾器可以根據需要添加或刪除,而不會破壞Servlet或JSP頁面。

Servlet可以用來處理用戶請求。但是在用戶具體的請求的業務功能的同時,系統有一些特殊的需求。比如確認該用戶是否有權限提交該請求,這就是權限管理。對于有的系統,所有的用戶請求都必須驗證用戶是否有權限。這種驗證往往是共通,如果在每次請求中進行處理,不僅會產生大量的重復代碼,工作量大,效率低,而且質量也無法保證。這時我們就可以用到過濾器了。過濾器攔截用戶請求,判斷用戶是否有權限來訪問這個資源。有則讓他去訪問,沒有就讓他轉到另外一個頁面。這樣通過過濾器就實現了授權管理。當然過濾器不僅可以完成用戶驗證與權限管理,還有其他許多的用途。比如:驗證用戶提交的請求中有沒有不合法的文字、字符;統計Web應用的訪問量和訪問的命中率,報告;實現Web應用的日志處理功能;實現數據壓縮功能;對傳輸的數據進行加密;實現XML文件的XSLT轉換等等。

一個用戶請求,即一個Servlet可以有多個過濾器,以實現多個過濾邏輯[2]。

所有的Servlet過濾器都必須實現javax.servlet. Filter接口,并實現該接口中的三個方法:init(Filter Config filter Config)。

Servlet過濾器的初始化方法,Servlet容器創建Servlet過濾器實例后將調用該方法。該方法將讀取web.xml文件中Servlet過濾器的初始化參數。doFilter(ServletRequest request,ServletResponse response,FilterChain chain).

該方法完成實際的過濾操作,當客戶端請求方法與過濾器設置匹配的URL時,Servlet容器將先調用過濾器的doFilter方法,FilterChain用戶訪問后續過濾器。

destroy()

在Web容器卸載過濾器前被調用。該方法在Filter的生命周期中僅執行一次,可以釋放過濾器使用的資源。

圖1 過濾的執行流程

過濾器的執行流程如圖所示,過濾器的處理過程是一個鏈式的過程(FilterChain),即多個過濾器組成一個鏈,依次處理,先處理第一個過濾器的doFilter()方法中的chain.doFilter()方法之前的內容,即圖中左邊大矩形中的“Code1”。之后通過chain.doFilter()方法將控制權交給下一個過濾器,執行下一個過濾器的doFilter()方法中的chain.doFilter()方法之前的內容,即圖中中間大矩形中的“Code1”。以此類推,最后交給Servlet,執行Servlet的service()方法。service()方法執行完以后,控制權再交回給最后一個過濾器,執行過濾器的doFilter()方法中的chain.doFilter()方法之后的內容,即圖中右邊大矩形中的“Code2”,之后再回到倒數第二個過濾器,執行過濾器的doFilter()方法中的chain.doFilter()方法之后的內容。以此類推,最后返回客戶端,在畫面上顯示請求結果[3]。其中鏈式過濾過程中也可以直接給出響應,即返回客戶端,而不是向后傳遞。

[1]陳敏,唐溢鍵,周新志.用Servlet過濾器簡化中文的輸入和輸出[J].成都信息工程學院學報,2005,20(2):129-133.

[2]謝志華.深入Java Servlet網絡編程[M].西安:西安電子科技大學出版社,2004.

[3]柳永坡,劉雪梅,趙長海.JSP應用開發技術[M].北京:人民郵電出版社,2005.

黃玲(1980—),女,漢族,上海交通大學計算機及工商管理雙學士學位,具備多年的對日開發經驗,具備較強的日語、英語能力,2006年9月赴日從事軟件開發工作,從事J2EE應用項目、嵌入式系統,手機軟件開發等。

TP311.52

A

1009-6434(2016)05-0049-01

猜你喜歡
模塊化用戶方法
模塊化自主水下機器人開發與應用
模塊化住宅
現代裝飾(2020年5期)2020-05-30 13:01:56
ACP100模塊化小型堆研發進展
中國核電(2017年2期)2017-08-11 08:00:56
模塊化VS大型工廠
流程工業(2017年4期)2017-06-21 06:29:50
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 欧美精品亚洲精品日韩专| 欧美性精品| 亚洲欧美另类专区| 无码国产伊人| 国产精品久久精品| 久久综合九九亚洲一区| 国产精品视频999| 亚洲女人在线| aaa国产一级毛片| 91亚洲免费| 国产区精品高清在线观看| 2019年国产精品自拍不卡| 日本一本在线视频| 夜夜高潮夜夜爽国产伦精品| 亚洲乱亚洲乱妇24p| 亚洲国产av无码综合原创国产| 老司机午夜精品网站在线观看| 国产黄网站在线观看| 91在线一9|永久视频在线| 免费亚洲成人| 日本三级精品| 亚洲无码高清免费视频亚洲| 亚洲一区二区三区中文字幕5566| 有专无码视频| 日韩在线播放欧美字幕| 欧美日韩另类在线| 国产理论一区| 久久一色本道亚洲| 国产噜噜噜| 日韩国产精品无码一区二区三区| 一级毛片不卡片免费观看| 国产精品无码作爱| 98超碰在线观看| 最新国产成人剧情在线播放| h视频在线播放| 国禁国产you女视频网站| 高清精品美女在线播放| 91精品aⅴ无码中文字字幕蜜桃| 国产成人超碰无码| 免费人成网站在线高清| 五月天在线网站| 成人自拍视频在线观看| 亚洲区欧美区| 国产永久免费视频m3u8| 黄网站欧美内射| 国产欧美成人不卡视频| 人妻精品全国免费视频| 88av在线看| 国产福利小视频在线播放观看| 91啪在线| 国产一区二区三区精品久久呦| 香蕉综合在线视频91| 日韩欧美国产中文| 日韩小视频网站hq| 97一区二区在线播放| 国产精品jizz在线观看软件| 手机精品福利在线观看| 免费观看亚洲人成网站| 国产对白刺激真实精品91| 97人人模人人爽人人喊小说| 国产小视频a在线观看| 成人福利视频网| 日本欧美一二三区色视频| 青青国产在线| 久久精品人人做人人综合试看| 成人免费一级片| 性激烈欧美三级在线播放| 综合网天天| 午夜视频免费一区二区在线看| 五月天久久综合| 日本不卡在线视频| 女人18毛片水真多国产| 男人天堂亚洲天堂| 日本道综合一本久久久88| jizz亚洲高清在线观看| 国产噜噜在线视频观看| 无码日韩精品91超碰| 中文无码影院| 亚洲激情99| 欧美不卡在线视频| 亚洲欧洲AV一区二区三区| 欧美黄网站免费观看|