首页 > 代码库 > Struts2笔记03——架构(转)

Struts2笔记03——架构(转)

原始内容:https://www.tutorialspoint.com/struts_2/basic_mvc_architecture.htm

 

从一个比较高的层次来看,Struts2是一个pull-MVC(或者MVC2)框架。

Struts2的 Model-View-Controller 模式通过以下五个核心组件实现:

  • Actions

  • Interceptors

  • Value Stack / OGNL

  • Results / Result types

  • View technologies

Struts2和传统的MVC框架略有不同,尽管有一些重叠,在Struts2中,Action扮演的是模型的角色,而非控制器。

技术分享

上图描绘了Struts2的高层次架构。控制器是通过Struts2 分派servlet过滤器以及拦截器进行实现,模型是通过Actions进行实现,而视图则是结果类型结果的结合。值栈和OGNL提供公共的thread、linking以及与其他组件之间的集成。

除了上述的组件之外,还有许多配置相关的信息。例如web应用的配置,Actions的配置,拦截器的配置,results的配置等。

这仅仅只是Struts2 MVC模式的体系结构的一个概述,在之后的章节中,我们将详细了解各个组件。

请求的生命周期(重要!!!)

基于上图,我们可以很容易地描述Struts2中请求的生命周期:

  • 用户发送一个请求给服务,期望获得某些资源(比如,页面)
  • 过滤分派器(FilterDispatcher)查看这个请求,然后确定适当的Action.
  • 通过验证、文件上传等方式来配置“拦截器(interceptors)”功能。
  • 被选中的Action执行响应请求的操作
  • 另外,如果需要的话,已配置的“拦截器”可以被用来做任何“后期处理”
  • 最后,由视图显示结果并返回给用户。

Struts2笔记03——架构(转)