The Spark of Thinking

Focus on Eclipse Tools.

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  3 随笔 :: 27 文章 :: 4 评论 :: 0 Trackbacks
  1. 服务启动的时候,ServletDispatcher 通过DefaultConfiguration 先加载webwork.properties 和default.properties ,并查找webwork.properties 中webwork.custom.properties 配置的其他属性文件加载。加载完毕后再通过属性中配置的webwork.custom.i18n.resources 加载国际化资源文件供以后使用。之后再查找webwork.configuration 属性看是否用户指定了自己的Configuration 实现,如果有就用用户自己的Configuration 实现,否则返回WebWork自己的实现(DelegatingConfiguration)。大部分情况下,使用WebWork 自己的实现已经足够,用户不需要自己去实现一个Configuration,除非你想加载XML 等格式的配置文件。
  2. 每一个以*.action 结尾的请求,都会被映射到ServletDispatcher 调度器的service 方法进行处理。首先把init 方法读取的encoding 、locale 配置设置到request 和response 中,之后对request 进行判断,看是否属于多类型参数(multipart/formdata)的请求,如果是,则根据WebWrok 配置信息对request 进行相应的包装。包装完request 对象后,service 方法又调用了ServletDispatche日、 自身的serviceAction 方法,在该方法中调用了createContextMap创建Action 上下文,并通过ActionProxyFactory 创建ActionProxy 实例,ActionProxy又会调用ConfigurationManager 去读取XWork 的配置信息并获得当前请求的Action 的所有配置信息,之后遍历执行这个Action 对应的所有拦截器,然后执行Action 对应的方法(默认的是execute),再根据Action 执行返回的值去调用执行相应的Result(返回结果处理)的方法做一定的处理后,把输出结果返回给客户端。
  • ActionContext
    xwork框架的ActionContext是Action执行时的上下文,存放Action执行时需要用到的对象。在使用webwork时,其中放有Parameter、Session、ServletContext、Locale等信息。这样,webwork负责将Servlet相关数据转换为与ServletAPI无关的Map对象(即ActionContext),使得xwork的Action实现与web层、逻辑层与表现层的解耦。
  • ServletActionContext
    提供直接与Servlet容器交互的途径。通过它,可以取得HttpServletRequest、HttpServletResponse 、ServletConfig、ServletContext、PageContext 对象。但是,使用ServletActionContext意味着Action与ServletAPI的紧密耦合。
posted on 2006-07-28 14:18 The Spark of Thinking 阅读(231) 评论(0)  编辑  收藏 所属分类: Webwork2

只有注册用户登录后才能发表评论。


网站导航: