Board logo

标题: Struts2 内核之我见(1) [打印本页]

作者: look_w    时间: 2018-9-23 12:52     标题: Struts2 内核之我见(1)

相信熟悉 Struts1 的程序员,对 Struts2 会迷惑,凡事是是而非。我也曾经遇到了这种情况。Struts2 在设计的时候采用 webwork 的内核,尽量按照 Struts1 的编码习惯。
我不知道各位怎么学习 Struts1,当我阅读了核心控制器 org.apache.struts.action.ActionServlet 的源码后,感到对 Struts1 的工作机制豁然开朗。 Struts2 同样也是 MVC 框架,但核心控制器是过滤器 org.apache.struts2.dispatcher.FilterDispatcher。
感谢网上对 Struts2 工作机制研究并且愿意跟大家分享的热心人,我在学习 Struts2 的时候得到很多帮助。如果你不是很有经验的程序员,我说的很多东西你可能立刻理解不了。如果有时间,我会做成 ppt,也希望给大家讲解,共同交流进步。
如果你需要亲自动手实践,学习源码,请下载以下的 2 个 jar 包。
图 1. 官方源码包工作流程的官方描述我们从看官方的流程图开始。当本篇文章结束的时候,我们会再一遍来看它。
图 2. 官方工作流程图
备注:拦截和过滤器的执行顺序可能一些人理解不了,我以生活中的范例说明。我去上海的 IBM 实验室出差,火车沿途停靠蚌埠,南京,最终达到上海。办完事情后回来,沿途的停靠站是南京、蚌埠。有没有注意到火车停靠站的顺序相反了。好,转到我们遇到的技术问题,上海的业务相当于 Action 执行,是调用的真正目标。蚌埠和南京是两个分别的过滤器。即使我两次路过南京,只是一个过滤器的调用先执行一半后执行一半罢了。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0