Struts2攔截器介紹

Struts2攔截器介紹
今天給大家介紹一下struts2的攔截器,如果對java基礎知識不是很熟悉的可以先看看java教程, 好了言歸正傳大家請看。
一、什麼是攔截器?
1、攔截器,在AOP(Aspect-Oriented Programming<面向切面編程>)中用於在某個方法或字段被訪問之前,進行攔截然後在之前或之後加入某些操作。攔截是AOP的一種實現策略。
在Webwork的中文文檔的解釋爲——攔截器是動態攔截Action調用的對象。它提供了一種機制可以使開發者可以定義在一個action執行的前後執行的代碼,也可以在一個action執行前阻止其執行。同時也是提供了一種可以提取action中可重用的部分的方式。
2、攔截器鏈(Interceptor Chain,在Struts 2中稱爲攔截器棧Interceptor Stack)。攔截器鏈就是將攔截器按一定的順序聯結成一條鏈。在訪問被攔截的方法或字段時,攔截器鏈中的攔截器就會按其之前定義的順序被調用。
3、如何使用struts2攔截器,或者自定義攔截器。特別注意,在使用攔截器的時候,在Action裏面必須最後一定要引用struts2自帶的攔截器缺省堆棧defaultStack,如下(這裏我是引用了struts2自帶的checkbox攔截器):
 <interceptor-ref name="checkbox">
  <param name="uncheckedValue">0</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>(必須加,否則出錯)
4、也可以改爲對全局Action設置自己需要的攔截器,如下:

在struts.xml裏面定義全局的配置設置

  <package name="struts-shop" extends="struts-default">
    <interceptors>
          <interceptor-stack name="myStack">
            <interceptor-ref name="checkbox">
              <param name="uncheckedValue">0</param>
           </interceptor-ref>
           <interceptor-ref name="defaultStack"/>
          </interceptor-stack>
        </interceptors>
        <default-interceptor-ref name="myStack"/>(這句是設置所有Action自動調用的攔截器堆棧)
      </package>
    
    
    struts-action.xml裏面配置Action如下:
      <package name="LogonAdmin" extends="struts-shop">(這裏擴展struts.xml裏面定義的配置就可以了)
      <action name="logon" class="logonAction">
          <result>/jsp/smeishop/admin/index.jsp</result>     <result name="error">/jsp/smeishop/admin/logon.jsp</result>
  <result name="input">/jsp/smeishop/admin/logon.jsp</result>
       </action>
       <action name="logout" class="logoutAction">
         <result>/jsp/smeishop/admin/logon.jsp</result>
       </action>
     </package>
二、Struts2自帶的配置及其攔截器配置

更多詳情請查看:59biye網

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章