Struts——自定义拦截器

Posted 想54256

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

 

以上是关于Struts——自定义拦截器的主要内容,如果未能解决你的问题,请参考以下文章

struts2学习笔记之十三:自定义过滤器

Struts(二十八):自定义拦截器

Struts2学习:interceptor(拦截器)的使用

struts2内置拦截器和自定义拦截器详解(附源码)

struts2自定义拦截器

struts2自定义拦截器