正在加载图片...
MyEclipse6Java开发中文教程 Struts 运行Sus2需要下列的条件: Servlet aP24, JSP AP120,Java5(或者使用连4 版本,运行于JDK14)。当然换句话说用 Tomcat5或者更高版本就没有任何问题了 Struts2的执行流程大致如此所示:Web服务器启动解析 struts xml,初始化消息文件, ction路径映射等资源,初始化框架→用户请求 XXX. action→Suts2过滤器使用对象工 厂( Object Factory,可以是自带或者是 Spring)创建 Action类的示例→执行loC和拦截器 (包括解析表单参数,文件上传,将解析结果注入 Action对象)→调用 Action中用户编 写的业务方法→根据返回的结果(Resu)路径转向视图层→视图层进行显示(包括调用标 签库等)。 关于其底层结构,从网上搜集到的一些资料认为: WebWork2,实际上是 Webwork+ XWok的总集, Webwork1x版本中,整个框架采用了紧耦合的设计(类似 Struts1x), 而 WebWork20之后, Webwork被拆分为两个部分,即 Webwork2x+XWok2x。当 个请求发起后,从请求的路径名中解析出对应的 Action名称,然后 Webwork2x框架会 遍历 Http Servletrequest、 Http Session、 Servletcontext中的数据,并将其复制到内部的 MpD实现中,至此之后,所有数据操作均在此Map结构中进行,从而将内部数据结构与 Servlet aP|相分离。至此, Webwork的工作阶段结束,数据将传递给XWk进行下一步 处理。从这里也可以看到 Webwork和Ⅹok之间的切分点, Webwork为XWok提供 了一个面向 Servlet的协议转换器,将 Servlet相关的数据转构转换成 WOrk所需要的通 用数据格式,而 WOrk将完成实际的服务调度和功能实现。这样一来,以XWok为核心 只需替换外围的协议转换组件,即可实现不同技术平台之间的切换。那么 Struts2呢,就是 这样一个 Struts2核心平台+ WOrk的实现,其中的 WOrk部分执行和 Servlet AP无关的 流程处理,而Stts2的核心层则提供将 Servlet层提供的数据进行独立封装的过程,进而 XWok基于这些数据进行操作,这样就实现了一个完整的开发框架。XWok相当于一个插 件一样和现有框架组合,构成一个完整的流程处理+ Servlet操纵框架。所以大家会奇怪的 看到Sus2一共有两个核心jar文件: struts2core-20.11ar和 work-204ja,而且更 让人奇怪的是前一个文件中的包定义是 org. apache struts2,而后一个文件中的则是 com.opensymphony. work2,其原因就在于此。本段所介绍的内容仅供提供更多信息之用, 笔者不保证任何准确性和有效性。⑧ 为了便于读者了解相关内容,我把搜集到的一篇关于 Struts1和2的短文列在这里(来 源见本章结尾参考资料) 特性比较 Action类 Struts1x要求Acon类要扩展自一个抽象基类。 Struts1x的一个共有的问题是面向抽象类编程而不是面向 接口编程 Struts2的Acon类实现了一个 Action接口,连同其他接口一起来实现可选择和自定义的服务。 Struts2提 供一个名叫 Action Support的基类来实现一般使用的接口。当然, Action接口不是必须的。任何使用 execute 方法的POJO对象可以被当作 Struts2的 Action对象来使用 线程模型 Struts1 X Action类是单例类,因为只有一个实例来控制所有的请求。单例类策略造成了一定的限制,并且 给开发带来了额外的烦恼。 Action资源必须是线程安全或者同步的 Struts2 Action对象为每一个请求都实例化对象,所以没有线程安全的问题。(实践中, servlet容器给每 刘长炯著MyEclipse 6 Java 开发中文教程 4 刘长炯著 运行 Struts 2 需要下列的条件:Servlet API 2.4,JSP API 2.0,Java 5(或者使用 j4 版本,运行于 JDK1.4)。当然换句话说用 Tomcat 5 或者更高版本就没有任何问题了。 Struts 2 的执行流程大致如此所示:Web 服务器启动解析 struts.xml,初始化消息文件, Action 路径映射等资源,初始化框架→用户请求 XXX.action →Struts 2 过滤器使用对象工 厂(Object Factory,可以是自带或者是 Spring)创建 Action 类的示例 →执行 IOC 和拦截器 (包括解析表单参数,文件上传,将解析结果注入 Action 对象) →调用 Action 中用户编 写的业务方法 →根据返回的结果(Result)路径转向视图层 →视图层进行显示(包括调用标 签库等)。 关于其底层结构,从网上搜集到的一些资料认为:WebWork 2,实际上是 Webwork + XWork 的总集,Webwork1.x 版本中,整个框架采用了紧耦合的设计(类似 Struts 1.x), 而 WebWork 2.0 之后,Webwork 被拆分为两个部分,即 Webwork 2.x +XWork 2.x。当 一个请求发起后,从请求的路径名中解析出对应的 Action 名称,然后 Webwork 2.x 框架会 遍历 HttpServletRequest、HttpSession、ServletContext 中的数据,并将其复制到内部的 Map 实现中,至此之后,所有数据操作均在此 Map 结构中进行,从而将内部数据结构与 Servlet API 相分离。至此,Webwork 的工作阶段结束,数据将传递给 XWork 进行下一步 处理。从这里也可以看到 Webwork 和 XWork 之间的切分点,Webwork 为 XWork 提供 了一个面向 Servlet 的协议转换器,将 Servlet 相关的数据转构转换成 XWork 所需要的通 用数据格式,而 XWork 将完成实际的服务调度和功能实现。这样一来,以 XWork 为核心, 只需替换外围的协议转换组件,即可实现不同技术平台之间的切换。那么 Struts 2 呢,就是 这样一个 Struts 2 核心平台+XWork 的实现,其中的 XWork 部分执行和 Servlet API 无关的 流程处理,而 Struts 2 的核心层则提供将 Servlet 层提供的数据进行独立封装的过程,进而 XWork 基于这些数据进行操作,这样就实现了一个完整的开发框架。XWork 相当于一个插 件一样和现有框架组合,构成一个完整的流程处理+Servlet 操纵框架。所以大家会奇怪的 看到 Struts 2 一共有两个核心 jar 文件:struts2-core-2.0.11.jar 和 xwork-2.0.4.jar,而且更 让人奇怪的是前一个文件中的包定义是 org.apache.struts2,而后一个文件中的则是 com.opensymphony.xwork2,其原因就在于此。本段所介绍的内容仅供提供更多信息之用, 笔者不保证任何准确性和有效性。☺ 为了便于读者了解相关内容,我把搜集到的一篇关于 Struts1 和 2 的短文列在这里(来 源见本章结尾参考资料): 特性比较: Action 类 Struts1.x 要求 Action 类要扩展自一个抽象基类。Struts1.x 的一个共有的问题是面向抽象类编程而不是面向 接口编程。 Struts2 的 Action 类实现了一个 Action 接口,连同其他接口一起来实现可选择和自定义的服务。Struts2 提 供一个名叫 ActionSupport 的基类来实现一般使用的接口。当然,Action 接口不是必须的。任何使用 execute 方法的 POJO 对象可以被当作 Struts 2 的 Action 对象来使用。 线程模型 Struts1.x Action 类是单例类,因为只有一个实例来控制所有的请求。单例类策略造成了一定的限制,并且 给开发带来了额外的烦恼。Action 资源必须是线程安全或者同步的。 Struts2 Action 对象为每一个请求都实例化对象,所以没有线程安全的问题。(实践中,servlet 容器给每一
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有