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.

原文地址:https://www.cnblogs.com/howlaa/p/2615005.html