0 太长不看版
HTTPServlet
的Service
方法将请求按类进行分解- 主要是根据HTTP方法的类型调用
doXXX
方法 - GET 和 HEAD 方法需要对 if-modified-since 进行特殊处理,其他是直接调用
FrameworkServlet
重写doXXX
方法,统一调用doService
方法doXXX
方法统一调用processRequest
方法doOptions
和doTrace
有额外的处理- 其他是直接调用
processRequest
主要是初始化ThreadLocal
,调用doService
方法,并进行日志等处理ThreadLocal
是LocalContext
和Attributes
doService
方法执行核心逻辑,是抽象方法- 完成后会清空
ThreadLocal
,打印日志,产生事件。
DispatcherServlet
进行具体的实现- 重写
doService
方法- 添加
DispatcherServlet
特有的请求属性 - 对 HTML 的 include 请求进行处理
- 对重定向的请求进行处理
- 将请求转交给
doDispatch
方法进行实际的分发
- 添加
doDispatch
方法的逻辑为:
相关文章

Java学习-动手动脑4
异常处理 ``` public class SystemExitAndFinally { public static void main(String[] args) { try { System.o...

【Unity Shader学习笔记】Unity光照-光照衰减
Unity —共支持 4 种光源类型: 平行光 点光源(Point Light) 聚光灯(Spot Light) 面光源(area light) 面光源仅在烘焙时才可发挥作用, 因此不在本节讨论范围内...

RabbitMQ与SpringBoot整合
前文总结了Dubbo与SpringBoot的整合(https://www.cnblogs.com/cott/p/12373043.html),本文基于这套框架,引入RabbitMQ消息队列。 1.在l...

零基础半天做出物体检测
零基础半天做出物体检测 声明:此项目是本人应对学校的课程设计(大四,学校突然开展此课设并且他不授课,就去实验室去做这个东西。重点是啥也不教,让10天做出来!吐槽一下,拜托,时间很宝贵的,基本都要考研的...

文件输入/输出流
文件输入/输出流程序 运行期间,大部分数据都被存储在 内存中,当程序结束或被关闭时,存储在内存中的数据将会 消失。如果要 永久保存数据,那么最好的办法就是把数据保存到 磁盘的文件中。为此,Java提供...

JAVA Stream在jdk17下的例子
最近因为某些原因,又要用stream,所以耗费了一些时间,做了一些例子,以便自己后续参考。 环境: Article类代码: ``` package study.base.lambda.stream; ...

MySQL 常见面试题/知识点总结!(2021 最新版)| JavaGuide
相关阅读: 2.7w字!Java基础面试题/知识点总结!(2021 最新版) 这篇文章以前发表过,但我最近对它进行了重构,并解决了许多小问题。因此,再次在公司帐户上同步![En]This articl...

垃圾收集器
垃圾收集器 Serial:单线程收集器、在进行垃圾收集的时候需要暂停其他线程。优点:简单高效。适用于新生代。复制算法 SerialOld:是Serial收集器的l老年代版本,,也是一个单线程收集器,不...

sql题 部门工资前三高的所有员工
此题为sql困难题,值得记录一下 题目描述 来自力扣第185题 ``` 输入: Employee 表: +----+-------+--------+----...

MVCC(多版本并发控制)详解
在 MySQL InnoDB存储引擎下,RC、RR 基于 MVCC 进行并发事务控制, MVCC 是基于"数据版本"对并发事务进行访问 用一个例子来解释一下,下面是一张事务执行流程图: 稍微解释一下:...

高速缓存一致性协议MESI与内存屏障
CPU高速缓存机制的引入,主要是为了解决CPU越来越快的运行速度与相对较慢的主存访问速度的矛盾。CPU中的寄存器数量有限,在执行内存寻址指令时,经常需要从内存中读取指令所需的数据或是将寄存器中的数据写...

Maven-私服搭建与配置
一、maven私服搭建 1.下载地址 https://help.sonatype.com/repomanager3/product-information/download/download-arch...

用户交互Scanner(Java)
基本介绍 1.next() 一定要读取到有效字符后才可以结束输入 对输入有效字符之前遇到的空白,next()方法会自动将其去掉 只有输入有效字符后才将其后面的空白作为分隔符或者结束符 next()不能...

Java(2)数据类型与变量
前言 Java是一种强类型语言。这就意味着必须为每一个变量声明一种类型。在Java中,一共8种基本类型,其中有4种整型、2种浮点型、1种字符串类型char(用于表示Unicode编码的代码单元)和1种...

springmvc静态资源配置
<servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springf...