Struts2 的工作原理:	

	1)client向server发出一个http请求。webserver对请求进行解析,假设在StrutsPrepareAndExecuteFilter的请求映射路径(在web.xml中配置)中匹配到了该请求,那么webserver就会把该请求转发给DispatcherServleStrutsPrepareAndExecuteFilter进行处理。
2)StrutsPrepareAndExecuteFilter推断该请求是否是一个Struts2请求。假设该请求是一个struts2请求,则StrutsPrepareAndExecuteFilter把请求交给ActionProxy处理。
3)ActionProxy创建一个ActionInvocation实例并初始化
4)ActionInvocation调用Action。在ActionInvocation调用Action的前后。涉及到拦截器的调用。
5)Action运行完成后,ActionInvocation会依据struts.xml配置文件调用相应方法并依据返回的结果来渲染相应的视图。 具体调用过程:
1,把Action请求发送给 StrutsPrepareAndExecuteFilter
StrutsPrepareAndExecuteFilter.doFilter() --> ExecuteOperations.executeAction() --> Dispatcher.serviceAction() -->
2,StrutsPrepareAndExecuteFilter把请求的处理交给 ActionProxy
ActionProxy.execute() -->
3,ActionProxy 创建一个 ActionInvocation 的实例,并进行初始化。ActionInvocation 实例在调用 Action 的过程前后,涉及到相关拦截器的调用和对Result的调用
ActionInvocation.invoke() --> Interceptor.intercept()、 ActionInvocation.invokeAction()、ActionInvocation.executeResult() -->
4。在 Action 运行完成后(ActionInvocation.invokeAction())。ActionInvocation 依据 struts.xml 中的配置找到相应的返回结果(ActionInvocation.executeResult()),并把结果(jsp页面)发送到client 下图为 struts2 处理请求的具体流程:

Struts2 的工作原理的更多相关文章

  1. 菜鸟学Struts2——Struts工作原理

    在完成Struts2的HelloWorld后,对Struts2的工作原理进行学习.Struts2框架可以按照模块来划分为Servlet Filters,Struts核心模块,拦截器和用户实现部分,其中 ...

  2. Struts2的工作原理及工作流程

    众所周知,Struts2是个非常优秀的开源框架,我们能用Struts2框架进行开发,同时能 快速搭建好一个Struts2框架,但我们是否能把Struts2框架的工作原理用语言表达清楚,你表达的原理不需 ...

  3. Struts2的工作原理(图解)详解

    Struts2的工作原理 上图来源于Struts2官方站点,是Struts 2 的整体结构. 一个请求在Struts2框架中的处理大概分为以下几个步骤(可查看源码:https://github.com ...

  4. struts2的工作原理

    在学习struts2就必须的了解一下它的工作原理: 首先来看一下这张图 这张工作原理图是官方提供的: 一个请求在Struts2框架中的处理大概分为以下几个步骤 1.客户端初始化一个指向Servlet容 ...

  5. 第一篇——Struts2的工作原理及HelloWorld简单实现

    Struts2工作原理: 一个请求在Struts框架中的处理步骤: 1.客户端初始化一个指向Servlet容器(例如Tomcat)的请求: 2.这个请求经过一系列的过滤器(Filter): 3.接着F ...

  6. Struts2学习一----------Struts2的工作原理及HelloWorld简单实现

    © 版权声明:本文为博主原创文章,转载请注明出处 Struts2工作原理 一个请求在Struts2框架中的处理步骤: 1.客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2.这个请求 ...

  7. Struts2(二)工作原理

    一.概述 1.struts框架本身分为三个部分:核心控制器FilterDispatcher.业务控制器Action和用户实现的企业业务逻辑组件. 2.struts2工作的基本流程: 客户端初始化一个指 ...

  8. 分享知识-快乐自己:Struts2框架 工作原理及执行流程图(拦截器的使用)

    Struts2 架构图: 1):提交请求 客户端通过 HttpServletRequest 向 Servlet (即Tomcat)提交一个请求. 请求经过一系列的过滤器,例如图中的 ActionCon ...

  9. Struts2(二):工作原理

    struts可查看源码:https://github.com/apache/struts 在学习struts2之前,我先看了一些比较早版本对struts2的工作原理相关的介绍,顺便抄写过来,用来帮助自 ...

随机推荐

  1. 读入图片显示scipy.misc module has no attribute imread?

    >>> import scipy >>> scipy.misc <module 'scipy.misc' from 'C:\Python27\lib\site ...

  2. linux编译安装ccache3.2.4

    1.下载ccache3.2.4安装包 #cd /opt #wget http://samba.org/ftp/ccache/ccache-3.2.4.tar.gz 2.解压 #.tar.gz 3.创建 ...

  3. BZOJ1222: [HNOI2001]产品加工(诡异背包dp)

    Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 907  Solved: 587[Submit][Status][Discuss] Descriptio ...

  4. html5左右滑动页面效果实现

    The Demo of h5 slider achiev by Myself 主要思路: 设置一个容器container,然后里面有几个page,获取到屏幕的宽度并将其赋值给page,然后contai ...

  5. Spring学习笔记之基础、IOC、DI(1)

    0.0 Spring基本特性 Spring是一个开源框架:是基于Core来架构多层JavaEE系统 1.0 IOC 控制反转:把对象的创建过程交给spring容器来做. 1.1 application ...

  6. V4L2框架之视频监控

    [参考]韦东山 教学视频 一. V4L2框架: video for linux version 2 虚拟视频驱动vivi.c分析:1.分配video_device2.设置3.注册:video_regi ...

  7. facebook atc弱网环境搭建和踩坑总结

    facebook atc介绍 Augmented Traffic Control(又名atc)是一种模拟网络状况的工具.由facebook开源,是一个允许开发人员控制设备与互联网连接的项目.atc可以 ...

  8. eclipse中的maven项目部署到tomcat中

    http://www.cnblogs.com/guodefu909/p/4874549.html

  9. nginx强制使用https访问(多站点多域名配置)

    很多配置过https模板的人都知道,配置https 时 ,站在用户的角度http 和https 的区别根本不清楚.有时候敲 http 时会出现 404 错误,而实际上我们是https. 有朋友找我配置 ...

  10. C++基础 (3) 第三天 构造函数 构造函数初始化列表 拷贝构造函数 析构函数 静态成员变量

    // 同类之间无私处 2构造函数 3析构函数 4构造函数的种类和析构函数的顺序 结论:析构函数的调用顺序,跟对象的构造顺序相反,谁先构造,谁最后一个被析构. 拷贝构造函数: 注意: 等号写在下面和写在 ...