图解 Spring:HTTP 请求的处理流程与机制【5】
5. HTTP 请求处理相关配置文件说明
HTTP 请求穿越的整个空间是分层的,包括:Web 容器、Web 应用、Spring 框架等,它们每层都是通过配置文件配置初始化的,这是一种松耦合的架构设计。现在我们来梳理一下这些配置文件,HTTP 请求最先穿越的就是 Web 容器,它的代表产品 Tomcat 的配置文件是 server.xml。
第二道穿越的是 Web 应用,它由 Listener\Filter\Servlet 等组件构成,主要配置文件是 web.xml。
第三道穿越的是 Spring 框架,它本身又分成三层:表现层、领域层和数据源层,这些层也是由不同的配置文件来配置维护的,表现层是通过 mvc-servlet.xml,领域层是通过 applicationContext.xml,数据源层是通过对象关系映射框架 ORM(Hibernate\iBatis\MyBatis等)的配置文件 sqlmap-mapping.xml、jdbc.properties 等来配置组装的,具体对应关系可以参照下图:
老兵哥我介绍这部分内容的原因是帮助大家建立一个概念,这整套系统是由外而内一层包一层构建出来的,而每个层内部是像搭积木一样由不同类型的组件构建出来的,而层与层之间、每层内部都是通过配置文件衔接的。如果你想要更加系统深入地掌握整个应用架构,我们可以把上述这几份配置文件作为切入口或者线索。考虑到本文的主题是剖析 HTTP 请求的处理流程机制,我们就不再展开探讨了。
6. HTTP 请求处理常见问题说明
在日常系统开发或维护当中,大部分问题都会跟 HTTP 请求处理相关。其中一部分是我们对 HTTP 协议本身不熟悉,HTTP 协议是目前互联网中各个系统集成的最主要的应用层协议,该协议设计非常优良,我们可以抽些时间深入研究这套协议,当然如果有时间再附带 TCP/IP 协议,尤其是协议中控制服务质量的各种类型参数等。
除此之外,还有大部分是不熟悉 HTTP 请求处理的全流程,不知道在什么环节设置调试断点,以及配置文件不按要求填写等,这样就容易让自己陷入迷宫,耗费大量的时间精力找不到线索头绪。
本文主要价值是帮助大家梳理出端到端的全流程框架,也就是我们常说的全局视角或者上帝视角。有了这个框架之后,我们可以根据自己的需要按图索骥找相关节点的资料来研究学习,不至于陷入细节找不到方向。
当然,考虑到我们每个人的工作学习情况不同,平时遇到的问题也不同,本文内容无法覆盖所有人遇到的问题,欢迎大家留言提问,也欢迎关注我的微信公众号“IT老兵哥”交流互动,我会尽力尽快解答大家提出的问题,谢谢!
本系列其他文章索引如下:
- 图解 Spring:HTTP 请求的处理流程与机制【1】
- 图解 Spring:HTTP 请求的处理流程与机制【2】
- 图解 Spring:HTTP 请求的处理流程与机制【3】
- 图解 Spring:HTTP 请求的处理流程与机制【4】
图解 Spring:HTTP 请求的处理流程与机制【5】的更多相关文章
- 图解 Spring:HTTP 请求的处理流程与机制【2】
2. HTTP 请求在 Web 容器中的处理流程 Web 容器以进程的方式在计算机上运行,我们知道进程是系统资源分配的最小单元,线程是系统任务执行的最小单元.从这个角度看,Web 容器就像是邮包收件人 ...
- 图解 Spring:HTTP 请求的处理流程与机制【1】
2003 年,老兵哥初到中兴开始研究生实习,Spring 就是那年诞生的,2004 年 3 月发布了 1.0 版本,到现在已经超过 15 年了.从单体式分层架构到云原生微服务架构,它稳坐在 JAVA ...
- 图解 Spring:HTTP 请求的处理流程与机制【3】
3. HTTP 请求在 Web 应用中的处理流程 在穿越了 Web 容器之后,HTTP 请求将被投送到 Web 应用,我们继续以 Tomcat 为例剖析后续流程.Web 容器与 Web 应用的衔接是通 ...
- 图解 Spring:HTTP 请求的处理流程与机制【4】
4. HTTP 请求在 Spring 框架中的处理流程 在穿越了 Web 容器和 Web 应用之后,HTTP 请求将被投送到 Spring 框架,我们继续剖析后续流程.Web 应用与 Spring M ...
- spring的set注入方式流程图解
spring的set注入方式流程图解 自己学习spring的一些笔记,详细画出了spring的set方式实现依赖注入的流程. 注意:<property name="UserDao&qu ...
- Spring Security 概念基础 验证流程
Spring Security 概念基础 验证流程 认证&授权 认证:确定是否为合法用户 授权:分配角色权限(分配角色,分配资源) 认证管理器(Authentication Manager) ...
- 描述Spring Web MVC的工作流程
Spring Web MVC的共工作流程如下: 1.浏览器发出Spring mvc请求,请求给前端控制器 DispatcherServlet处理. 2.控制器通过HandlerMapping维护的请求 ...
- Spring Security 的注册登录流程
Spring Security 的注册登录流程 数据库字段设计 主要数据库字段要有: 用户的 ID 用户名称 联系电话 登录密码(非明文) UserDTO对象 需要一个数据传输对象来将所有注册信息发送 ...
- 图解classloader加载class的流程及自定义ClassLoader
图解classloader加载class的流程及自定义ClassLoader 博客分类: JVM JavaJVM虚拟机EXTSUN /** * 转载请注明作者longdick http://l ...
随机推荐
- Python 依赖库管理哪家强?pipreqs、pigar、pip-tools、pipdeptree 任君挑选
在 Python 的项目中,如何管理所用的全部依赖库呢?最主流的做法是维护一份"requirements.txt",记录下依赖库的名字及其版本号. 那么,如何来生成这份文件呢?在上 ...
- django-URL认识(一)
URL由三部分组成:资源类型.存放资源的主机域名.资源文件名.也可认为由4部分组成:协议.主机.端口.路径 URL的一般语法格式为:(带方括号[]的为可选项): protocol :// hostna ...
- SpringBoot项目集成socketIo实现实时推送
netty-socketio maven依赖 <dependency> <groupId>com.corundumstudio.socketio</groupId> ...
- Flask:第一个Flask项目
在上一篇文章:Flask:项目的准备工作中,我写了flask项目的准备工作,不清楚创建flask项目需要做哪些准备的朋友可以点击链接看看 1.最简单的Flask项目 代码: from flask im ...
- 漏洞靶场--webug4.0安装
官网:https://www.webug.org/ 官方版本里安装视频教程 7.19官网打不开,分享当初存在网盘的[7.1更新] 链接: https://pan.baidu.com/s/1F3658i ...
- forEach,map,every,some,filter简单用法实例
平时简单总结:不足之处还望见谅: 实例: 11.1 forEach:只能进行取值操作,不能进行修改 arr.forEach(function(element,index,arr){});//注意参数: ...
- 泛微OA系统多版本存在命令执行漏洞
0x01漏洞描述 泛微OA办公系统是一款协调办公软件. 泛微协同商务软件系统存在命令执行漏洞,攻击者可利用该漏洞获取服务器权限. 0x02漏洞危害 攻击者可以通过精心构造的请求包在受影响版本的泛微OA ...
- Map Reduce 论文阅读
Map Reduce 是 Google 在 2004 年发表的一篇论文,原文链接 在这 后来 Hadoop 直接内置了这一框架. 读完之后记录一下心得. 主要背景:MapReduce 的出现很具有工程 ...
- [考试反思]1011csp-s模拟测试68:守恒
在RP守恒定律的持续作用下, 不出所料,这场稍炸 还有10分钟就是下一场了,但愿继续守恒? 改题太慢了,连写博的时间都没有了 然而最后还是在吃饭前彻彻底底改出来了 的确是个菜鸡 所以今天的题解只能先咕 ...
- net core WebApi——April.Util更新之权限
目录 前言 权限 中间层 小结 前言 在之前已经提到过,公用类库Util已经开源,目的一是为了简化开发的工作量,毕竟有些常规的功能类库重复率还是挺高的,二是为了一起探讨学习软件开发,用的人越多问题也就 ...