Tomcat
技术人爱思考
积善成德,而神明自得,圣心备焉。
展开
-
Tomcat8.5.23 ApplicationFilterChain源码分析(职责链模式)
一、前言因为在前一篇文章中分析JavaWeb项目切入点时提到了一种从Filter入手的思路,所以本文来探究一下多个Filter之间究竟是怎么组织、运行的。二、正文1. 首次运行(1)引入依赖(2)关联程序的配置(3)编译构建a)IDE构建b)Maven构建2. 分析源码切入点(1)JavaWeb项目的切入点(以SpringBoot项目为例)a)由URL路由入手b)由Filt...原创 2018-10-25 05:12:13 · 3924 阅读 · 3 评论 -
Tomcat8.5.23中ApplicationFilterChain对象的线程安全性分析
一、前言在前一篇文章中分析ApplicationFilterChain的源码时遗留了线程安全问题未能彻底理解,因此有了本文,来彻底研究下filterChain对象的线程安全是如何保证的。二、正文1. 源码的运行流程分析(1)ApplicationFilterChain对象的特点与创建特点:经过一路代码跟踪发现,每一个url匹配模式对应于一个ApplicationFilterChain对象...原创 2018-10-28 02:22:25 · 1590 阅读 · 1 评论 -
Tomcat8.5.23中StandardWrapper容器对Servlet实例的多线程池化复用机制分析
一、前言在前一篇文章中分析filterChain的线程安全问题时讲到了真正需要考虑线程安全问题与复用的场景是Request与Servlet的实例,本文重点分析一下Servlet实例的线程安全问题与池化复用机制。二、正文1. 什么情况下Servlet实例会发生线程安全问题?直接给答案:(1)多个线程尝试同时修改(未做synchronized/lock/condition等同步处理)同一个实...原创 2018-10-31 22:56:16 · 465 阅读 · 0 评论 -
一个Servlet线程安全问题实例
1.问题起源几年前开发的一个JavaWeb应用,用于课程实验,同一时段内每次使用的用户量大约20人左右,采用的技术框架为Tomcat+Hibernate,功能仅限于简单的增删查改,并没有复杂的逻辑。但是由于当时对JavaWeb只了解皮毛,所以根本没有考虑到线程安全的问题,导致了后来的问题发生。2.问题症状1.单机本地功能测试时完全没有问题,多人同时使用时才出现问题;2.第一年实验过程中未出...原创 2019-05-22 00:15:48 · 153 阅读 · 0 评论