• struts2框架之拦截器(参考第二天学习笔记)


    拦截器

    1. 什么是拦截器
    1). 与JavaWeb中的Filter比较相似。
    2). 拦截器只能拦截Action!!!

    2. Struts中定义了很多拦截器,其中defaultStack中的拦截器会在每个Action之前执行。

    3. 已经知道的拦截器

    1). params
    2). converterError
    3). validation
    4). workflow

    =====================

    3. 自定义拦截器

    1). 写一个拦截器类
    * 实现Interceptor接口(基本不用)
    > void init() --> 当拦截器对象创建之后,马上调用,完成初始化工作。
    > void destroy() --> 当拦截器对象被销毁之前,会被调用。
    > String intercept(ActionInvocation) --> 每次拦截器时。返回值为结果名称,与execute()相同。
    * 继承AbstractInterceptor类(比较常用)
    * 继承MethodFilterInterceptor类(特殊情况下使用)
    2). 配置它
    > 定义拦截器
    > 在action中引用拦截器

    ----------

    自定义:

    1. 写My1Intercetpor,继承AbstractInterceptor

    重写intercetpor方法
    其中放行:invocation.invoke()

    2. 配置
    1). 定义拦截器:
    <interceptors>
    <intercptor name="xxx" class="..."/>
    </ ...>
    2). 在<action>引用拦截器
    <action>
    <interceptor-ref name="xxx"/>
    </action>


    如果你在<acton>中指定了拦截器,那么默认拦截器就不会再执行!!!
    第一种方法:
    <action>
    <interceptor-ref name="defaultStack" />
    <interceptor-ref name="my1" />
    </action>

    第二种方法:
    <interceptor-stack name="myStack">
    <interceptor-ref name="my1" />
    <interceptor-ref name="defaultStack" />
    </interceptor-stack>
    ...
    <action>
    <interceptor-ref name="myStack"/>
    </action>

    第三种方式:
    指定当前<package>的默认拦截器栈为myStack
    <default-interceptor-ref name="myStack" />

  • 相关阅读:
    绿色通道
    Banknotes
    旅行问题
    修剪草坪
    最大连续和
    动物园
    炮兵阵地
    涂抹果酱
    牧场的安排
    国王
  • 原文地址:https://www.cnblogs.com/xyhero/p/9348763.html
Copyright © 2020-2023  润新知