struts2 拦截器

来源:互联网 发布:双色球公式计算法 编辑:程序博客网 时间:2024/06/10 12:04

struts2   拦截器只能拦截action , jsp是没法拦截的 ,  要拦截接jsp  的话需要用filter 

接下来对struts  拦截器说名:

之前拦截

    例子:  对方法拦截

     需要继承MethodFilterInterceptor

public class LanJieQi extends  MethodFilterInterceptor {

    @Override
    protected String doIntercept(ActionInvocation invocation) throws Exception {
        //得到request
          HttpServletRequest   request   = ServletActionContext.getRequest();
          //设置编码
          request.setCharacterEncoding("gbk");
          //得到页面  name  的值
          String name =request.getParameter("name");
          System.out.println(name);
          //进入下一个拦截器
          return invocation.invoke();
    }
}


 struts.xml   配置


  <interceptors>
        <interceptor name="lanjieqi" class="com.action.LanJieQi">
        </interceptor>
      </interceptors>
      <action name="login" class="com.action.LoginAction">
       <interceptor-ref name="lanjieqi">
               <param name="includeMethods">login</param>
           </interceptor-ref>
           <interceptor-ref name="defaultStack"></interceptor-ref>
         <result name="success">/success.jsp</result>
          <result name="fail">/index.jsp</result>
      </action>

1需要注意的是<interceptors>  必须写在<package>所以action  之前 , 不然会报错  

2还有必须把        <interceptor-ref name="defaultStack"></interceptor-ref>  加上

 3 .<param name="includeMethods">login</param>  name 有两个参数  1.   includeMethods  包含的   所以action 拦截   2. excludeMethods不包含的action  不拦截


之后拦截:

   只需要修改

public class LanJieQi extends  MethodFilterInterceptor {

    @Override
    protected String doIntercept(ActionInvocation invocation) throws Exception {

          //拦截器之前

          String    s= invocation.invoke()


          //拦截器之后

        //得到request
          HttpServletRequest   request   = ServletActionContext.getRequest();
          //设置编码
          request.setCharacterEncoding("gbk");
          //得到页面  name  的值
          String name =request.getParameter("name");
          System.out.println(name);
          //进入下一个拦截器
          return  s;
    }
}



 

          

          

0 0
原创粉丝点击