struts2自定义拦截器



struts2自定义拦截器

       strust2框架中已经定义好了有许多,能解决WEB层的大部分问题,但有的时候还是不能解决一些特殊的需要,这个时候就需要开发人员自定义拦截器,具体的步骤为:

1.自定义一个类,实现Interceptor接口,重写接口中的方法,Interceptor接口中的方法如下:

public    void    destroy() {。。。。}

public    void    init() {。。。。}

public    String     intercept(ActionInvocation ai) t    hrows    Exception {

    …………

returnnull;

}

        intercept方法中接收的参数ActionInvocation对Action的信息进行了封装,通过此类可以获取Action相关的对象,从而可以处理用户请求。

        从Interceptor接口中声明的方法中可以看出来,其实就是一个拦截器的生命周期相关的方法,与过滤器的设计思想类似,开发人员需要在intercept……)方法中写处理请求的代码。

2.自定义的拦截器需要声明及配置才能被构架调用:

***************************************************************

<package name=" " namespace="/ "extends="struts-default">

    <interceptors>

       <!—第一步:声明一个拦截器 -->

       <interceptor name="UserDefinedInerceptor"         class="com.struts2.aop.UserDefinedInerceptor">

</interceptor>

       <!—第二步:定义一个拦截器站(含自定义的拦截器) -->

       <interceptor-stack name="UserDefined-stack">

           <interceptor-ref name="UserDefinedInerceptor" />

           </interceptor-stack>

       </interceptors>

    <!—第三步:设置默认执行的拦截器站为自定义的 -->

    <default-interceptor-ref name="UserDefined-stack" />

    <action name=" " class=" "method=" ">

        结果类型内容(略)

    </action>

</package>

2.使用拦截器

首先需要了解的是,struts2已经定义了一个默认的拦截器栈,拦截器栈就是若干个拦截器或拦截器栈组成的一系列拦截器的集合。

在struts2-core-2.1.8.jar下struts-default.xml中定义了这个默认的拦截器栈。

在struts中所有的action都使用了默认的拦截器栈,若想使用自定义的拦截器栈,只用在action中配置即可,但是此时必须显式的写出使用默认拦截器栈的配置信息。

 

[xhtml]  view plain copy
  1. <action name="register2" class="cn.tshining.action.RegisterAction">   
  2.     <result name="success">/success.jsp</result>   
  3.     <result name="input">/register2.jsp</result>   
  4.     <interceptor-ref name="myinterceptor"></interceptor-ref>   
  5.     <interceptor-ref name="defaultStack"></interceptor-ref>   
  6. </action>   



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值