1.3.2 理解XWork的核心
虽然XWork是WebWork十分重要且很关键的部分,但是我们并不打算在本书中直接讨论XWork(我们要避免围绕XWork和WebWork这两个术语所带来的混乱,因为你可能并不需要了解它们之间的差异,除非你打算深入研究这两个项目的核心实现)。为了让你对WebWork和XWork之间是如何联系的有所认识,图1-5高度抽象概括了它们之间的交互。

图1-5 XWork和WebWork之间交互的高度抽象图示(包括在action调用的处理过程中,
XWork和WebWork的interceptor协作的方式)
一个HTTP请求到达WebWork的Servlet分发器之后,就会被转换成一个action command。这个action command在穿越了一系列WebWork和XWork的拦截器(1~3)之后,最终以用户代码(构建在XWork和WebWork基础上)的方式被执行。在action被执行之后,响应(Response)也会穿越一系列的拦截器(4~6),最后通过WebWork的Servlet Response转换成Web可识别的响应(譬如JSP)。
正如你所了解到的,Xwork与WebWork之间的交互是复杂的。我们不会要求你继续在XWork和WebWork环境之间进行转换,而是通过WebWork指代它们所涵盖的内容。因为WebWork可以看做是两者抽象而成的组件。
如果你对学习更多的XWork知识感兴趣,许多很好的在线文档和资源可以帮助你起步。XWork远非一个只供WebWork使用的组件,事实上,命名为JPublish的Web框架及OpenSymphony的工作流引擎(OSWorkflow)都支持XWork,XWork甚至还被用做一个名为Pendulum的Swing GUI框架的基础组成部分。







