深入分析java web技术内幕----读书笔记(五)

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/63253241 这位大侠,这是我的公众号:程序员江湖。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/63253241

这位大侠,这是我的公众号:程序员江湖。 
分享程序员面试与技术的那些事。 干货满满,关注就送。 
这里写图片描述

servlet+tomcat原理剖析

 

servlet工作原理分析

 

servlet是运行在服务器上的java程序。

1ContextConfig负责web应用的配置文件的解析

2servlet被包装为wrapper对象,被添加到context中作为子容器,而web.xml被解析到context中,所以context才是真正的servlet容器,一个web应用对应一个context容器。

 

3

 

到达wrapper后还可能经过listener和filter。

listener涵盖servlet生命周期的每个事件。

filter用来转发请求和处理请求,传递filterchain对象,使用责任链模式,有init,dofilter,destroy这样的生命周期。

url-pattren的解析由mapper类来定义和完成。会分配到指定的servlet或者filter。

 

 

第十一章:

tomcat结构

 

核心是connector和container

 

1container只有一个,connector有多个,多个connector和一个container形成一个service,service由server管理,tomcat的生命周期由server控制。

 

2service可以为外部提供服务。其中connector负责创建 request和response用来接受请求和交换数据。

 

3container通过多线程处理多个connector的请求,是设计的核心,connector可分为connetor、processer、protocal。

 

其中connector封装socket成为request和response,并交给container进行处理。

 

4container包含engine host context wrapper,四个组件是父子关系。

 

5、

 

engine没有父容器

 

一个context对应一个应用,但需要war时就要有host容器,因为要靠host解析web.xml

 

 

 

使用wrapper容器可以实现servlet和tomcat容器的脱耦,在此容器中会调用servlet的init方法、然后调用filter方法,接着执行service。

 

 

设计模式:门面设计模式:

需要相互通信,但又不想暴露其他接口和数据时使用。

 

 

 

观察者模式:lifecycle和listener监听着servlet。

 

 

 

命令模式:connector封装请求作为命令传给container

 

责任链模式:从engine到host到context再到wrapper,体现责任链。

相关文章
|
3月前
|
缓存 自然语言处理 前端开发
深入分析Java编译原理
深入分析Java编译原理
47 0
|
3月前
|
算法 Java 程序员
论文翻译 | 【深入挖掘Java技术】「底层原理专题」深入分析一下并发编程之父Doug Lea的纽约州立大学的ForkJoin框架的本质和原理
本文深入探讨了一个Java框架的设计、实现及其性能。该框架遵循并行编程的理念,通过递归方式将问题分解为多个子任务,并利用工作窃取技术进行并行处理。所有子任务完成后,其结果被整合以形成完整的并行程序。 在总体设计上,该框架借鉴了Cilk工作窃取框架的核心理念。其核心技术主要聚焦于高效的任务队列构建和管理,以及工作线程的管理。经过实际性能测试,我们发现大多数程序的并行加速效果显著,但仍有优化空间,未来可能需要进一步研究改进方案。
48 3
论文翻译 | 【深入挖掘Java技术】「底层原理专题」深入分析一下并发编程之父Doug Lea的纽约州立大学的ForkJoin框架的本质和原理
|
4月前
|
Java 测试技术 API
读书笔记-Spring中更好的Java泛型操作API-ResolvableType
读书笔记-Spring中更好的Java泛型操作API-ResolvableType
31 0
|
10月前
|
缓存 算法 Java
《深入理解Java虚拟机》读书笔记(四)--GC的回收条件及Java对象的引用
《深入理解Java虚拟机》读书笔记(四)--GC的回收条件及Java对象的引用
204 0
|
10月前
|
存储 缓存 Java
《深入理解Java虚拟机》读书笔记(一)--java内存区域划分
《深入理解Java虚拟机》读书笔记(一)--java内存区域划分
50 0
|
Java C++
【Java技术专题】「原理专题」深入分析Java中finalize方法的作用和底层原理
【Java技术专题】「原理专题」深入分析Java中finalize方法的作用和底层原理
136 0
【Java技术专题】「原理专题」深入分析Java中finalize方法的作用和底层原理
|
存储 缓存 Java
【Java深层系列】「并发编程系列」深入分析和研究MappedByteBuffer的实现原理和开发指南
【Java深层系列】「并发编程系列」深入分析和研究MappedByteBuffer的实现原理和开发指南
151 1
|
安全 算法 Oracle
【Java技术指南】「编译器专题」深入分析探究“静态编译器”(JAVA\IDEA\ECJ编译器)是否可以实现代码优化?
【Java技术指南】「编译器专题」深入分析探究“静态编译器”(JAVA\IDEA\ECJ编译器)是否可以实现代码优化?
215 0
|
缓存 Java
【Java原理探索】深入分析JDK动态代理的源码 | Java开发实战
【Java原理探索】深入分析JDK动态代理的源码 | Java开发实战
59 0
|
缓存 Java
深入分析JDK动态代理实现原理|Java 开发实战
深入分析JDK动态代理实现原理|Java 开发实战
81 0