Struts——自定义拦截器

设置全局的异常

自定义拦截器

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

 

 

posted @ 2018-02-27 19:45  想54256  阅读(182)  评论(0编辑  收藏  举报