WEBWORK的架构图

 

WEBWORK的架构图如上图所示;

一个初始的请求被发送到Servlet容器,这个请求经过一个标准的Filter链,其中包括(可选的)ActionContextCleanUp Filter,如果你要在应用程序中整和其他的技术如Sitemesh,就需要使用这个Filter,然后请求经过FilterDispatcher,在它里面ActionMapper会判断这个请求是否需要调用Action。

如果ActionMapper决定应该调用一个Action,FilterDispather就把请求委托给ActionProxy,ActionProxy通过WebWork的配置文件管理器读取xwork.xml文件里的配置信息,然后创建了一个实现了命令模式的ActionInvocation。这一过程包括在调用action本身之前调用所有的interceptor,一旦action方法返回,ActionInvocation就要查找xwork.xml文件中这个action的结果码所对应的result,然后执行这个result,然后执行这个result。通常情况下result会调用JSP或FreeMarker模板来呈现页面。当呈现页面时,模板可以使用Webwork提供的一些标签,其中一些组件可以和Actionmapper一起工作为后面的请求呈现恰当的URL。

在这个架构中的所有对象(action,result,interceptor等等)都是通过ObjectFactory创建的。ObjectFactory是可插入,因此可以和spring,pico这样的框架整合的很好。如果需要,Webwork中的对象也可以由你自己提供的ObjectFactory来创建。

最后interceptor被再次执行,顺序和开始相反,然后最终请求被返回给web.xml中配置的其他Filter。如果已经设置了ActionContextCleanUp Filter,那么FilterDispatcher就不会清理ThreadLocal中的ActionContext信息。如果没有设置ActionContextCleanUp Filter,FilterDispatcher会清理掉所有的ThreadLocal。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值