`
asia007
  • 浏览: 17843 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

struts2.0的工作原理

阅读更多

struts2并不是一个陌生的web框架,它是以Webwork的设计思想为核心,吸收struts1的优点,可以说

struts2是struts1和Webwork结合的产物。 

struts2 的工作原理图:

一个请求在Struts2框架中的处理分为以下几个步骤:

1.客户端发出一个指向servlet容器的请求(tomcat);

2.这个请求会经过图中的几个过滤器,最后会到达FilterDispatcher过滤器。

3.过滤器FilterDispatcher是struts2框架的心脏,在处理用户请求时,它和请求一起相互配合访问struts2

  的底层框架结构。在web容器启动时,struts2框架会自动加载配置文件里相关参数,并转换成相应的类。

  如:ConfigurationManager、ActionMapper和ObjectFactory。ConfigurationManager 存有配置文件的一

  些基本信息,ActionMapper存有action的配置信息。在请求过程中所有的对象(Action,Results,

  Interceptors,等)都是通过ObjectFactory来创建的。过滤器会通过询问ActionMapper类来查找请求中

  需要用到的Action。

4.如果找到需要调用的Action,过滤器会把请求的处理交给ActionProxy。ActionProxy为Action的代理对象

  。ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类。

5.ActionProxy创建一个ActionInvocation的实例。ActionInvocation在ActionProxy层之下,它表示了

  Action的执行状态,或者说它控制的Action的执行步骤。它持有Action实例和所有的Interceptor。 

6.ActionInvocation实例使用命名模式来调用,1. ActionInvocation初始化时,根据配置,加载Action相

  关的所有Interceptor。2. 通过ActionInvocation.invoke方法调用Action实现时,执行Interceptor。在

  调用Action的过程前后,涉及到相关拦截器(intercepetor)的调用。

7. 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果

  通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表

  示的过程中可以使用Struts2 框架中继承的标签。

分享到:
评论

相关推荐

    Struts2.0视频教程+struts2.0中文教程

    Struts2.0是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。这个"Struts2.0视频教程+struts2.0中文教程"包含的资源旨在...

    struts2.0开发实例

    在你的实例中,`struts2.0开发实例.txt`文件很可能包含了一些具体的操作步骤、配置示例或者Action类的代码片段,这些都是学习和理解Struts2.0工作原理的重要参考资料。通过这个实例,你可以了解到如何将Struts2.0...

    Struts 2.0

    Struts 2.0 是一个基于 Model-View-Controller (MVC) 设计模式的Java Web应用程序框架。它并非Struts 1的直接升级,而是源自...理解和掌握Struts 2的工作原理和配置方式,对于构建高效、可维护的Java Web应用至关重要。

    struts 2.0 详细配置

    ### Struts 2.0 详细配置解析 #### 一、Struts 2.0 简介 ...通过上述介绍,我们可以了解到 Struts 2.0 的核心概念及其工作原理。掌握了这些基础知识后,开发者可以更轻松地使用该框架构建高质量的 Web 应用程序。

    三大框架中文文档中的struts2.0开发手册(程序员必看)

    - 拦截器的工作原理和如何自定义拦截器。 - 如何配置Struts2的配置文件,包括struts.xml和struts.properties。 - 结果类型的配置和使用,例如Redirect、Stream等。 - 插件的安装和使用,例如使用Freemarker或...

    struts2.0的 jar包和源文件

    这个压缩包包含了Struts2.0的核心jar文件以及可能的源代码,使得开发者可以直接查看和理解框架内部的工作原理。 在Java开发中,jar(Java Archive)文件是一种归档格式,它集合了多个类文件和其他资源,便于分发和...

    struts2.0环境配置

    Struts2.0是Java Web开发中一个非常重要的框架,它基于MVC(Model-View-Controller)设计模式,提供了一种结构化的解决方案,用于构建更健壮、可维护的Web应用程序。本教程将详细讲解如何在Myeclipse集成开发环境中...

    Struts 2.0全攻略之Struts 2.0参考手册

    Struts 2.0是Java Web开发中一个非常重要的MVC框架,它为构建基于J2EE...通过学习以上知识点,并结合提供的Struts 2.0参考手册,开发者可以更好地理解Struts 2.0的工作原理,从而更高效地构建和维护Java Web应用程序。

    struts2.0源代码

    Struts2.0是Java Web开发中非常重要的一个框架,它是Apache软件基金会的Jakarta项目下的一个产品。这个框架主要用于构建MVC(Model-View-Controller)架构的应用程序,为开发者提供了一种更加灵活和强大的控制层解决...

    struts2.0的基本jar包

    在开发Struts2.0项目时,开发者需要理解Action、拦截器(Interceptor)、结果(Result)和配置文件(如struts.xml)的工作原理。Action是业务逻辑的载体,拦截器则提供了在Action执行前后进行额外处理的能力,如登录...

    struts2.0教程合集

    首先,"Struts+2+(中文PDF版).rar"很可能是Struts2.0的基础教程,以中文形式详细介绍了框架的基本结构、配置和工作原理。这份文档通常会涵盖Action、拦截器(Interceptor)、结果(Result)和配置文件(struts.xml)...

    Struts2.0中文教程

    5. **配置与拦截器**:讨论Struts2.0的核心配置文件,如struts-default.xml、struts-plugin.xml和自定义的struts.xml,以及拦截器的原理和使用,包括预定义的拦截器栈和自定义拦截器的实现。 6. **OGNL(Object-...

    struts2.0和hibernate 共2类JAR包

    Struts2.0和Hibernate是两个非常重要的Java框架,它们在企业级Web应用程序开发中扮演着核心角色。Struts2.0是MVC(模型-视图-控制器)设计模式的一种实现,主要用于处理用户请求和控制应用程序流程。而Hibernate则是...

    Struts2.0框架书籍

    Struts2.0框架是Java Web开发中的一款经典MVC(Model-View-Controller)框架,它极大地...通过系统的理论学习和实践操作,可以深入理解Struts2.0的工作原理,提高开发效率,为构建高质量的Java Web应用打下坚实基础。

    Struts2.0文件上传原理

    以下是对Struts2.0文件上传原理的详细解释: 1. **HTTP协议与表单提交** 在HTML表单中,如果需要上传文件,`<form>`标签必须包含`enctype="multipart/form-data"`属性。这是因为普通POST请求无法处理二进制数据,...

    struts2.0中文帮助手册

    Struts2.0是Apache软件基金会的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架。这个框架的主要目的是为了简化Web应用开发,提高代码的可维护性和可扩展性。Struts2.0在...

    struts2.0中文教程

    在本教程中,你将学习如何配置Struts2.0环境,创建第一个Hello World程序,理解Action和ActionMapping的配置,使用OGNL进行数据交互,了解拦截器的原理和编写,以及如何利用视图技术展示数据。此外,还将深入探讨...

    struts2.0 经典书籍 源码 标签学习合集

    接下来,"源码"部分可以帮助你理解Struts2.0框架的内部工作原理。通过阅读源码,你可以学习到: 1. **框架架构**:Struts2.0是如何接收和处理HTTP请求的,以及ActionInvocation、FilterDispatcher等关键组件的作用...

Global site tag (gtag.js) - Google Analytics