Struts2_02_工作原理
下图是官方提供的Struts2的工作原理图:
Struts2的基本实现原理如下:
1.客户端向服务器提交请求,容器初始化HttpServletRequest请求对象;
2.请求对象被一系列的Servlet过滤器过滤;
过滤器分三种:
①ActionContextClearUp:是一个可选的过滤器,主要为了和其他框架的集成;
②其他插件的核心过滤器,如SiteMesh的过滤器;
③FilterDispatcher过滤器:是Struts2 API中提供的过滤器,必须使用;
3.调用FilterDispatcher,FilterDispatcher会调用ActionMapper,决定该请求是否需要调用某个Action;
4.如果需要调用某个Action,FilterDispatcher会把请求的处理交给ActionProxy;
5.ActionProxy通过Configuration Manager解析框架的配置文件,找到需要调用的Action类;
6.ActionProxy创建一个ActionInvocation的实例;
7.ActionInvocation实例使用命令模式回调Action中的execute方法,Action调用业务逻辑类完成相应的功能。在调用Action的前后,将调用Action涉及到的相关拦截器(Interceptor);
8.Action执行完毕,ActionInvocation根据struts.xml中的配置找到对应的返回结果(称为result)。返回结果通常是jsp等模版文件;