第3章 提纲挈领 —— Struts2概览

1. Struts2和Struts1.x有什么区别,它们各自的发展足迹又如何

Struts1.X系列开发框架在开始的时候再世界范围内流行起来,很长一段时间内,其流行程度几乎可以说垄断了整个Web开发领域,成为Web开发领域的世纪开发标准。随着时代的进步,许多程序员发现了Struts1.X在设计中存在的严重不足,于是开始慢慢没落。

Apache社区和Opensymphony开源组织联合推出了Struts2,随着Struts2的不断升级,我们不仅从中获得了越来越便利的开发模式,也可以体会到整个web开发的发展历程。

Struts2来自于Webwork2,并且与Struts1.x完全不兼容

 

2. Struts2依赖于那些核心技术?

表示层技术、设计模式、OGML、XWork

 

3.Struts2可以应用在什么样的项目中

当需要建立一个由复杂的业务逻辑和众多页面构成的Web应用是,我们不得不采用分层开发模式。Struts2就可以作为一个表示层的解决方案,帮助我们进行与表示层相关的开发工作,冰提供在表示层范围内高度的可扩展性和可维护性。 

 

4. Struts2可以分成哪两条逻辑运行主线

第一条主线:

      Struts2的初始化:init方法驱动执行

第二条主线:

      Struts2处理http请求:doFilter方法驱动执行

两条主线完全没有交叉,时间节点和触发条件都不同。

 

5. Struts2在处理Http请求时,可以分为哪两个主要阶段

第一阶段 —— Http请求预处理

    在这个阶段,执行控制权在Struts2手中

    针对于每个Http请求进行预处理,为真正的业务逻辑执行做必要的数据环境和运行环境的准备。

    依赖于web容器,并时时刻刻将于web容器打交道作为主要工作。 

第二阶段 —— XWork执行业务逻辑

    在这个阶段,执行控制权在XWork手中

    预处理完后,http请求的数据被封装为Java对象,由XWork负责执行具体的业务逻辑。

   不依赖于Web容器,完全由XWork框架驱动整个执行过程。

 

6. Struts2通过哪些元素的相互配合来完成初始化运行主线

    1.  数据结构的定义:

    核心构成元素:容器及其实现类

元素名称 Java Package 描述
Container com.opensymphony.xworks.inject 容器定义接口,是Struts2内部进行对象管理的基础构建
ContainerImpl com.opensymphony.xworks.inject 容器的实现类,内部实现了Struts2进行对象生命周期管理和依赖注入的基本功能
PackageConfig com.opensymphony.xworks.config.entities PackageConfig实体类,其中定义了时间响应模型的完整数据结构

   两个相辅相成的元素配合共同完成:加载接口(Provider)和构造器(Builder)

元素名称 Java Package 描述
ConfigurationProvider com.opensymphony.xworks.config 配置加载接口的统一接口。Struts2将初始化元素分为Container和PackageConfig两类,这里使用多重继承将两类配置加载接口进行统一
ContainerProvider com.opensymphony.xworks.config Container的配置加载接口,其实现类需要负责初始化容器中的所有对象
PackageProvider com.opensymphony.xworks.config PackageConfig的配置加载接口,其实现类需要负责初始化用于处理事件请求的配置对象
ContainerBuilder com.opensymphony.xworks.inject Container的构造器,用于在初始化时构造容器
PackageConfigBuilder PackageConfig的内部类 PackageConfig的构造器,用于在初始化时构造PackageConfig

   2. 初始化行为的操作接口

    辅助元素

元素名称 Java Package 描述
ConfigurationManager com.opensymphony.xworks.config 配置行为操作代理类,包含了所有ContainerProvider和PackageProvider的实现
Configuration com.opensymphony.xworks.config Struts2配置数据的管理类,作为运行时获取配置的基本接口。承载所有配置的结构化数据和操作方法

 

7. Xwork框架主要有哪些元素构成?他们之间有什么关系

元素名称 Java Package 描述
ActionProxy com.opensymphony.xwork2 XWork生产线中的执行环境,整个生产线的入口,如一个口袋一样封装了所有的执行细节
ActionInvocation com.opensymphony.xwork2 XWork生产线中的调用者,负责调用整个生产线中各个元素的执行次序
Interceptor com.opensymphony.xwork2.interceptor XWork生产线中的工序序列,可以丰富整个生产线的功能
Action com.opensymphony.xwork2 XWork生产线的核心工序,负责核心业务逻辑调用和实现
ActionContext com.opensymphony.xwork2 XWork生产线的辅助设备,提供整个生产线工作运行所必须的数据环境
ValueStack com.opensymphony.xwork2.util XWork数据环境中提供表达式运算的工具类,也是XWork中进行数据访问的基础
Result com.opensymphony.xwork2 XWork生产线中的末端设备,负责输出生产线的生产结果

8. Struts2有哪些配置表现形式

 

9. Struts2中的配置元素可以为什么哪两个大类

容器配置元素  关系映射元素

 

10. 什么是配置元素的对象化过程

 

11. Struts2的配置元素的对象化过程由哪两个大元素配合完成

posted @ 2012-10-22 23:15  三块钱的其其  阅读(244)  评论(0编辑  收藏  举报