struts2 攔截器概述

一、概述

1、struts2是框架,封裝了很多的功能,struts2 里面封裝的功能都封裝在鏈接器里
2、struts2里面封裝了很多功能,有很多攔截器,不是每次這些攔截器都執(zhí)行,每次執(zhí)行默認的攔截器
3、struts2默認攔截器的位置


image.png
image.png

4、攔截器在什么時候執(zhí)行

  • 在action的對象創(chuàng)建之后,action方法執(zhí)行之前執(zhí)行

二、底層原理思想

(一)主要原理思想

1、aop思想

aop是面向切面編程,比如:有一個基本功能,要擴展功能,不通過修改源代碼修改功能


image.png
2、責任鏈模式

(1)在java中有很多設(shè)計模式,責任鏈模式是其中一種
(2)責任鏈模式和過濾鏈模式很相似

  • 過濾鏈:一個請求有多個過濾器進行過濾,每個過濾器只有做放行才能到下一個過濾器
    image.png
  • 責任鏈模式:執(zhí)行多個操作(添加、修改、刪除),首先執(zhí)行添加后執(zhí)行類似于放行的操作,執(zhí)行修改后執(zhí)行類似于放行的操作,執(zhí)行刪除

(二)aop思想和責任鏈模式如何應用到攔截器里面

1、描述
  • 攔截器在action對象創(chuàng)建后,action執(zhí)行之前執(zhí)行
  • 在action方法執(zhí)行之前執(zhí)行默認攔截器,執(zhí)行過程aop思想,在action里面并沒有調(diào)用攔截器的方法,使用配置問價方式進行操作
  • 在執(zhí)行攔截器時候,執(zhí)行很多攔截器,這個過程使用責任鏈模式
  • 假如執(zhí)行三個攔截器,執(zhí)行攔截器1,執(zhí)行攔截器1之后做放行,執(zhí)行攔截器2,執(zhí)行攔截器2之后做放行,執(zhí)行攔截器3,執(zhí)行攔截器3之后做放行,執(zhí)行action中的方法
2、畫圖分析
image.png
3、查看源代碼
  • 執(zhí)行action
    image.png
  • 創(chuàng)建action對象,使用動態(tài)代理的方式
    image.png
  • 執(zhí)行action的方法
    image.png
  • 執(zhí)行很多攔截器,遍歷執(zhí)行
    image.png
  • 類似于放行的操作方法
    image.png

三、重要概念

1、過濾器和攔截器的區(qū)別
  • 過濾器:理論上可以過濾任意內(nèi)容,比如html,jsp,servelt,圖片路徑
  • 攔截器:攔截器只可以攔截action
2、Servlet和action的區(qū)別
  • servlet:默認第一次訪問的時候創(chuàng)建,創(chuàng)建一次,單實例對象
  • action:每次訪問時創(chuàng)建,創(chuàng)建多次,多實例對象
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概述 什么是Struts2的框架Struts2是Struts1的下一代產(chǎn)品,是在 struts1和WebWork的...
    inke閱讀 2,340評論 0 50
  • 非本人總結(jié)的筆記,抄點筆記復習復習。感謝傳智博客和黑馬程序猿記筆記啊記筆記 Struts2國際化 什么是國際化 比...
    鍵盤瞎閱讀 461評論 0 3
  • Struts2_攔截器棧&標簽庫 一、攔截器棧 1. 攔截器 Java里的攔截器是動態(tài)攔截Action調(diào)用的對象。...
    明天你好向前奔跑閱讀 612評論 0 3
  • Java是一種可以撰寫跨平臺應用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言。Java 技術(shù)具有卓越的通用性、高效性、平臺移植性和...
    Java小辰閱讀 1,151評論 0 14
  • 1.深深感恩黃載我到學校,讓我節(jié)約了很多時間,感恩早晨的太陽,讓人覺得特別美好,感恩好種子讓我感受到這一切,感恩學...
    柔光寶寶閱讀 237評論 0 0

友情鏈接更多精彩內(nèi)容