• 拦截器


    1.Struts2 拦截器

      Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现.

    2.拦截器的工作原理

      就是你的服务请求request 要穿过struts2的拦截器,满足条件的就通过,不然就被拦截 

    • 客户端发送请求 (客户端初始化一个指向Servlet容器(如Tomcat)的请求)
    • 请求经过一系列过滤器(如ActionContextCleanUp、SiteMesh等),ActionContextCleanUp-->FilterDispatcher
    • FilterDispatcher通过ActionMapper来决定这个Request需要调用哪个Action
    • 如果ActionMapper决定调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
    • ActionProxy通过ConfigurationManager询问Struts配置文件(Struts.xml),找到需要调用的Action类。
    • ActionProxy创建一个ActionInvocation的实例
    • ActionInvocation调用真正的Action,当然这涉及到相关拦截器的调用(interceptor)
    • Action执行完毕,ActionInvocation创建Result并返回,返回结果前要做些动作也是可以的

    3.拦截器配置

    • 通过<interceptor...>元素来定义拦截器
    • 通过<interceptor-ref.../>元素来使用拦截器

    4.Struts2 内置拦截器

    • perams拦截器
    • staticParams 拦截器
    • servletConfig 拦截器
    • fileUpload 拦截器
    • validation 拦截器
    • workflow 拦截器
    • exception 拦截器

    5.自定义拦截器

    • 实现 Interceptor 接口
    • 继承AbstracInterceptor 类

    6.Struts2 实现文件上传

      需要添加两个jar文件

        commons-fileupload-xxx.jar

        commons-io-xxx.jar

      步骤:

      • 首先编写Action类
      • struts2.xml相应的action配置

      • 最后配置相应的jsp页面

     7.文件下载  

    • 定义InputStream
    • 配置stream 结果类型

        

  • 相关阅读:
    Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificat
    git快速生成配置sshkey
    快速合并多个git项目到同一目录
    一次性删除docker images中name为none的镜像
    mongo数据库数据库导入、导出
    python下ssh的简单实现
    python操作mysql
    Python的方法解析顺序(MRO)[转]
    python异常处理
    面向对象类成员
  • 原文地址:https://www.cnblogs.com/QQW-HH/p/7644913.html
Copyright © 2020-2023  润新知