(1)客户端向服务器端提交请求,容器初始化HttpServletRequest请求对象。
(2)请求对象被一系列的Servlet过滤器过滤。Struts2中的过滤器有三种,如下所述:
① ActionContextCleanUp过滤器:是一个可选的过滤器,主要用来集成其他框架。
② 其他插件的核心过滤器:如SiteMesh插件的过滤器。
③ FilterDispatcher过滤器:是Struts2 API中提供的过滤器,必须使用。
(3)FilterDispatcher过滤器调用ActionMapper,决定该请求是否需要调用某个Action。
(4)如果请求需要调用某个Action,ActionMapper将通知FilterDispatcher过滤器把请求的处理交给ActionProxy来处理。
(5)ActionProxy通过Configuration Manager解析框架的配置文件struts.xml,找到需要调用的Action类。
(6)ActionProxy将创建一个ActionInvocation实例。
(7)ActionInvocation实例使用命令模式回调Action中的execute方法,Action调用业务逻辑类完成业务逻辑。在调用Action的前后,将调用该Action涉及的相关拦截器(Interceptor)。
(8)Action执行完毕后,ActionInvocation根据struts.xml中的配置找到对应的返回结果(称为Result)。返回结果通常是JSP、FreeMarker等模板文件。
本文暂时没有评论,来添加一个吧(●'◡'●)