`

struts2之运行流程分析

 
阅读更多

 

 

struts2运行流程

 


 

相关的几个 API

 

ActionMapping:Simple class that holds the action mapping information used to invoke a Struts action. The name and namespace are required

ActionMapper:When given an HttpServletRequest, the ActionMapper may return null if no action invocation request matches, or it may return an ActionMapping that describes an action invocation for the framework to try

ActionProxy:ActionProxy is an extra layer between XWork and the action so that different proxies are possible. 

ActionInvocation:An ActionInvocation represents the execution state of an Action. It holds the Interceptors and the Action instance. By repeated re-entrant execution of the invoke() method, initially by the ActionProxy, then by the Interceptors, the Interceptors are all executed, and then the Action and the Result.

 

Struts2 运行流程分析

 

1. 请求发送给 StrutsPrepareAndExecuteFilter

2. StrutsPrepareAndExecuteFilter 询问 ActionMapper: 该请求是否是一个 Struts2 请求(即是否返回一个非空的 ActionMapping 对象)

3. 若 ActionMapper 认为该请求是一个 Struts2 请求,则 StrutsPrepareAndExecuteFilter 把请求的处理交给 ActionProxy

4. ActionProxy 通过 Configuration Manager 询问框架的配置文件,确定需要调用的 Action 类及 Action 方法

5. ActionProxy 创建一个 ActionInvocation 的实例,并进行初始化

6. ActionInvocation 实例在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。

7. Action 执行完毕,ActionInvocation 负责根据 struts.xml 中的配置找到对应的返回结果。调用结果的 execute 方法,渲染结果。在渲染的过程中可以使用Struts2 框架中的标签。

8. 执行各个拦截器 invocation.invoke() 之后的代码

9. 把结果发送到客户端

 

 

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

相关推荐

    Struts2 运行流程分析

    现在,让我们深入探讨Struts2的运行流程。 1. **请求接收**:当用户在浏览器中输入URL并提交请求时,该请求首先会被web服务器(如Apache Tomcat)捕获。如果URL映射与Struts2配置文件中的Action配置相匹配,请求将...

    struts2工作流程

    接下来,我们详细分析Struts2的工作流程: 1. **请求接收**: 当用户在浏览器中发送HTTP请求到服务器时,Struts2框架首先通过一个前端控制器(Front Controller),即`StrutsPrepareAndExecuteFilter`,拦截这个...

    struts2 源码分析

    Struts2 是一个基于MVC 模式的Web 应用程序框架,它的源码分析可以帮助我们更好地理解框架的内部机制和工作流程。下面是Struts2 源码分析的相关知识点: 1. Struts2 架构图 Struts2 的架构图主要包括 Filter chain...

    struts2源代码分析

    综上所述,Struts2的工作流程大致如下:请求到达服务器后,FilterDispatcher过滤器开始工作,它启动拦截器链,然后通过ActionProxy找到并执行对应的Action。Action执行完成后,结果被返回给Dispatcher,Dispatcher再...

    struts2部分源码分析

    本篇文章将深入探讨Struts2的运行原理,通过源码分析来揭示其内部工作机制。 首先,我们从核心组件开始。Struts2的核心组件包括Action、FilterDispatcher、Interceptor和Result。Action是业务逻辑的载体,它接收...

    struts2源码分析总结

    本文将深入探讨Struts2的源码分析,特别是关于StrutsPrepareAndExecuteFilter的初始化过程,这是Struts2的核心组件之一,负责处理HTTP请求。 首先,我们来看`StrutsPrepareAndExecuteFilter`的初始化。这个过滤器...

    Struts2源码分析

    总的来说,Struts2的源码分析可以帮助开发者深入理解其内部机制,包括请求处理流程、拦截器的运作方式以及视图组件的实现。这有助于提高应用的可维护性,优化性能,并使开发者能够更好地定制和扩展框架。对于熟悉...

    Struts2之拦截器原理分析及使用-上案例struts007

    在Struts2中,拦截器的执行流程是由ActionInvocation对象控制的。ActionInvocation是执行链的核心,它包含了当前Action的实例、Action的执行方法以及一系列拦截器。当一个请求到来时,ActionInvocation会按照配置的...

    留言板留言板struts2留言板struts2

    Struts2是一个强大的Java web应用程序框架,用于构建和部署企业级的MVC(Model-View-Controller)架构的Web应用。...通过分析和运行这个项目,可以深入理解Struts2的工作原理及其在实际应用中的运用。

    Struts2视频教程

    - **深入源码**:针对某些重要知识点,比如Action的执行流程、拦截器的工作原理等,本教程还会带领学员一起探索源码,加深对框架内部机制的理解。 ### 结语 通过以上对Struts2各个方面的介绍,可以看出Struts2不仅...

    struts2小程序 struts2代码

    Struts2是一个强大的Java web应用程序框架,用于...通过分析源代码,可以深入理解Struts2的工作原理、配置机制以及MVC模式在实际项目中的应用。对于初学者,这是一个很好的实践平台,能帮助他们掌握Web开发的基本技能。

    struts2 ,struts2 demo

    在提供的“struts2 demo”压缩包中,你可以找到这些概念的具体实现,包括Action类、视图页面、配置文件等,通过分析和运行这些示例,你可以深入理解Struts2的工作原理和用法。这个压缩包对于初学者来说是一个很好的...

    Struts2拦截器原理分析

    拦截器是Struts2框架的核心组成部分,它们在请求处理流程中起到了关键的作用。在本文中,我们将深入探讨Struts2拦截器的工作原理。 ### 一、拦截器概念 拦截器是基于Java的动态代理机制实现的,它允许我们在Action...

    struts2讲义

    #### 三、Struts2开发流程分析 ##### 3.1 Struts2执行流程 1. **客户端发送请求**:当客户端通过浏览器向服务器发送请求时,请求首先会被Struts2的核心过滤器`StrutsPrepareAndExecuteFilter`捕获。 2. **拦截器组...

    struts2框架源码分析及问题汇总

    Struts2是一个强大的Java web应用程序开发框架,它基于MVC(Model-View-Controller)设计模式,极大地简化了创建功能丰富的、交互式的Web应用的过程。本文将深入剖析Struts2的源码,揭示其工作原理,并汇总常见问题...

    Struts2源码阅读

    本文将深入探讨Struts2的核心概念、类和请求处理流程。 首先,我们来看Struts2的架构流程。当客户端发起一个请求时,请求会经过一系列的Filter,首先是`ActionContextCleanUp`过滤器,它的主要任务是清理当前线程的...

    struts2之配置实用案例struts001

    这个"struts2之配置实用案例struts001"很可能是针对初学者或者开发者提供的一份实践教程,旨在帮助他们理解和掌握Struts2的基本配置和用法。 在Struts2框架中,配置是至关重要的部分,它决定了应用程序的行为和流程...

    struts2-core-2.0.11源码

    7. **Action(Actions)**:`org.apache.struts2.dispatcher.ng.executors`包下的`ActionExecutor`接口定义了如何执行Action,而`ActionInvocation`则封装了Action的执行流程。 8. **请求处理(Request Handling)*...

Global site tag (gtag.js) - Google Analytics