开源项目

知识点

相关文章

更多

最近更新

更多

Struts2 架构分析

2019-04-24 09:49|来源: 网路

从一个高水平角度看,Struts2 是一个MVC拉动的(或MVC2)框架,Struts2 的模型-视图-控制器模式是通过以下五个核心部分进行实现的:

  • 操作(Actions)

  • 拦截器(Interceptors)

  • 值栈(Value Stack)/OGNL

  • 结果(Result)/结果类型

  • 视图技术


而Struts2 与传统的MVC框架略有不同,因为它由Action扮演模型的角色,而不是控制器,虽然这样会有一些重叠。


Struts 2的架构


上图描述了Struts2 高级系统架构下的模型、视图及控制器。控制器是通过Struts2 分派servlet过滤器以及拦截器进行实现,模型是通过Actions进行实现,而视图则是结果类型和结果的结合。值栈和OGNL提供共同的路线、链接以及与其他组件之间的集成。

除了上述部分,还有许多组件相关的信息。web应用程序组件、Actions组件、拦截器组件、结果组件等等。

这些是Struts2 MVC模式的体系结构概述,在随后的章节中,我们将详细了解各个部分。

请求生命周期

通过上述图片的描述,我们可以依照下面几点解释在Struts2 中用户的请求生命周期:

  • 用户发送一个资源需求的请求到服务器(例如:页面)。

  • 核心控制器查看请求后确定适当的动作。

  • 使用验证、文件上传等配置拦截器功能。

  • 执行选择的动作来完成请求的操作。

  • 另外,如果需要的话,配置的拦截器可做任何后期处理。

  • 最后,由视图显示结果并返回给用户。

相关问答

更多
  • struts2比较容易学吧 struts2的视频 http://video-java.blogspot.com/search/label/Struts2 struts1的视频这里 http://video-java.blogspot.com/search/label/Struts
  • 我认为深入详解好点,两本都看过一部分
  • Spring MVC和Struts2的区别: 1. 机制:spring mvc的入口是servlet,而struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这样就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了。 2. 性能:spring会稍微比struts快。spring mvc是基于方法的设计,而sturts是基于类,每次发一次请求都会实例一个action,每个action都会被注入属性,而spring基 ...
  • struts2 作用[2022-09-12]

    作为web层框架应该大体实现以下功能: 1.获取表单内容,并组织生成参数对象 2.根据请求的参数转发请求给适当的控制器 3.在控制器中调用业务接口 4.将业务接口返回的结果包装起来发送给指定的视图,并由视图完成处理结果的展现 5.做一些简单的校验或是国际化工作 无论是登录还是上传什么,没有其他层的协助是无法实现的,当然你也可以硬编码的来实现业务逻辑或数据库操作,这样的做法扩展性和可维护性极差 hibernate是操作数据库的一种框架,它简化了直接使用jdbc api的代码操作数据库的复杂性和冗余性 spri ...
  • 我正在学。 在看langsin的风中叶。 感觉还不错。 里面带着两个PDF: Practical.Apache.Struts2.Web.2.0.Projects.pdf Manning.Struts.2.in.Action.May.2008.pdf 但是都是英文版。 在国内有人写了关于Struts2的书。
  • 我只有Struts和Spring的视频,但是我可以保证,这视频你绝对非常喜欢,而且视频讲的非常易懂,我很多同学都向我要了,Mybatis只有一些文本资料,公司给的,需要的话可以发给你。
  • 我只有Struts和Spring的视频,但是我可以保证,这视频你绝对非常喜欢,而且视频讲的非常易懂,我很多同学都向我要了,Mybatis只有一些文本资料,公司给的,需要的话可以发给你。
  • 类: • Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。 • Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。 线程模式: • Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一 ...
  • struts1和struts2 是2个完全不同的框架,其实struts2核心就是 webwork框架 struts1以ActionServlet作为核心控制器,由ActionServlet负责拦截用户的所有请求。Struts 1框架有3个重要组成部分:Action、ActionForm和ActionForward对象。ActionForm必须实现ActionForm的基类,设计上并不是真正的POJO。 struts2核心控制器是FilterDispatcher,Struts 2用于处理用户请求的Action ...
  • struts1和struts2 是2个完全不同的框架,其实struts2核心就是 webwork框架 struts1以ActionServlet作为核心控制器,由ActionServlet负责拦截用户的所有请求。Struts 1框架有3个重要组成部分:Action、ActionForm和ActionForward对象。ActionForm必须实现ActionForm的基类,设计上并不是真正的POJO。 struts2核心控制器是FilterDispatcher,Struts 2用于处理用户请求的Action ...