[quote]Struts2是一个优雅的,可扩展的JAVA EE web框架。框架设计的目标贯穿整个开发周期,从开发到发布,包括维护的整个过程。Struts2吸收了Struts1和WebWork两者的优势。
Struts2的特性:
l 拥有由积极活跃的开发人员与用户组成的成熟社区
l Annotation和XML配置选项
l 基于POJO并易于测试的Action
l 与Spring,SiteMesh 和Tiles的集成
l 与OGNL表达式语言的集成
l 基于主题的标签库与Ajax标签
l 多种视图选项 (JSP,Freemarker,Velocity和XSLT)
l 使用插件来扩展或修改框架特性。
Struts2的主要jar包
l commons-logging-1.0.4.jar
Struts2框架的日志包
l freemarker-2.3.8.jar
Struts2的UI标签的模版
l ognl-2.6.11.jar
对象图导航语言包
l struts2-core-2.0.11.jar
Struts框架的核心类库
l xwork-2.0.4.jar
XWork类库,Struts2基于此构建
Struts流程
1) 客户端提交一个(HttpServletRequest)请求,如上文在浏览器中输入[url=http://localhost]http://localhost[/url]: 8080/bookcode/ch2/Reg.action就是
提交一个(HttpServletRequest)请求。
2) 请 求被提交到一系列(主要是3层)的过滤器(Filter),如(ActionContextCleanUp、其他过滤器(SiteMesh等)、
FilterDispatcher)。注意:这里是有顺序的,先ActionContext CleanUp,再其他过滤器(Othter Filters、SiteMesh等),
最后到FilterDispatcher。FilterDispatcher是控制器的核心,就是MVC的Struts 2中实现控制层(Controller)的核心。
3) FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个(HttpServlet Request)请求,如果ActionMapper决定
需要调用某个Action,FilterDispatcher则把请求的处理交给ActionProxy。
4) ActionProxy通过Configuration Manager(struts.xml)询问框架的配置文件,找到需要调用的Action类。例如,用户注册示例将
找到UserReg类。
5) ActionProxy创建一个ActionInvocation实例,同时ActionInvocation通过代理模式调用Action。但在调用之前,ActionInvocation
会根据配置加载Action相关的所有Interceptor(拦截器)。
6) 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果result。
本文来自CSDN博客,转载请标明出处:[url=http://blog.csdn.net/xiaoping8411/archive/2009/11/04/4766715.aspx]http://blog.csdn.net/xiaoping8411/archive/2009/11/04/4766715.aspx[/url][/quote]
Struts2的特性:
l 拥有由积极活跃的开发人员与用户组成的成熟社区
l Annotation和XML配置选项
l 基于POJO并易于测试的Action
l 与Spring,SiteMesh 和Tiles的集成
l 与OGNL表达式语言的集成
l 基于主题的标签库与Ajax标签
l 多种视图选项 (JSP,Freemarker,Velocity和XSLT)
l 使用插件来扩展或修改框架特性。
Struts2的主要jar包
l commons-logging-1.0.4.jar
Struts2框架的日志包
l freemarker-2.3.8.jar
Struts2的UI标签的模版
l ognl-2.6.11.jar
对象图导航语言包
l struts2-core-2.0.11.jar
Struts框架的核心类库
l xwork-2.0.4.jar
XWork类库,Struts2基于此构建
Struts流程
1) 客户端提交一个(HttpServletRequest)请求,如上文在浏览器中输入[url=http://localhost]http://localhost[/url]: 8080/bookcode/ch2/Reg.action就是
提交一个(HttpServletRequest)请求。
2) 请 求被提交到一系列(主要是3层)的过滤器(Filter),如(ActionContextCleanUp、其他过滤器(SiteMesh等)、
FilterDispatcher)。注意:这里是有顺序的,先ActionContext CleanUp,再其他过滤器(Othter Filters、SiteMesh等),
最后到FilterDispatcher。FilterDispatcher是控制器的核心,就是MVC的Struts 2中实现控制层(Controller)的核心。
3) FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个(HttpServlet Request)请求,如果ActionMapper决定
需要调用某个Action,FilterDispatcher则把请求的处理交给ActionProxy。
4) ActionProxy通过Configuration Manager(struts.xml)询问框架的配置文件,找到需要调用的Action类。例如,用户注册示例将
找到UserReg类。
5) ActionProxy创建一个ActionInvocation实例,同时ActionInvocation通过代理模式调用Action。但在调用之前,ActionInvocation
会根据配置加载Action相关的所有Interceptor(拦截器)。
6) 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果result。
本文来自CSDN博客,转载请标明出处:[url=http://blog.csdn.net/xiaoping8411/archive/2009/11/04/4766715.aspx]http://blog.csdn.net/xiaoping8411/archive/2009/11/04/4766715.aspx[/url][/quote]