Struts2的工作流程:

Struts2的工作流程:

一:客户端提交一个HttpServletRequest请求,(.action或JSP页面)
二:请求被提交到一系列的Filter过滤器,如ActionContextCleanUp和FileterDispather等。
三:FilterDispatcher是Struts2的控制核心,它通常是过滤器链中的最后一个过滤器。
四:请求发到FilterDispathcher后,FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个Request(一般根据URL后缀是否为.action来判断)
五:如果ActionMapper决定需要调用某个Action,FilterDispatcher则把请求交到ActionProxy,由其进行处理。
六:ActionProxy通过ConfigurationManager(它会访问Struts.xml询问创建的配置文件,找到需要调用的Action类)
七:ActionProxy创建一个ActionInvocation实例,而ActionInvocation通过代理模式调用Action(在调用之后会根据配置文件加载相关的所有Interceptor拦截器)
八:Action执行完毕后,返回一个result字符串,此时再按相反的顺序通过Interceptor拦截器
九:最后ActionInvocation负责根据struts.xml中配置的result,决定进行下一步输出

简化版:
①:客户端初始化一个指向Servlet容器的请求
②:请求经过系列过滤器,FilterDispatcher被调用
③:ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
④:ActionProxy通过ConfigurationManager询问框架的配置文件找到需要调用的Action类
⑤:ActionProxy创建一个ActionInvocation实例
⑥:ActionInvocation调用、回调Action的execute方法
⑦:Action执行完毕ActionInvocation,根据struts.xml配置找到对应的返回结果
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容