`

Struts2简述及工作原理

阅读更多
Struts2是实现MVC(Model-View-Controller)设计模式的Web应用框架。

Struts2工作原理:指在struts2的应用中,从用户请求到服务器返回相应响应给用户端的过程中,各组件的工作。


1、客户端(Client)向服务器发送一个请求(request)
2、客器(Container)通过web.xml映射请求,并获得控制器(Controller)的名字。
3、容器(Container)调用控件器(StrutsPrepareAndExecuteFilter或FilterDispatcher)。在Struts2.1以前调用FilterDispatcher,Struts2.1之后调用StrutsPrepareAndExecuteFilter。
4、控制器(Controller)通过ActionMapper获得Action的信息。
5、控制器(Controller)调用ActionProxy。
6、ActionProxy读取struts.xml文件读取相应的action和interceptor stack的信息。
7、ActionProxy把request请求传递给ActionInvocation。
8、ActionInvocation依次调用action和interceptor。
9、根据action执行结果,产生result。
10、Result信息返回给ActionInvocation。
11、产生一个HttpServletResponse响应。
12、将产生的响应返回给客户端。






1、struts2的整个生命周期开始于来自客户端的request请求,然后通过servlet容器执行相应的filter。
2、FilterDispatcher被调用,它通过查找ActionMapper决定哪一个Action将会被执行。
3、若ActionMapper中找到可以执行的Action,FilterDispatcher将控制权委托给ActionProxy。
4、ActionProxy读取struts.xml配置文件,ActionProxy创建一个ActionInvocation实例,并将控制权交给ActionInvocation实例。
5、ActionInvocation(其采用的是命令行设计模式)实例逐个调用Interceptors,然后调用相应的Action。
6、一旦Action有返回,ActionInvocation在struts.xml中寻找相应的action返回结果。
7、拦截器再以相反的顺序执行和响应返回到过滤器。然后将result返回到servlet容器并发送到窗户端。



可以说Struts2本质还是一个Servlet(在S1中用于整体控制的是一个Servlet;S2中是一个Filter,其实也可把它看作是Servlet),只是对Servlet进一步的封装罢了

打个比方:做Web项目,好比建房子。Servlet好比木材,用一根根的木材搭,也可盖起房子,只是速度慢而已;

而Struts2好比是用木材做好的一个房子大概结构,要建房子时,只需把它拿过来,再往其里面添砖加瓦,修修补补,就能很快盖好房子,这要比直接使用Servlet要快得多






  • 大小: 54.5 KB
  • 大小: 75.5 KB
分享到:
评论

相关推荐

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

    **Struts2原理:** Struts2是在Struts1的基础上发展起来的,它融合了WebWork框架的许多特性。Struts2的核心是.struts2-struts.xml配置文件,它定义了Action和Result。请求到达时,由FilterDispatcher(或后来的...

    struts2简述

    ### Struts2框架简述 #### 一、Struts2框架概述 Struts2作为Java Web开发中的一个重要框架,是Apache Struts项目的一个版本,它继承了Struts1的优点,并在此基础上进行了大量的改进和增强。Struts2不仅更加灵活、...

    简述STRUTS2_Convention零配置

    Convention插件的工作原理是基于“约定优于配置”(Convention over Configuration)的原则,它会自动识别并配置符合特定规则的Java类作为Action。具体来说,以下两点是关键: 1. **Action识别**: - 实现了`...

    Struts2拦截器及其用法详细说明

    这篇文章将深入探讨Struts2拦截器的概念、工作原理以及如何在实际应用中使用它们。 **一、什么是Struts2拦截器** 拦截器是基于AOP(面向切面编程)思想的组件,它可以理解为在Action调用前后插入的逻辑处理。在...

    struts2API文档

    Struts2是一个强大的Java web应用程序框架,它基于...因此,对于理解Struts2的基本工作原理和开发流程,这些资源仍然是非常有价值的。在学习过程中,可以结合最新的Struts2官方文档和社区资源,以便获取最准确的信息。

    Struts2访问request,session,application的四种方式

    了解了这些基本方法后,我们可以通过阅读Struts2的源码来深入理解其工作原理。例如,研究`ActionSupport`类如何与ActionContext交互,或者查看`ValueStack`如何管理栈中的对象。此外,开发工具如IDE的调试功能,可以...

    struts2入门教程

    - **拦截器基础**:介绍拦截器的概念及其工作原理。 - **使用拦截器**:演示如何配置并使用Struts2提供的内置拦截器。 - **自定义拦截器**:如何创建自定义拦截器,以及其应用场景。 - **综合示例**:通过实例展示...

    Struts2+Spring入门教程及实例

    Struts2和Spring是两个非常重要的Java Web开发框架,它们在企业级应用中广泛使用。Struts2提供了强大的MVC(Model-View-...然而,理解和掌握Struts2+Spring的基础,对于理解现代Web框架的工作原理仍然十分有益。

    struts2详解

    #### 一、Struts2概述与工作原理 Struts2是一个用于构建企业级Java Web应用的强大框架。它继承了Struts1的一些特性,并在此基础上进行了改进和扩展,支持更加灵活和强大的功能。Struts2基于MVC(Model-View-...

    struts2的速成教程,充电的都来看了

    - **拦截器基础**:解释拦截器的概念及工作原理。 - **使用拦截器**:详细介绍Struts2中预定义的拦截器及其应用场景。 - **自定义拦截器**:讲解如何根据需求编写自定义拦截器以增强应用的功能。 - **综合示例**:...

    struts2 spring hibernate使用XML的整合方式

    ### Struts2、Spring、Hibernate使用XML的整合方式 #### 概述 本文档将详细介绍如何使用XML配置文件实现Struts2、Spring以及...对于初学者而言,这是一个很好的学习案例,有助于理解SSH框架的工作原理及实际应用场景。

    SSH框架的工作原理及搭建步骤

    ### SSH框架的工作原理及搭建步骤 #### 一、Struts、Spring、Hibernate的功能与定位 在Java Web开发中,为了实现高效、灵活且易于维护的应用程序,通常采用分层架构设计,即“页面表示层”、“业务逻辑层”和...

    spring在web.xml中和在struts中的不同配置..pdf

    在本文中,我们将探讨Spring在`web.xml`中的配置与在Struts中的配置差异,以及这两种配置方式背后的基本原理。 首先,Spring的核心是ApplicationContext,它是一个管理Bean的容器,可以看作是应用程序的上下文环境...

    spring和struts和hibernate最简单的整合

    在Java Web开发领域,Spring、Struts和Hibernate是三大主流框架,它们分别负责不同层面的...虽然现代开发趋势更倾向于使用Spring Boot和Spring MVC,但理解这种传统的三层架构对于理解现代框架的工作原理仍然很有帮助。

    Struts+Spring+Hibernate开发实例 (SSH整合)

    通过理解Struts、Spring和Hibernate的原理及其相互关系,开发者可以将它们高效地组合起来,形成一个以Spring为核心,Struts为表现层,Hibernate为数据访问层的架构。这个案例的实现有助于深入理解SSH整合的实际运用...

    struts资料\Tiles框架--页面布局

    1. **Tiles定义与原理** Struts Tiles是Apache Struts项目的一个子项目,它基于JSP的Include指令扩展而来。Tiles通过定义模板(Template)和组件(Component)来组织页面,模板是页面的基本结构,而组件则是页面上...

    JSP-Struts

    本文将从JSP的基本概念出发,逐步深入到Struts框架的原理与应用实践。通过对比两种模型(JSP Model 1与JSP Model 2),我们能够更好地理解Struts是如何作为MVC(Model-View-Controller)模式的一种实现来提高Web应用...

    JavaEE参考答案

    2. **简述Struts2的工作原理。** - Struts2采用拦截器(Interceptor)机制处理用户请求,使业务控制器(Action)与Servlet分离。 - 用户请求提交后,经过多个拦截器处理后交由核心控制器FilterDispatcher处理。 -...

    Struts+Hibernate+Spring整合应用

    Struts+Hibernate+Spring 整合应用是一种常见的Java Web开发模式,它结合了三个流行的开源框架,以构建高效、可维护的MVC(Model-View-Controller)应用程序。本实验报告将详细介绍如何将这三个框架集成在一起,以...

Global site tag (gtag.js) - Google Analytics