目录

 

简单的介绍一下Struts2(谈谈你对struts2的理解)。

简单说一下struts2的执行流程?


简单的介绍一下Struts2(谈谈你对struts2的理解)。

(1)

Struts2是一个基于MVC设计模式的Web应用框架,在MVC设计模式中Struts2作为控制器(Controller)来建立模型与视图的数据交互。

struts2是在 struts 1 和 WebWork 的技术基础上进行了合并的全新的框架。其全新的 Struts 2 的体系结构与 Struts 1 的体 系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,使业务逻辑控制器与Servlet API完全脱离开。

我们可以把 struts2 理解为一个大大的 servlet,而这个 servlet 就是 ActionServlet。struts2 在处理客户端请求时,会先读取 web.xml 配置文件,根据前端控制器将符合条件的请求 分给各个不同的 Action 处理。 在此之前,会把ActionServlet 会把数据封装成一个 javaBean。 

struts2 框架提供了许多的拦截器,在封装数据的过程中,我们可以对数据进行一些操 作,例如:数据校验等等。当 Action 执行完后要返回一个结果视图,这个结果视图可以跟据 struts2 的配置文件中 配置,选择转发或者重定向。



(2)struts2运行原理如下:

 

struts2的理解,struts2的流程

关于图中的 Key:
Servlet Filters:过滤器链,客户端的所有请求都要经过 Filter 链的处理。
Struts Core: Struts2 的核心部分,但是 Struts2 已经帮我们做好了,我们不需要去做这个
Interceptors, Struts2 的拦截器。 Struts2 提供了很多默认的拦截器,可以完成日常开发的绝大部分工作;而我们自定
义的拦截器,用来实现实际的客户业务需要的功能。
User Created,由开发人员创建的,包括 struts.xml、 Action、 Template,这些是每个使用 Struts2 来进行开发的人
员都必须会的
 

简单说一下struts2的执行流程?

1.FilterDispatcher 是整个 Struts2 的调度中心,也就是 MVC 中的 C(控制中心),根据 ActionMapper 的结果来决定是否处理请求,如果 ActionMapper 指出该 URL 应该被 Struts2 处理,那么它将会执行 Action 处理,并停止过滤器链上还没有执行的过滤器。
2.ActionMapper 会判断这个请求是否应该被 Struts2 处理,如果需要 Struts2 处理, ActionMapper 会返回一个对象来描述请求对应的 ActionInvocation 的信息。
3.ActionProxy,它会创建一个 ActionInvocation 实例,位于 Action 和 xwork 之间,使得我们在将来有机会引入更多的实现方式,比如通过 WebService 来实现等。
4.ConfigurationManager 是 xwork 配置的管理中心,可以把它看做 struts.xml 这个配置文件在内存中的对应。
5.struts.xml,是开发人员必须光顾的地方。是 Stuts2 的应用配置文件,负责诸如 URL 与 Action 之间映射关系的配置、以及执行后页面跳转的 Result 配置等。
6.ActionInvocation:真正调用并执行 Action,它拥有一个 Action 实例和这个 Action 所依赖的拦截器实例。ActionInvocation 会按照指定的顺序去执行这些拦截器、 Action 以及相应的 Result。
Interceptor(拦截器):是 Struts2 的基石,类似于 JavaWeb 的 Filter, 拦截器是一些无状态的类,拦截器可以自动拦截 Action,它们给开发者提供了在 Action 运行之前或 Result 运行之后来执行一些功能代码的机会。
7.Action:用来处理请求,封装数据。
 

相关文章: