zoukankan      html  css  js  c++  java
  • Struts2 流程原理

    一、流程图

      

    (转)

    二、流程详解

      1、服务器传递来的请求,通过ActionContextClearUp、other filters、最后到达StrutsPrepareAndExecuteFilter

      2、StrutsPrepareAndExecuteFilter 向 ActionMapper 询问,来决定这个请求是否需要调用某个Action 

      3、如果ActionMapper决定需要调用某个Action,StrutsPrepareAndExecuteFilter 把请求的处理交给ActionProxy

      4、ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类 ,这里,我们一般是从struts.xml配置中读取(也可以通过注解)

      5、ActionProxy创建一个ActionInvocation的实例

      6、ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用

    三、核心类或接口

      1、ActionConfig:负责从struts.xml文件中读取配置;

      2、ActionSupport:我们自己实现的Action类一般都继承ActionSupport类;

      3、ActionContext:是Action运行的环境,为Action类提供一些信息;

      4、ActionProxy:是如何获取Action;

      5、ActionInvocation:是如何执行Action。

    四、ActionInvocation Action调度者

      1、对如何执行Action进行了封装

      2、ActionInvocation是 Xworks 中Action调度的核心。而对Interceptor 的调度,也正是由ActionInvocation负责

      3、ActionInvocation 是一个接口,而DefaultActionInvocation 则是Webwork 对ActionInvocation的默认实现

      4、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。

        在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper

    五、ActionProxy Action代理

      1、对如何根据请求中的URL查找Action进行了封装

      2、所有指向Action的Http请求,共用一个ActionProxy

  • 相关阅读:
    实验 1:Mininet 源码安装和可视化拓扑工具
    ORACLE 数据库异常关闭处理办法
    Tomcat安装及配置教程
    关于Eclipse无server选项的解决方法
    2020软件工程作业02
    2020软件工程作业01
    C语言II作业01
    C语言总体概览
    C语言寒假大作战04
    C语言寒假大作战03
  • 原文地址:https://www.cnblogs.com/zxguan/p/7805765.html
Copyright © 2011-2022 走看看