网址:http://struts.apache.org/development/2.x/docs/the-struts-2-request-flow.html

核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件是需要用户来自己实现的。用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。

Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同,所以说Struts 2是WebWork的升级版本。Struts 2框架按照模块来划分,可以分为Servlet Filters、Struts核心模块、拦截器和用户实现部分。Struts 2框架结构图如图所示。

Struts 2框架结构图

Struts2执行步骤:

一个请求在Struts 2框架中的处理大概分为以下几个步骤。

客户端提交一个(HttpServletRequest)请求,如上文在浏览器中输入http://localhost:8080/bookcode/ch2/Reg.action就是提交一个(HttpServletRequest)请求。

请求被提交到一系列(主要是3层)的过滤器(Filter),如(ActionContextCleanUp、其他过滤器(SiteMesh等)、FilterDispatcher)。注意:这里是有顺序的,先ActionContext CleanUp,再其他过滤器(Othter Filters、SiteMesh等),最后到FilterDispatcher。

FilterDispatcher是控制器的核心,就是MVC的Struts 2实现中控制层(Controller)的核心。

FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个(HttpServlet Request)请求,如果ActionMapper决定需要调用某个Action,FilterDispatcher则把请求的处理交给ActionProxy。

ActionProxy通过Configuration Manager(struts.xml)询问框架的配置文件,找到需要调用的Action类。例如,用户注册示例将找到UserReg类。

ActionProxy创建一个ActionInvocation实例,同时ActionInvocation通过代理模式调用Action。但在调用之前,ActionInvocation会根据配置加载Action相关的所有Interceptor(拦截器)。

一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果result。

转载于:https://www.cnblogs.com/caroline/archive/2013/02/28/2936136.html

Struts 2框架结构图相关推荐

  1. Interview:人工智能岗位面试—人工智能岗位求职之机器学习算法工程师必备知识框架结构图

    Interview:人工智能岗位面试-人工智能岗位求职之机器学习算法工程师必备知识框架结构图 目录 机器学习算法工程师思维导图 机器学习算法工程师思维导图 后期继续更新-- 1.思维导图01

  2. DL之CNN:关于CNN(卷积神经网络)经典论文原文(1950~2018)简介总结框架结构图(非常有价值)之持续更新(吐血整理)

    DL之CNN:关于CNN(卷积神经网络)经典论文原文(1950~2018)简介总结框架结构图(非常有价值)之持续更新(吐血整理) 导读       关于CNN,迄今为止已经提出了各种网络结构.其中特别 ...

  3. 使用Struts 2框架实现文件下载

    从服务器发送一个文件到浏览器需要以下几个步骤 把HTTP响应里的ContentType标头设置为被下载文件的内容类型.ContentType标头的作用是表明数据包里的数据是什么类型, 它由一个多媒体类 ...

  4. Struts+DAO框架搭建完成!(源码)

    今天做了这个Struts+DAO框架,可以说是又向SSH迈了一步.   做的过程中又发现了一些问题,但是在我和其他人的努力下一起解决了.这个问题是MyEclipse的Tomcat的启动问题.(已经解决 ...

  5. Struts 2框架创建的第一个项目

    创建我的第一个Struts 2项目. 用Struts 2框架创建一个简单的WEB项目. 效果演示 登录页面 登陆成功之后显示的页面 在程序正式开始之前注意引入架包(注意:架包放在WEB-INF下面的l ...

  6. 这样做框架结构图,让你的PPT更有创意!

    已剪辑自: https://zhuanlan.zhihu.com/p/58834710 嗨,各位木友们好呀,我是小木. 昨天,有个跟我一样鸟人的鸟人让我帮忙做个框架结构图: 可惜当时我不在办公室,不然 ...

  7. 绘图 | 绘制框架结构图

    本文总结有哪些适合绘制框架结构图的工具以及框架结构图的模板. Updated: 2022 / 9 / 15 绘图 | 绘制框架结构图 工具 设计 参考链接 工具 参考这里 1 设计 自动化测试框架结构 ...

  8. java文件下载框架,使用Struts 2框架实现文件下载 - 消逝の纸屑

    从服务器发送一个文件到浏览器需要以下几个步骤 把HTTP响应里的ContentType标头设置为被下载文件的内容类型.ContentType标头的作用是表明数据包里的数据是什么类型,它由一个多媒体类型 ...

  9. Struts 2框架

    传统的Java EE开发采用JSP+Servlet+JavaBean的方式来实现MVC,但它有一个缺陷:程序员在编写程序的时候必须继承HttpServlet类.覆盖doGet()和doPost()方法 ...

最新文章

  1. JS~字符串长度判断,超出进行自动截取(支持中文)
  2. Maven解决静态资源过滤问题
  3. oracle 快速上手,Oracle学习笔记:快速上手
  4. Linux下必须知道的11个网络命令
  5. 圭古文化获数百万天使轮融资 ,持续探索原创漫画IP变现
  6. [NewLife.XCode]实体工厂(拦截处理实体操作)
  7. Python:Sklearn概述
  8. 动感灯箱制作流程培训_从事广告行业20年老师傅,揭秘广告牌类型和制作工艺流程 !...
  9. WebRTC与Ace在线代码编辑器合作,实现实时协作编程
  10. iocp端口断开_关于iocp检测客户端异常断线
  11. Node on Mac 初步
  12. matlab中的全局参量,matlab参数传递及全局变量 | 学步园
  13. 今日干货:PDF转Word工具有哪些?
  14. Video Classification with Channel-Separated Convolutional Netwroks 论文阅读
  15. PLG日志平台搭建: Promtail + Loki + Grafana 全步骤
  16. CAN: Revisiting Feature Co-Action for Click-Through Rate Prediction
  17. Windows 10 显示桌面图标 计算机 / 此电脑 / 我的电脑
  18. python集合中的元素不允许重复_Python语言中同一个集合中的元素不会重复,每个元素都是唯一的。-智慧树Python数据分析与数据可视化章节答案...
  19. 隐马尔可夫模型 #博学谷IT学习技术支持#
  20. 结构体及结构体内存对齐讲解

热门文章

  1. 【整理】OC中常用的关于时间格式的转换
  2. 解决wget下载中文乱码的方法
  3. Nagios监控部署(四)--被监控主机配置
  4. Oracle误删除数据和表的恢复办法包括truncate
  5. pycharm配置git版本管理
  6. 打印函数如何适应不同的打印机
  7. selenium+Headless Chrome实现不弹出浏览器自动化登录
  8. mysql设计规范和原则
  9. @Quelifier的用法,
  10. 批量修改在索引中增加字段