• Struts2默认拦截器栈及内建拦截器使用具体解释


    Struts2内建拦截器介绍:
     
    alias (别名拦截器):同意參数在跨越多个请求时使用不同别名,该拦截器可将多个Action採用不同名字链接起来,然后用于处理同一信息。 
    autowiring (自己主动装配拦截器):主要用于当Struts2和Spring整合时。Struts2能够使用自己主动装配的方式来訪问Spring容器中的Bean。 
    chain (链拦截器):构建一个Action链,使当前Action能够訪问前一个Action的属性,一般和<result type="chain" .../>一起使用。

     
    checkbox (多选框拦截器):将没有选中的checkbox项设置为false,协助管理多选框。在HTTP请求里,那些没有被选中的项通常没有不论什么值。 
    conversionError (转换器错误拦截器):这是一个负责处理类型转换错误的拦截器。它负责将类型转换错误从ActionContext 中取出,并转换成Action的FieldError错误。

     
    createSession (创建Session拦截器):该拦截器负责创建一个HttpSession对象,主要用于那些须要有HttpSession对象才干正常工作的拦截器中。

     
    clearSession (清除Session拦截器):负责销毁HttpSession对象. 
    debugging (调试拦截器):当使用Struts2的开发模式时,这个拦截器会提供很多其它的调试信息。 
    execAndWait (运行和等待拦截器):后台运行Action时,给用户显示一个过渡性的等待页面。 
    externalRef (扩展拦截器):负责扩展引用 
    exception (异常拦截器):将Action抛出的异常映射到结果,这样就通过重定向自己主动处理异常。 
    fileUpload (文件上传拦截器):这个拦截器主要用于文件上传。它负责解析表单中文件域的内容。

     
    i18n (国际化拦截器):主要负责把用户所选的语言、区域放入用户Session中。 
    logger (日志拦截器):主要是输出Action的名字,提供简单的日志输出。 
    modelDriven (模型驱动拦截器):这是一个用于模型驱动的拦截器,当某个Action类实现了ModelDriven接口时。它负责把getModel ()方法的结果堆入ValueStack中。 
    scopedModelDriven (作用域模型驱动拦截器):假设一个Action实现了一个ScopedModelDriven接口,该拦截器负责从指定生存范围中找出指定的Model。并将通过setModel方法将该Model传给Action实例。

     
    params (參数过滤拦截器):这是一个最主要的拦截器。它负责解析HTTP请求中的參数,并将參数值设置成Action相应的属性值。

     
    prepare (预备拦截器):假设action实现了Preparable接口。将会调用该拦截器的prepare()方法。 
    staticParams (静态參数拦截器):这个拦截器负责将xml中<action>标签下<param>标签中的參数传入action。 
    scope (作用域拦截器):这是范围转换拦截器,它能够将Action状态信息保存到HttpSession范围,或者保存到ServletContext 范围内。 
    servletConfig (Servlet配置拦截器):假设某个Action须要直接訪问Servlet API。就是通过这个拦截器实现的。它提供訪问HttpServletRequest和HttpServletResponse的方法,以map方式訪问。

     
    roles (角色拦截器):这是一个JAAS(Java Authentication and Authorization Service。Java授权和认证服务)拦截器。仅仅有当浏览者取得合适的授权后。才干够调用被该拦截器拦截的Action。 
    timer (计时拦截器):这个拦截器负责输出Action的运行时间。在分析该Action的性能瓶颈时比較实用。 
    token (令牌拦截器):这个拦截器主要用于阻止反复提交。它检查传到Action中的token,从而防止多次提交。

     
    tokenSession (令牌会话拦截器):这个拦截器的作用与前一个基本类似。仅仅是它把非法提交的数据保存在HttpSession中,不跳转到错误页面。再次生成与第一次同样的响应页面 
    validation (验证拦截器):通过运行在xxxAction-validation.xml中定义的校验器,从而完毕数据校验。

     
    workflow (工作流拦截器):这个拦截器负责调用Action类中的validate方法,假设校验失败,则不运行业务方法,而是返回input的逻辑视图。

     
    jsonValidation (json拦截器):验证失败时。能够将fieldError和actionErrors信息序列化成json,返回给client 
    profiling (概要拦截器):同意Action记录简单的概要信息。 
    actionMappingParams (Action映射拦截器):Parameters set by the action mapping are not set/not available through ParameterAware  
    annotationWorkflow (注解工作流拦截器):利用注解替代XML配置。使用annotationWorkflow拦截器能够使用@After、@Before、@BeforeResult等注解,运行流程为before-execute-beforeResult-after顺序 

    store (消息存储拦截器):在会话中为Action存储和检索消息、字段错误以及Action错误。该拦截器要求Action实现ValidationAware接口。


    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


    注意:Struts包在继承“struts-defaust”包后,假设该包没有显式定义interceptor,系统会默认给你加入下图的拦截器栈:




    这个拦截器栈里面包括了非常多经常使用和必须的拦截器,假设在Struts里配置自己定义拦截器后这个拦截器栈将失效。如想继续在Action里面使用。除了引入自己定义拦截器外。还必须引入上图这个名为"defaultStack"的拦截器栈!

    格式例如以下:


    <package name="mypackage" extends="struts-default">


    <!-- 定义自己定义拦截器 -->

    <interceptors>

    <interceptor name="myinterceptor" class="com.test.interceptors.myinterceptor">

    <interceptors>


    <action name="myaction">

    <result>/success.jsp</result>

    <result>/error.jsp</result>

    <!-- 引入自己定义拦截器 -->

    <interceptor-ref name="myinterceptor" />

    <!-- 引入系统默认拦截器栈 -->

    <interceptor-ref name="defaultStack" />

    </action>


    </package>

    地方地方

  • 相关阅读:
    如何:使用向导来处理项目模板 【转载】
    .NET : 如何在生成XML文档时绑定样式表
    如何在生产环境部署K2的流程
    SQL Server 数据库文档生成工具开源项目【合作邀请】
    新的纪元
    SharePoint : 谁说WSS不支持审核
    C++ : 类型的别名和对象的别名
    C++: 引用和地址运算符
    Infopath : 如何通过代码复制格式文本框的值
    正确地使用投影仪和移动硬盘
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7136887.html
Copyright © 2020-2023  润新知