1. 程式人生 > >Struts——自定義攔截器

Struts——自定義攔截器

全局 brush sys tca ima http param 方法 配置

設置全局的異常

技術分享圖片

攔截器

public class LoginInterceptor extends MethodFilterInterceptor {
    
    protected String doIntercept(ActionInvocation actionInvocation) throws Exception {

        // 前處理
        System.out.println("前處理");

        // 放行
        actionInvocation.invoke();

        // 後處理
        System.out.println("後處理");

        return null;
    }
}

interceptor配置文件

<interceptors>
    <!-- 1.註冊攔截器 -->
    <interceptor name="loginInterceptor" class="cn.x5456.web.interceptor.LoginInterceptor"></interceptor>
    <!-- 2.註冊攔截器棧 -->
    <interceptor-stack name="myStack">  <!-- 給我們的攔截器棧起個名字 -->
        <interceptor-ref name="loginInterceptor">
            <!-- 指定哪些方法不攔截 -->
            <param name="excludeMethods">login</param>
            <!-- 指定哪些方法需要攔截 -->
            <!--<param name="includeMethods">login</param>-->
        </interceptor-ref>
        <interceptor-ref name="defaultStack"></interceptor-ref> <!-- 將官方棧放入我們的棧中 -->
    </interceptor-stack>
</interceptors>
<!-- 3.指定包中的默認攔截器棧 -->
<default-interceptor-ref name="myStack"></default-interceptor-ref>

單獨為某個action設置指定的攔截器

<action name="Demo1Action_*" class="cn.itcast.a_interceptor.Demo1Action" method="{1}" >
	<!-- 為Action單獨指定走哪個攔截器(棧) 
	<interceptor-ref name="myStack"></interceptor-ref>-->
	<result name="success" type="dispatcher" >/index.jsp</result>
</action>

註:攔截器無法攔截直接訪問jsp,htm等頁面

定義全局結果集

技術分享圖片

判斷父界面是否在框架中,不在的話跳轉到login.jsp

技術分享圖片

Struts——自定義攔截器