1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求;
2、这个请求经过一过滤器(StrutsPrepareAndExecuteFilterFilter)
3、接着Dispatcher被调用,Dispatcher询问ActionMapping来决定这个请求是否需要调用某个Action;
4、如果ActionMapping决定需要调用某个Action,Dispatcher把请求的处理交给ActionProxy;
5、ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类;
6、ActionProxy创建一个ActionInvocation的实例。
7、ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper。
相关推荐
Struts2 源码分析 Struts2 是一个基于MVC 模式的Web 应用程序框架,它的源码分析可以帮助我们更好地理解框架的内部机制和工作流程。下面是Struts2 源码分析的相关知识点: 1. Struts2 架构图 Struts2 的架构图...
本文将深入探讨Struts2的源码分析,特别是关于StrutsPrepareAndExecuteFilter的初始化过程,这是Struts2的核心组件之一,负责处理HTTP请求。 首先,我们来看`StrutsPrepareAndExecuteFilter`的初始化。这个过滤器...
struts2源码详细解析51CTO下载-struts2源代码分析(个人觉得非常经典)
在深入理解Struts2的工作原理时,源码分析是必不可少的步骤。Struts2的核心设计理念和设计模式相比Struts1.x有了显著的变化,这使得它成为一个独立且成熟的框架。 首先,Struts2的架构基于WebWork的核心,这意味着...
struts的执行的核心流程时序图
通过分析中兴Struts2的时序图,我们可以理解框架如何有效地协调各个组件,以实现高效且可维护的web应用。 在《时序图及简要说明.doc》文档中,可能会包含更详细的解释,比如各个组件的具体交互细节、特定场景下的...
总的来说,Struts2的源码分析涉及Action的创建与执行、Interceptor的调用链、FilterDispatcher的请求调度以及Result的展示机制。通过对这些关键组件的深入理解和代码研究,开发者可以更好地掌握Struts2框架,提高...
本文将深入探讨Struts2的核心概念、类和请求处理流程。 首先,我们来看Struts2的架构流程。当客户端发起一个请求时,请求会经过一系列的Filter,首先是`ActionContextCleanUp`过滤器,它的主要任务是清理当前线程的...
Struts2_动态方法调用,使用struts2架构的动态方法进行资源调用
源码分析是提升编程技能和解决问题的关键,特别是对于复杂的框架如Struts2,理解其内部工作原理能够帮助我们优化应用性能,修复潜在问题,并进行定制化开发。 首先,Struts2的核心组件包括Action、Result、...
在Struts2中,动态方法调用(Dynamic Method Invocation,DMI)是一种特性,允许我们通过URL直接调用Action类的方法,而无需在配置文件中显式指定。这在某些情况下提供了更大的灵活性。 在Struts2的动态方法调用中...
最新版的Struts2源码可以从GitHub的Apache官方仓库获取,这为我们提供了深入理解其内部工作原理和定制功能提供了可能。 Struts2的核心特性包括: 1. **Action与结果**:在Struts2中,业务逻辑处理主要由Action类...
深入理解Struts2的源码对于提升Java Web开发技能,尤其是在面试中讨论底层实现时,具有非常重要的价值。 首先,我们来看看Struts2的核心组件和设计理念: 1. **Action**:在Struts2中,Action类是业务逻辑处理的...
总结来说,Struts2拦截器及其时序图展示了拦截器在Action处理过程中的工作原理和顺序。通过拦截器链,开发者可以灵活地对Action的调用进行增强和控制,实现诸如数据校验、日志记录等功能,这些功能是构建企业级Java ...
通过上述步骤和知识点,你可以对Struts 2有更深入的理解,并且能够利用Eclipse的强大工具进行调试和代码分析,提升开发效率。同时,熟悉源码也有助于定制化开发和解决实际问题。在实践中不断探索和学习,才能更好地...
这个配置表示所有以`save_`开头的请求都会映射到`SaveAction`类上,Struts2会自动根据请求的剩余部分尝试调用相应的方法。比如,请求`save_user`会被解析为调用`SaveAction`的`user()`方法。 在实际开发中,Struts...
`org.apache.struts2.dispatcher`包包含了Struts2的核心类,如Dispatcher,它是处理请求的关键组件。`org.apache.struts2.impl`包是对WebWork的扩展,提供了StrutsActionProxy、StrutsActionProxyFactory和...
Struts2是一个基于MVC(Model...通过阅读这些关键类的源码,你可以理解Struts2内部的流程控制和数据传递,从而更好地利用这个框架。同时,学习源码还可以帮助你解决实际开发中遇到的问题,提升你的问题定位和调试能力。