`

struts2架构图

阅读更多

此文件copy自struts2 reference.个人认为这个图对理解struts2非常有帮助,所以就拿来放到自己的博客上了。



In the diagram, an initial request goes to the Servlet container (such as Jetty or Resin) which is passed through a standard filter chain. The chain includes the (optional)ActionContextCleanUp   filter, which is useful when integrating technologies such as  SiteMesh Plugin . Next, the required  FilterDispatcher   is called, which in turn consults theActionMapper   to determine if the request should invoke an action.

If the ActionMapper determines that an Action should be invoked, the FilterDispatcher delegates control to the  ActionProxy . The ActionProxy consults the frameworkConfiguration Files   manager (initialized from the  struts.xml   file). Next, the ActionProxy creates an  ActionInvocation , which is responsible for the command pattern implementation. This includes invoking any  Interceptors   (the  before   clause) in advance of invoking the  Action   itself.

Once the Action returns, the ActionInvocation is responsible for looking up the proper  result   associated with the  Action result code   mapped in  struts.xml . The result is then executed, which often (but not always, as is the case for  Action Chaining ) involves a template written in  JSP   or  FreeMarker   to be rendered. While rendering, the templates can use the  Struts Tags   provided by the framework. Some of those components will work with the ActionMapper to render proper URLs for additional requests.

All objects in this architecture (Actions,  Results ,  Interceptors , and so forth) are created by an  ObjectFactory . This ObjectFactory is pluggable. We can provide our own ObjectFactory for any reason that requires knowing when objects in the framework are created. A popular ObjectFactory implementation uses Spring as provided by the  Spring Plugin .

Interceptors are executed again (in reverse order, calling the  after   clause). Finally, the response returns through the filters configured in the  web.xml . If the ActionContextCleanUp filter is present, the FilterDispatcher will  not   clean up the ThreadLocal  ActionContext . If the ActionContextCleanUp filter is not present, the FilterDispatcher will cleanup all ThreadLocals.

注意:与struts1不同,struts2对用户的每一次请求都会创建一个action,所以struts2的action是线程安全的。
struts1中的action是singleton(单例)的,struts2中的action是prototype(原型)的。

  • 大小: 64.7 KB
分享到:
评论

相关推荐

    struts2架构图.jpg

    struts2架构图

    Struts2架构图

    S2SH框架图,理解S2SH结构很有帮助。

    struts核心架构分析图

    struts核心架构分析图struts核心架构分析图struts核心架构分析图struts核心架构分析图

    struts2 源码分析

    Struts2 的架构图主要包括 Filter chain、ActionMapper、ActionProxy、ActionInvocation 和 Result 等组件。Filter chain 负责处理请求,Filter 主要包括 ActionContextCleanUp,它主要清理当前线程的 ActionContext...

    都市供求信息网-struts2架构的例程序(sqlserver数据库)

    都市供求信息网是一个基于Struts2架构开发的网站示例,它主要用于展示如何在实际项目中运用Struts2框架来构建动态、数据驱动的Web应用。Struts2是一个强大且灵活的MVC(Model-View-Controller)框架,它简化了Java ...

    Struts2的系统架构

    Struts2的架构和运行流程 之 3.1 Struts2的系统架构

    Struts2技术架构图.gif

    Struts2技术架构图

    Struts2-架构图.PNG

    Struts2-架构图.PNG

    java技术架构图汇总.doc

    Struts2 架构图展示了 Struts2 框架的整体结构,包括 FilterDispatcher、ActionProxy、Action 等组件。Struts2 的主要功能是提供了一个灵活的框架来开发 Web 应用程序。 知识点: * Struts2 框架的架构组件:...

    struts2工作原理及源码分析学习笔记

    1. **Struts2架构图**: 当一个HTTP请求到达服务器时,它首先通过一系列Filter(过滤器),包括ActionContextCleanUp,该过滤器负责清理当前线程的ActionContext。接着,FilterDispatcher接管,它依赖ActionMapper...

    struts2_1架构图.jpg

    struts2_1架构图

    struts2源代码分析

    1. **Struts2架构图** 请求在Struts2框架中的处理流程始于Filter链,其中Filter主要包括`ActionContextCleanUp`和`FilterDispatcher`。`ActionContextCleanUp`的作用是清理当前线程的`ActionContext`,确保每个请求...

    struts2图片上传并预览

    Struts2是一个强大的Java web应用程序框架,用于构建和部署可维护、高性能的MVC(Model-View-Controller)架构的应用程序。在Web开发中,图片上传和预览是常见的功能需求,尤其对于用户交互丰富的应用来说。Struts2...

    struts2 上传图片显示

    Struts2是一个流行的Java Web框架,它为开发者提供了一种模型-视图-控制器(MVC)架构,便于构建动态Web应用。在本场景中,我们关注的是如何使用Struts2来实现图片上传并显示的功能,同时生成缩略图。 首先,我们...

    struts框架原理图

    根据提供的文件信息,“Struts框架原理图”主要阐述了Struts框架的工作原理、流程以及页面间的跳转机制。为了更好地理解和应用Struts框架,本文将深入解析这些关键知识点。 ### Struts框架概述 Struts是一个开源的...

    struts2 原理 解析 图

    在`struts2原理图.png`中,可能会详细展示这一系列步骤,包括请求的接收、拦截器链的执行、Action的调用以及最终视图的渲染。这张图是理解Struts2工作流程的重要辅助工具,通过它你可以直观地看到每个组件如何协同...

    java架构图示

    根据给定的信息,本文将对Java相关的架构图进行详细的解读与分析,主要涵盖Spring、Hibernate、Struts(包括Struts1和Struts2)、JSF、Seam、Grails、DWR、J2EE、Oracle等技术栈的核心概念及其架构特点。 ### 1. ...

    各种系统架构图及其简介(Spring+IBatis+Struts1+Struts2+Hibernat)

    各种系统架构图及其简介(Spring+IBatis+Struts1+Struts2+Hibernat)

    Struts2体系结构图例详解

    Struts2的核心目标是提供一个清晰的、高效的架构,帮助开发者构建可维护性高、扩展性强的Web应用。 在Struts2的体系结构中,主要有以下几个关键组件: 1. **Filter Dispatcher**:这是Struts2的核心组件,作为...

    struts2实现单个图片上传

    Struts2是一个强大的Java EE应用程序框架,用于构建MVC(模型-视图-控制器)架构的Web应用。在本教程中,我们将深入探讨如何利用Struts2实现单个图片的上传功能,无需JavaScript的额外开发。 首先,我们需要理解...

Global site tag (gtag.js) - Google Analytics