`
yanguz123
  • 浏览: 568608 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Struts2基本原理

 
阅读更多

 

阐述struts2的执行流程。 

  Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。

  核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件是需要用户来自己实现的。用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。 Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同,所以说Struts 2是WebWork的升级版本。

  基本简要流程如下:

      1、客户端浏览器发出HTTP请求。

      2、根据web.xml配置,该请求被FilterDispatcher接收。

      3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。

      4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。

      5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。

      6、返回HTTP响应到客户端浏览器。

 

 

工作原理

  在Struts2框架中的处理大概分为以下几个步骤 

  1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 

  2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 

  3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action 

  4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy 

  5 ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类 

  6 ActionProxy创建一个ActionInvocation的实例。 

  7 ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。 

  8 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper 

 

 

工作流程

  1、客户端浏览器发出HTTP请求.

  2、根据web.xml配置,该请求被FilterDispatcher接收

  3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton

  4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。

  5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面

  6、返回HTTP响应到客户端浏览器

 

 

看到网友的对Struts2的原理总结,我自己也总结以便后续的面试,以下是我的疑问

  1、客服端发起一个请求,通过HTTP协议指向Tomcat容器,tomcat拿到请求她干了什么?

  2、我们web.xml配置

  <filter>

        <filter-name>struts2</filter-name>

        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

 </filter>

 <filter-mapping>

        <filter-name>struts2</filter-name>

        <url-pattern>/*</url-pattern>

</filter-mapping>

我们从web配置文件中可以看到org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,这个Filter这个类有什么用?

这个 /* 是拦截所有的请求,他拦截了请求做了什么处理? <url-pattern>/*</url-pattern>

 3.我们struts.xml配置

<struts>

 <package name="default" namespace="/" extends="struts-default">

        <action name="hello">

            <result>

                /Hello.jsp

            </result>

        </action>

    </package>

</struts>

谁负责根据struts.xml配置,找到需要调用的Action类和方法呢?

 4。最后根据struts.xml中的配置找到对应的返回结果result,在返回HTTP响应到客户端浏览器

 

 

其实用最简单的七个步骤:

  1:客户端在浏览器中输入一个url地址。

  2:这个url请求通过http协议发送给tomcat。

  3:tomcat根据url找到对应项目里面的web.xml文件。

  4:在web.xml里面会发现有struts2的配置。

  5:然后会找到struts2对应的struts.xml配置文件。

  6:根据url解析struts.xml配置文件就会找到对应的class。

  7:调用完class返回一个字String,根据struts.xml返回到对应的jsp。

 

 

struts2标签分类:

  1.表单UI标签

  2.非表单UI标签

  3.控制标签

  4.数据标签

 

 

为什么使用struts2?

  1.开源

  2.mvc框架

  3.纯pojo的Action

  4.更好的标签特性

  5.易测试

  6.易扩展

 
分享到:
评论

相关推荐

    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