struts拦截器配置,以及全局的拦截器配置

1、 struts.xml配置文件

  <package name="allStruts" extends="struts-default,json-default"><!--

                拦截器 开始
                    --><interceptors><!--
                         定义拦截器
                        --><!--
                         加入自己设置的拦截器栈里面去
                        --><interceptor-stack name="defaultAll">
                            <interceptor-ref name="isLogin"></interceptor-ref>
                            <interceptor-ref name="exception"></interceptor-ref>
                            <interceptor-ref name="defaultStack"></interceptor-ref>
                        </interceptor-stack>
                        <interceptor name="isLogin" class="com.filter.CheckLoginFilter" >//引用自己的自定义拦截器见4
                        </interceptor>
                        <interceptor name="exception" class="com.filter.CheckLoginFilter"></interceptor>
                    </interceptors><!--    
                     改变系统默认的拦截器,改变自己的默认拦截器,并且一个系统只能有一个默认的拦截器,这样这个拦截器栈就会默认应用到所有的action上去
                    --><default-interceptor-ref name="defaultAll"></default-interceptor-ref>
                    <global-results>
                        <result name="login">/login.jsp</result>
                    </global-results>    
                    
                    
            <!-- 拦截器结束 -->
        

        </package>

2、在一些中大型的系统中如果仅仅使用一个struts.xml文件,那么该文件会非常大,而且代码混乱不易维护。这个时候就需要分出其他的.xml文件,这样也更能体现模块化的设计模式,这个时候只需要在struts.xml文件中配置一下,如<include file="struts/cfg/struts_goods.xml"/>,这样系统加载的时候就会自动加载struts_goods.xml文件刘,这个文件跟struts.xml文件的格式是一模一样的,

3、全局拦截器(struts.xml的继承)

      在1中我们配置的拦截器只对当前包起作用的,这个时候如果需要引用它只需要继承allStruts包就可以了,如<package name="conno" namespace="/" extends="allStruts">

这个时候该package继承allStruts,也就同时引用了它的拦截器

4、自定义拦截器写法

     public  class CheckLoginFilter extends MethodFilterInterceptor  {

    /**
     *
     */
    private static final long serialVersionUID = 1L;


    @Override
    public void destroy() {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void init() {
        // TODO Auto-generated method stub
        
    }

    @Override
    public String doIntercept(ActionInvocation invocation) throws Exception {
         HttpServletRequest request = ServletActionContext.getRequest();  
          HttpSession session = request.getSession(true);
          CrmUserAcount acount=(CrmUserAcount) session.getAttribute("acount");
          if(acount==null){
              return "login";
          }
          return
          invocation.invoke();  
    }

   
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值