您现在的位置:计算机技术学习网 > 技术中心 > WEB编程 > JSP >

Struts2学习笔记(4)

来源:未知 责任编辑:责任编辑 发表时间:2014-05-26 10:59 点击:

2.2拦截器的作用
在struts2中,拦截器能够对Action前后进行拦截,当请求某个action时执行拦截。

 

2.3自定义拦截器
1) 写一个类,实现Interceptor接口

2) 在struts.xml文件中配置(注册)栏截器

在package节点下注册:

       <interceptors>

                     <!-- 注册自定义拦截器 -->

<interceptor name="LoginInterceptor"class="com.maple.interceptor.action.LoginInterceptor"/>

       </interceptors>

在action节点下引用:(谁引用就拦截谁)

<!-- 引用自定义拦截器-->

<interceptor-refname="LoginInterceptor"/>

拦截器中各个方法的执行顺序:

默认构造器(服务器启动的时候执行,且在init方法之前)

init()方法(服务器启动的时候执行,在构造方法之后执行)

destory()方法(服务器关闭的时候执行)

intercept()方法(每次请求被拦截的Action时都会执行)

publicclass LoginInterceptorimplements Interceptor {

      public LoginInterceptor(){

          System.out.println("默认构造器");

      }

      @Override

      publicvoid init() {

          System.out.println("init()方法");

      }

      @Override

      public Stringintercept(ActionInvocation invocation)throws Exception {

          System.out.println("intercept()方法");

          //调用invoke方法放行请求

          return invocation.invoke();

      }

      @Override

      publicvoid destroy() {

          System.out.println("destroy()方法");

      }

}

2.4栏截器的执行顺序
    在struts.xml文件中,<interceptor-ref/>的引用顺序一致,先引用的先执行,后引用的后执行。

    如果某个拦截器出错或不允许通过,那么下一个拦截器无法执行

    需要拦截哪个Action,就在哪个Action对应的<action>标签中配置即可

    在部署web应用时,拦截器的空参构造方法和init()方法各执行一次,每次请求时,intercept()都会执行一次 。

2.5拦截器栈
          <interceptors>

                <!-- 注册自定义拦截器 -->

                <interceptorname="LoginInterceptor"class="com.maple.interceptor.action.LoginInterceptor"/>

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • JSP与Servlet
  • 自己动手写MiniBBS系列(基本篇)之用户登录
  • JSP取当前日期
  • JDBC 入门(一)
  • 打开一个jsp页面默认查询所有数据,调用action
  • 使用JSP标签库验证用户的输入(2)完
  • 自定义JSP标签(tag)浅议
  • WIN98/2000下的jsp服务器
  • JSP内建对象(二)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1