Struts框架结构分析

一个请求在Struts2框架中的处理大概分为以下几个步骤:

1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求.

2 这个请求经过一系列的过滤器(Filter).(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)

3 接着核心控制器FilterDispatcher被调用,FilterDispatcher询问ActionMapper(Action映射器)来决定这个请是否需要调用某个Action.

4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy.

5 ActionProxy通过Configuration Manager(配置管理器)询问框架的配置文件,找到需要调用的Action类.

6 ActionProxy创建一个ActionInvocation的实例。

7 ActionInvocation实例使用命名模式来调用,回调Action的execute方法,该execute方法获取用户请求参数,然后执行某种数据库操作。在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。

8 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper.

在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的.

 

建立一个Java Web项目,提取最少运行Struts2应用的包集合(摘自Struts官方文档): 

Install the Minimum Set of Libraries and Configuration Files
The following files are a minium requirement for your application.
Filename Description
struts2-core.jar Framework library itself, found in distribution root directory
xwork.jar XWork 2 library on which Struts 2 is built (version 2.0 or later)
ognl.jar Object Graph Navigation Language (OGNL), the expression language used throughout the framework
freemarker.jar All UI tag templates are written in Freemarker (also a good option for your own views)
commons-logging.jar Commons logging, which the framework uses to support transparently logging to either Log4J or JDK 1.4+
web.xml Java web application configuration file that defines the filters (and other components) for your web application
struts.xml Framework configuration file that defines the actions, results, and interceptors for your application

If any Struts 2 Plugins are included, then other JARs may be needed too. For example, the optional Spring Plugin requires the Spring JARs to be present.

你可能感兴趣的:(spring,数据结构,框架,freemarker,struts)