体系结构
从一个高水平看,Struts 2 是一个 pull-MVC(或 MVC2)框架。Struts 2 的模型-视图-控制器模式由下面的五个核心部件实现:
-
动作
-
拦截器
-
值栈/OGNL
-
结果/结果类型
- 视图技术
Struts 2 与传统的 MVC 框架稍有不同,其中动作担任模型的角色,而不是控制器的角色,虽然有一些重叠。
上面的图描绘模型,视图和控制器到 Struts 2 高级架构。控制器是由 Struts 2 调度 servlet 过滤器和拦截器实现的,模型是由动作实现的,视图是由结果类型和结果结合而成的。值栈和 OGNL 提供共同主线,连接和集成其他组件。
除了上面的组件,还有很多与配置相关的信息。不仅要配置 web 应用程序,也要配置动作,拦截器,结果,等等。
这是 Struts 2 MVC 模式的体系结构的概述。我们将在后续章节中更详细的介绍每个组件。
请求生命周期
以上面的图为基础,它可以解释 Struts 2 中用户的请求的生命周期,如下所示:
-
为了请求一些资源(即页面),用户发送请求到服务器。
-
FilterDispatcher 查看请求,然后确定适当的动作。
-
配置的拦截器功能适用于如验证,文件上传等等。
-
执行选定的动作来执行所请求的操作。
-
再次,如果需要,配置的拦截器应用于做任何后处理。
- 最后由视图准备好的结果,并且将结果返回给用户。