1)客户端发出一个HttpServletRequest请求,到web服务器的struts2框架中
》首先经过ActionContextCleanUp过滤器,它主要对ActionContext域对象中的内容进行清理,例如:删除某些错误消息集合
》其它经过其它的一些过滤器,因为struts2框架可以与其它web层框架融合在一起工作,此时就得考虑得其它框架的工作特点,例如:
SiteMesh框架,它主要对web页面进行部局等等
》最后,请求来到struts2框架的核心过滤器,StrutsPrepareAndExecuterFilter
2)创建ActionMapper对象
》如果有不需要处理的资源,例如:html,jpg,或者是程序指定的不需要由struts2框架处理的URL路径,直接放行请求,struts2框架不进 行处理
》如果是需要处理的资源,继续交由struts2框架完成后继的操作
3)创建ActionProxy对象
4)创建ConfigurationManager对象
5)加载src/struts.xml程序员写的配置文件
形成一个ActionMapping对象,该对象存有<action>标签的所有配置信息
6)创建ActionInvocation对象
7)将创建好的ActionInvocation对象,交由struts框架中的默认拦载器栈,依次处理
你将ActionInvocation对象,理解为过滤器链
最后,通过反射调用程序员自己写的目标对象Action的业务方法
8)将Action返回的字符串,与真实的jsp页面对应起来,准备返回
9)返回时,还要依次经过逆序的过滤器链,整个拦载器执行过程员,ActionInvocation对象一直存在
10)如果上述操作,都完全正确,web服务器会创建HttpServletResponse对象,响应给客户端浏览器