`

Struts2的基本原理

阅读更多

Struts2 的基本工作流程

 

Struts2框架是由3个本分组成:

  1. 核心控制器FilterDispatcher

  2. 业务控制器

  3. 用户实现的业务逻辑组件

下面来分别介绍这3个部分:

  1. 核心控制器FilterDistpatcher,  负责拦截所有的用户请求,是作为一个Filter运行在Web应用中,在web.xml中配置。  当用户请求到达时,该Filter会过滤用户的请求,请求要是以action结尾,该请求就会被转到Struts2框架来处理。

  2. Struts2处理请求的action的时候,会到sturts.xml中去找相应的Action实例,其实并不是用户实现的Action实例,而是一个Action的代理——因为用户实现的业务控制器没有直接和Servlet API相关连,是无法处理用户请求的。所以在这里,Struts2使用了AOP技术,动态代理来定义一些拦截器,这些拦截器负责将HttpServletRequest请求中的参数解析出来,传到Action中,并回调Action实例中的execute方法来处理用户的请求。

  3. 用户自己实现的业务逻辑组件,只是一个代理目标,它包含了对用户请求的处理。用户请求的参数还是包含在HttpServletRequest对象里,而用户自己定义的Action类是不能直接反问HttpServletRequest对象的。拦截器会负责将HttpServletRequest里的请求的数据解析出来,交给用户实现的业务逻辑组件。

知道了上面的原理,接下来就好办了。例如 模型驱动的实现原理就清楚多了(这里只是我自己的理解)

  • 首先,要使用模型驱动,就要在Action的类中实现ModelDriven接口,实现ModelDriven接口就必须要实现getModel的方法

  • 接下来,就要看struts-default.xml的配置,里面有许多的拦截器,在驱动这一块有属性驱动的拦截器,还有模型 驱动的拦截器,属性拦截器为params,模型驱动的拦截器为modelDriven,而ModelDriven拦截器就负责将参数传刚模型的属性。其他的都和上面的一样,只不过多执行了个ModelDriven拦截器的处理而已而已。

分享到:
评论

相关推荐

    Struts2基本原理

    Struts2的设计理念和工作流程与WebWork框架相似,可以认为Struts2是对WebWork的升级和扩展,吸收了WebWork的优点,同时改进了Struts1的一些不足,如更简洁的配置和更强大的动作映射。 8. **集成其他框架**: ...

    struts1 mvc基本原理

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

    struts2基本lib架包

    总的来说,这个“struts2_basic_lib”压缩包是Struts2开发的基石,提供了构建web应用所需的全部基本组件。开发者可以通过深入学习这些库的功能和使用方式,掌握Struts2框架的核心原理,从而有效地开发出高效、可维护...

    strut2教程 基本原理及应用

    本教程旨在深入讲解Struts2的基本原理及其在实际开发中的应用。 一、Struts2基本原理 1. **Action和Result**:在Struts2中,业务逻辑主要由Action类执行,Action类是处理用户请求的核心组件。每个Action对应一个...

    Struts的工作原理

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

    struts2的基本实现原理

    Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它极大地简化了构建基于Java的企业级应用程序的...通过理解和实践这些基本原理,你可以更好地掌握Struts2框架,从而高效地开发Java Web应用。

    Struts2工作原理

    ### Struts2工作原理深度解析 #### 引言 Struts2框架,作为Java Web开发领域的一款重要工具,其设计理念源自于WebWork框架,并融合了Struts1的优点,旨在提供更为强大、灵活的MVC(Model-View-Controller)架构...

    Struts1工作原理浅析【转】

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

    struts2工作原理及拦截器和过滤器

    Struts2 工作原理及拦截器和过滤器 Struts2 框架的工作原理可以分为以下几个步骤: 1. 客户端发出一个指向 Servlet 容器的请求(Tomcat); 2. 这个请求会经过几个过滤器,最后会到达 FilterDispatcher 过滤器。...

    struts2小程序 struts2代码

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

    struts运行基本原理(详细)

    标题:Struts运行基本原理(详细) 在深入探讨Struts框架的基本运行原理之前,我们首先应当明确Struts作为一款开源的MVC(Model-View-Controller)架构模式的实现,其核心价值在于将Web应用程序的业务逻辑、数据...

    Struts2接口文档

    这个“Struts2接口文档”是开发者的重要参考资料,提供了关于Struts2框架内各个组件、类库以及接口的详细说明,帮助开发者深入理解框架的内部工作原理并有效地使用其功能。 Struts2的核心组件包括Action、Result、...

    留言板留言板struts2留言板struts2

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

    Struts2视频教程

    - **Hello Struts2**:通过创建一个简单的“Hello World”示例,帮助开发者快速上手Struts2的基本配置和运行流程。 - **Action类详解**:Action类是Struts2的核心组件之一,负责处理用户的请求并返回相应的结果。...

    servlet模拟struts1工作原理

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

    struts2简单例子

    这个“struts2简单例子”是初学者理解Struts2工作原理和核心概念的一个很好的起点。让我们深入探讨一下Struts2的基础知识。 1. **MVC架构**: MVC模式是软件设计中的一个经典模式,它将应用逻辑分为三个主要部分:...

    struts 基本原理和添加数据库

    **Struts基本原理** 1. **MVC模式**:在Struts中,模型(Model)通常由业务逻辑组件(如JavaBeans或EJBs)组成,负责处理数据;视图(View)是用户界面,通常由JSP页面实现;控制器(Controller)则是Struts的核心...

    struts2入门实例和工作(流程)原理

    本文将深入探讨Struts2的入门实例、工作原理及其主要组件。 首先,让我们从一个简单的Struts2入门实例开始。创建一个基本的Struts2应用通常包括以下几个步骤: 1. 引入Struts2的依赖库到项目中,这通常通过Maven或...

    传智播客struts2.1视频教程_介绍struts2及struts2开发环境的搭建

    通过这个视频教程,你将能够深入理解Struts2的基本原理和用法,学会如何利用Struts2构建一个简单的Web应用。同时,掌握Struts2的开发环境搭建,有助于你在实际项目中快速上手。传智播客的教程以通俗易懂的方式讲解,...

    Struts2的视频学习代码

    Struts2是一个强大的Java web应用程序框架,用于构建和管理MVC(模型-视图-控制器)架构的应用程序。这个“Struts2的视频学习代码”资料可能是...通过学习这部分代码,开发者能够初步掌握Struts2的基本操作和工作原理。

Global site tag (gtag.js) - Google Analytics