一、ActionServlet的初始化
ActionServlet作为Struts组件的前端控制器,由于web.xml的相应配置:
<load-on-startup>0</load-on-startup>
在应用一加载时即会被实例化并调用其init方法,init方法所做的主要工作有二:
1. 加载struts配置文件,并创建用于封装配置信息的ModuleConfig对象
2. 加载资源文件,并创建用于封装资源文件的MessageResources对象
需要注意两点:如果web.xml有多模块配置,将创建多个ModuleConfig对象和MessageResources对象分别用于封装各个模块的struts配置文件和资源文件。
针对各个模块所创建的ModuleConfig对象和MessageResources对象将存储在ServletContext中,对应的属性名中有该模块名称的相应标识。
另外,如果有相应配置的话,init方法还将初始化数据源和PlugIn
二、ActionServlet的process
所有形如*.do的请求(根据web.xml中的相关配置)将提交给ActionServlet,最终将调用其process方法。process方法的主要工作有三:
1. 根据请求信息获知所请求的模块名称,从ServletContext中获得与请求模块对应的的ModuleConfig对象,并存储到request中。
2. 根据模块信息获得相应的RequestProcessor对象,一个模块对应一个RequestProcessor对象,RequestProcessor对象将关联与所属模块对应的ModuleConfig对象。
3. 调用RequestProcessor对象的process方法,将request和response作为参数传递给它。
三、RequestProcessor的process
RequestProcessor对象的process方法的主要工作有五步:
1. 调用自己的 processPreprocess(request, response)方法,该方法不进行任何操作,用于子类重写扩展其功能。
2. 获得与请求地址所匹配的ActionMapping对象,AcionMapping对象用于封装一个特定acion的配置信息。
3. 根据ActionMapping中的配置信息获得ActionForm对象(该对象将缓存到request或session中),并将表单数据填充到ActionForm中,然后根据ActionMapping的配置决定是否验证ActionForm,如果验证,将调用ActionForm的validate方法,若其返回的ActionErros对象中包含ActionMessage对象则表示验证失败,将转向action配置信息input属性所指示的地址。
4. 如果ActionForm无需验证或验证通过将创建并缓存与请求地址匹配的Action对象,将ActionMapping对象、ActionForm对象、request和response作为参数调用其execute方法。
5. 根据Action对象的execute方法返回的ActionForward对象,将请求转发或重定向到该ActionForward所封装的地址。
分享到:
相关推荐
下面我们将详细探讨Struts 1.2的控制流程。 **一、用户请求** 当用户在浏览器中输入URL并点击提交时,这个HTTP请求会被发送到Web服务器。如果URL指向的是Struts应用,那么Struts框架会接手处理这个请求。 **二、...
Struts2是一个强大的Java web应用程序框架,用于构建和管理MVC(模型-视图-控制器)架构的应用。这个“struts2小程序”很可能是开发者利用Struts2框架开发的一个小型项目,可能包含了基本的CRUD操作或其他特定功能。...
在Struts2中,拦截器扮演着至关重要的角色,它们是实现业务逻辑和控制流程的核心组件。本知识点主要聚焦于如何利用Struts2的拦截器进行权限控制。 **一、Struts2拦截器原理** 在Struts2中,拦截器是基于Java的动态...
Struts2是一个强大的Java web应用程序框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性、可扩展性极高的Web应用的工具。在这个项目中,我将深入介绍Struts2的核心概念、工作原理以及...
在了解Struts程序的执行流程之前,我们需要首先理解几个核心概念: 1. ActionServlet:是Struts框架中的控制器,负责接收用户请求,调用Action的execute()方法处理请求,并根据返回的ActionForward对象进行页面跳转...
Struts的中央控制器 对Struts的中央控制器的处理进行简单介绍 及其流程
总的来说,Struts2提供了一个灵活且强大的架构,用于组织和控制Web应用程序的流程。通过其内置的拦截器和自定义拦截器,可以扩展和定制各种功能,满足不同项目的需求。同时,它的模型驱动和类型转换机制简化了数据...
**JSP教程Struts控制器详解** 在Web应用程序开发中,Struts框架是一个极其重要的MVC(Model-View-Controller)架构实现,它极大地简化了Java Web应用的开发过程。Struts控制器是Struts框架的核心组成部分,负责处理...
Struts-config详解 Struts-config.xml 是Struts框架...在struts应用程序中,struts-config.xml文件扮演着核心角色,它控制着struts应用程序的流程和逻辑。因此,了解struts-config.xml文件的配置和使用是非常重要的。
Struts 是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它为开发者提供了一种规范化的构建可维护性高、结构清晰的Web应用的方法。以下是Struts工作流程的详细说明: 1. **模型(Model)**...
FilterDispatcher是控制器的核心,就是MVC的Struts 2实现中控制层(Controller)的核心。 FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个(HttpServlet Request)请求,如果ActionMapper...
通过本书,读者可以学习如何设置Struts项目环境,创建第一个Struts应用,理解Struts的工作流程,编写Action类,以及使用Struts的标签库简化JSP页面的编写。同时,书中提供的实例将帮助读者巩固理论知识,提高实际...
我们已在前面学习了Servlet 数据库应用,有了JSP、Servlet 、JDBC的一些知识、理解和...2. Struts2基本流程 3. 了解核心控制器FilterDispatcher及在web.xml中的配置 4. 了解业务控制器Action及在struts.xml中的配置
本压缩包文件“struts1工作流程.rar”可能包含了一份关于Struts1框架工作流程的详细文档“struts1工作流程.doc”。下面将详细介绍Struts1的工作流程及其相关知识点。 1. **MVC架构**: Struts1基于MVC设计模式,...
Struts2是一个强大的Java web框架,它为开发者提供了一种优雅的方式来组织和构建应用程序。在Struts2中,拦截器是实现业务逻辑控制和增强功能的重要机制,它们扮演着类似于AOP(面向切面编程)的角色,允许在动作...
Struts2是一个流行的Java Web开发框架,它遵循MVC(模型-视图-控制器)设计模式,用于构建可维护性和可扩展性高的Web应用程序。在深入理解Struts2的工作流程之前,我们需要先了解一些基本概念。 1. **MVC模式**: ...
- **理解Struts控制流程**:从用户发起请求到响应生成的过程,涉及前端控制器、模板方法等设计模式的运用,以及各组件间的协作机制。 - **配置开发环境**:熟悉Eclipse+Tomcat的集成,以及MyEclipse插件的使用,为...
在Struts2中,Action类扮演控制器的角色,处理用户的请求,并调用模型层进行业务逻辑处理。同时,Struts2通过配置文件(struts.xml)定义了请求和Action之间的映射,使得请求路由变得清晰易懂。 该示例可能包含以下...