`
raymond.chen
  • 浏览: 1436934 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Struts1的工作原理

阅读更多

Struts1体系结构:


 

        客户端发送请求到服务端,被struts1的核心控制器ActionServlet接收,ActionServlet根据struts-config.xml里的映射关系找到对应的Action,若找不到就返回500错误到JSP页面。若有就在Action里的execute()方法里执行相应的逻辑操作,比如调用Model层的方法,然后通过ActionForward,跳转到对应的JSP页面。

 

 

Struts1工作原理图:

 

 Struts1的核心组件:

    ActionServlet:核心控制器

    RequestProcessor:处理异常的核心组件

    ActionForm:接收页面传过来的数据

    Action:控制器,主要是从ActionForm中接收页面传过来的数据,然后进行逻辑处理

    ActionForward:页面跳转,跳转到JSP页面

    ActionMapping:配置每个Action所对应的映射关系

 

1、初始化:Struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在web服务器启动时实例化ActionServlet类,ActionServlet会读取配置文件(struts-config.xml)的配置信息,为不同的Struts模块初始化相应的ModuleConfig对象:

    ActionConfig

    ControllerConfig

    FormBeanConfig

    ForwardConfig

    MessageResourcesConfig

 

当ActionServlet接收到来自客户端的请求时,就会去检索和请求相匹配的ActionMapping实例,如果没有找到则返回500错误。

 

如果找到了就检查对应的ActionForm实例是否存在,

    如果存在,先把该实例相关数据reset清空一下,然后就把用户提交的表单数据填充到ActionForm实例中;

    如果不存在,就创建一个ActionForm对象,再把用户提交的表单数据填充到ActionForm实例中。

 

根据配置,看看是否要对表单进行验证,如果需要验证,则调用ActionForm的validate方法对表单进行验证。

    如果验证没通过,则返回错误信息;

    如果不需要验证,或者需求验证但validate方法返回null或者是返回一个不包含ActionMessage的ActionErrors对象的话,表明验证成功。

 

ActionServlet根据ActionMapping实例所包含的映射信息决定将请求发送给哪个Action,如果对应的Action实例不存在,则创建该Action的实例,然后调用该Action的execute方法。

 

执行完Action实例的execute方法后,该方法会返回一个ActionForward对象。

 

ActionServlet再把客户端发过来的请求,转发给ActionForward对象所指向的JSP组件。

 

ActionForward所指向的JSP组件再生成动态网页,送回给客户端。

  • 大小: 63.3 KB
  • 大小: 37.1 KB
分享到:
评论

相关推荐

    Struts1工作原理浅析【转】

    Struts1 工作原理浅析 一、Struts1 工作原理概述 Struts1 是一个基于 MVC 模式的 Web 应用框架,它的工作原理可以分为三个部分:Model、View 和 Controller。Model 负责处理业务逻辑,View 负责表现层,Controller...

    servlet模拟struts1工作原理

    Struts1是Apache组织开发的一个基于MVC(Model-View-Controller)设计模式的Web应用框架,它简化了开发...实际开发中,虽然Struts1已经被Struts2和其他现代框架取代,但了解其工作原理对理解和使用其他框架仍然有裨益。

    Struts1工作原理浅析.doc

    Struts1工作原理浅析 1.引入struts1 2.struts1工作原理 3.struts1工作机制 4.struts1的安装于基本配置 5.ActionServlet

    Struts1与Struts2原理 区别详解汇总

    #### Struts1工作流程 1. **用户提交请求**:客户端向服务器发送HTTP请求。 2. **ActionServlet接收请求**:ActionServlet接收到请求后,根据`struts-config.xml`文件中的配置决定调用哪个Action来处理请求。 3...

    struts1运行原理

    很不错的struts运行原理深刻解说,初学者很受用

    struts2工作原理

    struts2工作原理、请求响应流程。。。。。。。。。。。。。。。

    Struts的工作原理

    在深入理解Struts的工作原理之前,我们先来简单回顾一下MVC模式的基本概念: **Model(模型)**:这是应用程序的核心业务逻辑,通常由Java Beans或Enterprise JavaBeans (EJBs)实现,它们处理数据和业务规则。 **...

    Hibernate、Spring和Struts工作原理及使用理由

    【标题】:“Hibernate、Spring和Struts工作原理及使用理由” 【内容】: Hibernate是一个流行的Java持久化框架,它的核心工作原理主要包括以下步骤: 1. **读取并解析配置文件**:Hibernate通过读取hibernate....

    Struts2 工作原理 Struts2框架 有图

    Struts2框架作为Java Web开发领域中的一款经典MVC(Model-View-Controller)框架,其工作原理涉及到了一系列复杂的组件交互与流程控制。本文将深入解析Struts2的工作流程,帮助开发者理解其核心机制。 ### 一、...

    struts的工作原理

    学习的时候总结出来的,相当清晰的描述了struts2

    struts1原理,struts2原理,spring mvc原理,struts1和struts2,struts和spring mvc

    **Struts1原理:** Struts1是Apache组织的一个开源项目,它引入了ActionServlet来处理HTTP请求。当用户发起请求时,请求会被Struts1的Front Controller(即ActionServlet)拦截,然后根据配置文件(struts-config....

    struts2工作原理图

    理解Struts2的工作原理是深入学习和有效利用该框架的关键。下面将详细介绍Struts2的工作流程。 1. **请求接收**:当用户在浏览器中提交一个HTTP请求时,这个请求首先会被Web服务器(如Apache Tomcat)接收到。如果...

    struts1 mvc基本原理

    本文将深入探讨Struts1的基本原理,帮助理解其架构设计和工作流程。 **1. MVC架构** MVC模式是软件工程中一种用于分离业务逻辑、数据和用户界面的设计模式。在Struts1中,Model代表应用程序的数据和业务逻辑,View...

    struts1与Struts2的流程

    **Struts1工作原理及流程** 1. **体系结构**:在Struts1中,核心控制器是`ActionServlet`,它负责处理HTTP请求,并根据`struts-config.xml`配置文件中的映射找到对应的`Action`。如果找不到匹配的`Action`,则返回...

    Spring+Hibernate+Struts工作原理

    【Struts工作原理】 Struts是一个MVC(Model-View-Controller)框架,它的核心是ActionServlet。在Web应用启动时,ActionServlet会加载并解析struts-config.xml配置文件。当用户发送请求时,Struts框架按照以下步骤...

    struts1应用及MVC介绍.ppt

    **Struts1工作原理**: 1. 用户发起HTTP请求到服务器。 2. Struts Dispatcher Servlet接收到请求,根据请求URL中的ActionMapping找到对应的Action类。 3. Action类执行业务逻辑,可能涉及到对ActionForm的验证和对...

    struts体系结构与工作原理

    Struts 体系结构与工作原理 Struts 体系结构是目前基于 Java 的 Web 系统设计中广泛使用的 MVC 架构。Struts 是 Apache 基金会 Jakarta 项目组的一个 Open Source 项目,它采用模型 - 视图 - 控制器(Model-View-...

Global site tag (gtag.js) - Google Analytics