1. 初始的请求通过一条标准的过滤器链,到达 servlet 容器 ( 比如 tomcat 容器,WebSphere 容器 )。
2. 过滤器链包括可选的 ActionContextCleanUp 过滤器,用于系统整合技术,如 SiteMesh 插件。
3. 接着调用 FilterDispatcher(或者StrutsPrepareAndExecuteFilter),FilterDispatcher 查找 ActionMapper,以确定这个请求是否需要调用某个 Action。
4. 如果 ActionMapper 确定需要调用某个 Action,FilterDispatcher 将控制权交给 ActionProxy。
5. ActionProxy 依照框架的配置文件(struts.xml),找到需要调用的 Action 类。
6. ActionProxy 创建一个 ActionInvocation 的实例。ActionInvocation 先调用相关的拦截器 (Action 调用之前的部分),最后调用 Action。
7. 一旦 Action 调用返回结果,ActionInvocation 根据 struts.xml 配置文件,查找对应的转发路径。返回结果通常是(但不总是,也可能是另外的一个 Action 链)JSP 技术或者 FreeMarker 的模版技术的网页呈现。Struts2 的标签和其他视图层组件,帮助呈现我们所需要的显示结果。在此,我想说清楚一些,最终的显示结果一定是 HTML 标签。标签库技术和其他视图层技术只是为了动态生成 HTML 标签。
8. 接着按照相反次序执行拦截器链 ( 执行 Action 调用之后的部分 )。最后,响应通过滤器链返回(过滤器技术执行流程与拦截器一样,都是先执行前面部分,后执行后面部)。如果过滤器链中存在 ActionContextCleanUp,FilterDispatcher 不会清理线程局部的 ActionContext。如果不存在 ActionContextCleanUp 过滤器,FilterDispatcher 会清除所有线程局部变量。
分享到:
相关推荐
**Struts2工作流程详解**: 1. **客户端请求**:用户通过浏览器发起HTTP请求,目标通常是一个Action,如`http://localhost:8080/yourApp/yourAction.action`。 2. **过滤器链**:请求首先经过一系列过滤器,包括`...
在深入探讨Struts2的工作流程之前,我们先了解一下MVC模式的基本概念。MVC模式将应用逻辑分隔为三个部分:模型(Model)处理业务逻辑,视图(View)负责展示数据,控制器(Controller)协调用户输入和模型间的交互。...
### 二、Struts2工作流程详解 #### 1. 请求初始化 一切始于客户端发起的HTTP请求,该请求通常包含用户提交的数据和请求的资源标识符。请求首先到达Web服务器的Servlet容器,如Apache Tomcat。 #### 2. 过滤器链 ...
### Struts2的工作流程及配置文件详解 #### 一、Struts2简介 Struts2是基于MVC设计模式的Java Web开发框架之一,它继承了Struts1的优点,并在此基础上进行了大量的改进和扩展。Struts2框架的核心是拦截器...
### Struts1的工作流程详解 #### 一、概述 Struts1是Apache Struts的第一个版本,它是基于Java Servlet/JavaServer Pages技术构建的MVC框架。对于初学者来说,了解Struts1的工作流程是非常重要的,这有助于理解...
在上述的描述中,我们了解了Struts工作流程的关键步骤: 1. **客户端请求**:当用户在浏览器中输入一个以`.do`结尾的URL(例如http://localhost:8080/helloapp/Hello.do)时,这个请求会被Web服务器捕获并传递给...
#### Struts2工作流程 1. **用户提交请求**:客户端通过HTTP协议向服务器发送请求。 2. **FilterDispatcher拦截请求**:所有的请求首先被FilterDispatcher捕获。 3. **ActionMapper确定Action**:...
本压缩包文件“struts1工作流程.rar”可能包含了一份关于Struts1框架工作流程的详细文档“struts1工作流程.doc”。下面将详细介绍Struts1的工作流程及其相关知识点。 1. **MVC架构**: Struts1基于MVC设计模式,...
以下是Struts工作流程的详细说明: 1. **模型(Model)**: 模型层主要负责应用程序的状态管理和业务逻辑处理。在Struts框架中,模型通常由JavaBean或Enterprise JavaBeans(EJB)来实现。JavaBean是简单的Java类...
本篇文章将深入解析Struts2的工作流程,帮助开发者理解其内部机制。 首先,我们需要了解Struts2的核心概念。Struts2基于拦截器(Interceptor)模式,它通过一系列拦截器链来处理请求。当用户发起HTTP请求时,请求会...
总结来说,Struts的工作流程涉及了请求解析、对象创建、数据验证、业务逻辑处理和视图呈现等多个环节,有效地实现了MVC模式,提高了代码的可维护性和复用性。理解并掌握这一流程对于开发高质量的Java web应用至关...
4. **ActionMapper**:Struts2会使用`ActionMapper`来解析请求URL,并确定相应的Action类和方法。URL中的部分可以映射到Action的名称和方法名称。 5. **ActionProxy创建**:根据ActionMapper的结果,框架会创建一个...
从给定的文件信息来看,主要讨论的是Struts框架的工作流程以及部分与CComboBox相关的细节。Struts是一个基于MVC(Model-View-Controller)设计模式的开源框架,主要用于简化Java Web应用程序的开发过程。下面将详细...
#### 三、Struts2工作流程详解 **初始化请求:** - 请求由客户端发起,通过标准的过滤器链到达服务器端的servlet容器(如Tomcat或WebSphere)。 **过滤器链:** - 过滤器链可以包含多个过滤器,例如`...
Struts2是一个流行的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。它提供了许多内置功能,如国际化、异常处理、插件扩展等,以简化开发流程。在Struts2中,配置是至关重要的,因为它们定义了...
**Struts2核心工作流程与原理** 1. **流程概述**:在Struts2中,请求首先由`StrutsPrepareAndExecuteFilter`处理。如果请求是Action,框架将创建`ActionInvocation`,并通过`ActionProxy`准备`Action`和拦截器链。...