1、什麼是攔截器:
攔截器是Struts2中的核心。其實就是一個類對Action的訪問進行攔截。
2、攔截器和過濾器的區別:
過濾器過濾的是從客戶端向服務器發送的請求。過濾器是可以過濾DaoHtml,jsp。。
攔截器攔截的是從客戶端向Action發送的請求。攔截器只能攔截Action,攔截器攔截器
更細粒度的實施攔截。攔截到Action中具體的方法。
3、Struts2的執行流程:(*****)
請求訪問服務器Action,請求會首先到達核心過濾器,過濾器調用Dispatcher中的serviceAction的方法,在這個方法內部,Struts2框架創建一個Action的代理對象,執行代理對象中的execute方法,在execute方法內部調用ActionInvocation中的invoke方法。在invoke方法內部,遞歸調用攔截器的攔截的方法,如果沒有下一個攔截器,執行目標Action,根據Action返回Result進行頁面跳轉,由Response作出響應。
4、自定義攔截器:
l 第一步:實現Interceptor接口或者繼承AbstractInterceptor類
l 第二步:配置攔截器