1.Struts2概览:MVC模式
MVC(Model-View_Controller)设计模式:即模式、视图、控制器
2.三个核心框架组件
(1)控制器:FilterDispatche
Struts中使用的MVC变体被称为前端控制器(front controller)MVC。 在Struts2中,控制器总是第一个被触发的组件,它负责为URL找到对应的Action。
FilterDispache在struts2中扮演这个控制器的角色。 可以通过注解和XML两种方式进行配置,让框架为URL找到对应的Action。 由于Struts2 是朝着零配置发展的,所以注解的方式更好一点。
(2)模型:Action
模型这个概念,可以理解为 “数据模型”和“业务逻辑”的结合体。
Struts2中的Action主要做两个工作:
1 Action将业务逻辑调用封装到一个单独的工作单元中。
2 Action是一个数据传输的场所。
Action完成工作之后,就会想提交请求的用户返回视图即result了。
(3)视图:Result
向前台呈现页面,JSP,Velocity等等。 是MVC模式的呈现组件。
3.Struts2的工作原理
(1)拦截器
[color=red]拦截器是Struts2框架的核心部分[/color],每一个动作都有一组拦截器与之相关联。可以在动作之前、之后调用。
[color=red] 拦截器可以将常见的、横切的任务在简洁、可重用的组件中定义。之后只要调用这个拦截器就可以完成功能, 实现了和动作代码的分离。[/color]
(2)ValueStack和OGNL
1 ValueStack是保管和请求处理相关的所有数据的一个存储区域。Struts2将所有相关的数据集中保存在ValueStack中。
2 OGNL是一种允许我们对ValueStack中数据引用和操作的表达式语言。
3 ValueStack和OGNL不属于框架中的任务组件,它独立贯穿于整个数据处理的过程。因为ValueStack存储在一个线程本地对象(ThreadLoacl)中,它的名字叫做ActionContext。
ActionContext中包含所有的数据,使用ThreadLocal可以在相同线程中的任何地方访问到这些数据。 因为[color=red]Struts2中每一个请求的处理都发生在同一个线程中[/color]。
MVC(Model-View_Controller)设计模式:即模式、视图、控制器
2.三个核心框架组件
(1)控制器:FilterDispatche
Struts中使用的MVC变体被称为前端控制器(front controller)MVC。 在Struts2中,控制器总是第一个被触发的组件,它负责为URL找到对应的Action。
FilterDispache在struts2中扮演这个控制器的角色。 可以通过注解和XML两种方式进行配置,让框架为URL找到对应的Action。 由于Struts2 是朝着零配置发展的,所以注解的方式更好一点。
(2)模型:Action
模型这个概念,可以理解为 “数据模型”和“业务逻辑”的结合体。
Struts2中的Action主要做两个工作:
1 Action将业务逻辑调用封装到一个单独的工作单元中。
2 Action是一个数据传输的场所。
Action完成工作之后,就会想提交请求的用户返回视图即result了。
(3)视图:Result
向前台呈现页面,JSP,Velocity等等。 是MVC模式的呈现组件。
3.Struts2的工作原理
(1)拦截器
[color=red]拦截器是Struts2框架的核心部分[/color],每一个动作都有一组拦截器与之相关联。可以在动作之前、之后调用。
[color=red] 拦截器可以将常见的、横切的任务在简洁、可重用的组件中定义。之后只要调用这个拦截器就可以完成功能, 实现了和动作代码的分离。[/color]
(2)ValueStack和OGNL
1 ValueStack是保管和请求处理相关的所有数据的一个存储区域。Struts2将所有相关的数据集中保存在ValueStack中。
2 OGNL是一种允许我们对ValueStack中数据引用和操作的表达式语言。
3 ValueStack和OGNL不属于框架中的任务组件,它独立贯穿于整个数据处理的过程。因为ValueStack存储在一个线程本地对象(ThreadLoacl)中,它的名字叫做ActionContext。
ActionContext中包含所有的数据,使用ThreadLocal可以在相同线程中的任何地方访问到这些数据。 因为[color=red]Struts2中每一个请求的处理都发生在同一个线程中[/color]。