struts2過濾器和攔截器的區(qū)別分析
本文分析了struts2過濾器和攔截器的區(qū)別。分享給大家供大家參考,具體如下:
一、本質區(qū)別:
1. 攔截器是基于java的反射機制的,而過濾器是基于函數(shù)回調。
2. 攔截器不依賴與servlet容器,過濾器依賴與servlet容器。
3. 攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用。
4. 攔截器可以訪問action上下文、值棧里的對象,而過濾器不能訪問。
5. 在action的生命周期中,攔截器可以多次被調用,而過濾器只能在容器初始化時被調用一次
二、使用區(qū)別:
過濾器 是在java web中,你傳入的request,response提前過濾掉一些信息,或者提前設置一些參數(shù),然后再傳入servlet或者struts的 action進行業(yè)務邏輯,
比如過濾掉非法url(不是login.do的地址請求,如果用戶沒有登陸都過濾掉),
或者在傳入servlet或者 struts的action前統(tǒng)一設置字符集,
或者去除掉一些非法字符(聊天室經(jīng)常用到的,一些罵人的話)。。。
攔截器 可通過的是符合條件的action。 攔截器本身是一個普通的Java對象,它能動態(tài)攔截Action調用,
Action執(zhí)行前后執(zhí)行攔截器本身提供的各種個樣的Web項目需求。也可以阻止Action的執(zhí)行,同時也可以提取
Action中可以復用的部分。
(是在面向切面編程的,就是在你的service或者一個方法前調用一個方法,或者在方法后調用一個方法,比如動態(tài)代理就是攔截器的簡單實現(xiàn),在你調用方法前打印出字符串(或者做其它業(yè)務邏輯的操作),也可以在你調用方法后打印出字符串,甚至在你拋出異常的時候做業(yè)務邏輯的操作。)
更多關于Struts相關內容感興趣的讀者可查看本站專題:《Struts框架入門與進階教程》、《Spring框架入門與進階教程》及《Hibernate框架入門與進階教程》。
希望本文所述對大家基于Struts框架的Java程序設計有所幫助。
相關文章
SpringBoot如何對LocalDateTime進行格式化并解析
這篇文章主要介紹了SpringBoot如何對LocalDateTime進行格式化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07Spring Boot 各種回滾操作實戰(zhàn)教程(自動回滾、手動回滾、部分回滾)
這篇文章主要介紹了Spring Boot 各種回滾操作實戰(zhàn)教程(自動回滾、手動回滾、部分回滾),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07SpringBoot集成ElasticSearch的示例代碼
Elasticsearch是用Java語言開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,是一種流行的企業(yè)級搜索引擎,本文給大家介紹SpringBoot集成ElasticSearch的示例代碼,感興趣的朋友一起看看吧2022-02-02Java 日期格式加上指定月數(shù)(一個期限)得到一個新日期的實現(xiàn)代碼
這篇文章主要介紹了Java 日期格式加上指定月數(shù)(一個期限)得到一個新日期的實現(xiàn)代碼,需要的朋友可以參考下2018-05-05