• 2012/7/30struts学习随笔


    struts工作流程:

    ①当web server启动时,实例化AxtionServlet,调用其init方法,server通过解析struts-config.xml文件获取配置信息(SAX解析),将配置信息存放在各种配置对象中。

    ②Client发送一个*.Do请求时,ActionServlet查找ActionMapping配置信息<action>元素path属性值,判断是否存在该路径请求,If false:404 error

    ③if true:判断<action>元素是否有name属性,if false:创建action,调用execute方法响应Client请求。

    ④if true:创建对应的actionForm对象(ActionForm对象仅默认创建一次),通过反射机制自动封装数据,创建action,调用execute方法响应Client请求。

    一个请求在Struts2框架中的处理大概分为以下几个步骤:

    ①客户端初始化一个指向Servlet容器(例如Tomcat)的请求。

    ②这个请求经过一系列的过滤器(Filter).

    ③接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个Action.

    ④如果actionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy.

    ⑤AcionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类。

    ⑥ActionProxy创建一个ActionInvocation的实例。

    ⑦ActionInvocation实例使用命名模式来调用,在调用Action的过程调用,涉及到有关拦截器的调用。

    ⑧一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外一个action链)一个需要被表示的JSP或者FreeMarker的模板。在表示的过程中可以使用Struts框架中继承的标签。在这个过程中需要涉及到ActionMapper.

  • 相关阅读:
    VUE注意
    https://www.ituring.com.cn/article/211352虚拟DOM
    web.xml中关于Servlet、Filter、Listener的配置
    Eclipse中web项目部署至Tomcat步骤
    BAE百度云平台的mysql数据库的施用(Java)
    MySQL存储过程
    python列表插入--append(), extend(), insert()
    range()函数
    c++拷贝构造函数引用传参
    我居然要写这周的周报???
  • 原文地址:https://www.cnblogs.com/howlaa/p/2615005.html
Copyright © 2020-2023  润新知