博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2核心
阅读量:6465 次
发布时间:2019-06-23

本文共 995 字,大约阅读时间需要 3 分钟。

hot3.png

Struts2整体架构图:

从上图我们可以看出struts2的整个大体的执行流程:
1、请求对象经过Filter chain(过滤器链)到达Dispatcher,由一个Filter充当,2.1.3之前的版本,用org.apache.struts2.dispatcher.FilterDispatcher,否则,用org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。 从Struts2.1.3开始,将废弃ActionContextCleanUp过滤器,而在StrutsPrepareAndExecuteFilter过滤器中包含相应的功能。常规情况官方推荐使用StrutsPrepareAndExecuteFilter替代FilterDispatcher。
2、Dispatcher通过ActionMapper来决定该请求是否需要调用Action、调用哪个Action
3、ActionMapper需要调用Action,Dispatcher把请求的处理交给ActionProxy
4、ActionProxy通过ActionMapping(读取struts.xml)和ConfigurationManager找到调用的具体Action类
5、ActionProxy创建一个ActionInvocation实例,该实例是后续整个流程的实际调度者
6、ActionInvocation调用真正的Action,返回Result(jsp、freemarker、velocity..),返回之前需要做某些操作可以实现PreResultListener,这些操作的前后涉及到一系类拦截器的调用
7、返回一个HttpServletResponse对象
下面是从Iteye上找的downpour博客中的一幅图,在此贴出他的博客地址,里面有一个struts2的系列,自我感觉非常不错
这张XWork的宏观示意图是整个XWork乃至整个Struts2的核心。此图内涵丰富,几乎涵盖了XWork的元素构成、XWork中元素的调用关系、XWork的执行层次以及XWork与外部调用接口之间的关系等所有XWork框架的核心内容。

转载于:https://my.oschina.net/xiaomaoandhong/blog/99346

你可能感兴趣的文章
U-BOOT之一:BootLoader 的概念与功能
查看>>
我的路上
查看>>
Velocity处理多余空白和多余空白行问题
查看>>
内容开发平台(PLATFORM)
查看>>
java值传递
查看>>
判断一个数是否为素数的一个讨论(一)
查看>>
DB2与oracle有什么区别
查看>>
创建一个多级文件目录
查看>>
Picasa生成图片幻灯片页面图文教程
查看>>
js获取当前时间的前一天/后一天
查看>>
[洛谷P3978][TJOI2015]概率论
查看>>
Python字符串的格式化
查看>>
C#反射---属性
查看>>
服务器常用的状态码及其对应的含义如下
查看>>
zoom和transform:scale的区别
查看>>
幸福框架:可扩展的、动态的、万能的 编号生成器
查看>>
黄聪:PHP 防护XSS,SQL,代码执行,文件包含等多种高危漏洞
查看>>
svn status 显示 ~xx
查看>>
常用HiveQL总结
查看>>
[转]使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(三)-- Logger
查看>>