随笔分类 -  Tomcat&Servlet

摘要:前言 这两年,tomcat慢慢在新项目里不怎么接触了,因为都被spring boot之类的框架封装进了内部,成了内置server,不用像过去那样打个war包,再放到tomcat里部署了。 但是,内部的机制我们还是有必要了解的,尤其是线程模型和classloader,这篇我们会聚焦线程模型。 其实我本 阅读全文
posted @ 2020-09-27 18:02 三国梦回 阅读(19581) 评论(7) 推荐(13) 编辑
摘要:一、前言 一共8个类,撸一个IOC容器。当然,我们是很轻量级的,但能够满足基本需求。想想典型的 Spring 项目,是不是就是各种Service/DAO/Controller,大家互相注入,就组装成了我们的业务bean,然后再加上 Spring MVC,再往容器里一放,基本齐活。 我们这篇文章,就是 阅读全文
posted @ 2019-07-08 09:37 三国梦回 阅读(1214) 评论(1) 推荐(1) 编辑
摘要:一、前言 我写博客主要靠自己实战,理论知识不是很强,要全面介绍Tomcat Digester,还是需要一定的理论功底。翻阅了一些介绍 Digester 的书籍、博客,发现不是很系统,最后发现还是官方文档最全面。这里我就把其全文翻译一遍吧,部分不好懂的地方会做些补充。 前面写了两篇 ,一篇是 sax 阅读全文
posted @ 2019-07-03 14:44 三国梦回 阅读(1218) 评论(0) 推荐(2) 编辑
摘要:一、前言 框架代码其实也没那么难,大家不要看着源码就害怕,现在去看 Tomcat 3.0的代码,保证还是看得懂一半,照着撸一遍基本上很多问题都能搞定了。这次我们就模拟 Tomcat 中的 Digester(xml解析工具)来仿写一个相当简易的版本。上一篇说了如何利用 sax 模型来解析 xml,但是 阅读全文
posted @ 2019-07-02 08:43 三国梦回 阅读(1250) 评论(2) 推荐(1) 编辑
摘要:一、前言 第一次被人喊曹工,我相当诧异,那是有点久的事情了,楼主13年校招进华为,14年在东莞出差,给东莞移动的通信设备进行版本更新。他们那边的一个小伙子来接我的时候,这么叫我的,刚听到的时候,心里一紧,楼主本来进去没多久,业务也不怎么熟练,感觉都是新闻联播里才听到什么“陈工”,“李工”之类的叫法, 阅读全文
posted @ 2019-07-01 10:46 三国梦回 阅读(1606) 评论(0) 推荐(4) 编辑
摘要:一篇大神的译文,勉强(嗯。。相当勉强)地放在类加载器系列吧,第8弹: 实战分析Tomcat的类加载器结构(使用Eclipse MAT验证) 还是Tomcat,关于类加载器的趣味实验 了不得,我可能发现了Jar 包冲突的秘密 重写类加载器,实现简单的热替换 @Java Web 程序员,我们一起给程序开 阅读全文
posted @ 2019-06-27 17:43 三国梦回 阅读(1763) 评论(0) 推荐(3) 编辑
摘要:类加载器第7弹: 实战分析Tomcat的类加载器结构(使用Eclipse MAT验证) 还是Tomcat,关于类加载器的趣味实验 了不得,我可能发现了Jar 包冲突的秘密 重写类加载器,实现简单的热替换 @Java Web 程序员,我们一起给程序开个后门吧:让你在保留现场,服务不重启的情况下,执行我 阅读全文
posted @ 2019-06-25 21:24 三国梦回 阅读(1348) 评论(5) 推荐(8) 编辑
摘要:一、前言 类加载器实战系列的第六篇(悄悄跟你说,这篇比较水),前面5篇在这里: 实战分析Tomcat的类加载器结构(使用Eclipse MAT验证) 还是Tomcat,关于类加载器的趣味实验 了不得,我可能发现了Jar 包冲突的秘密 重写类加载器,实现简单的热替换 @Java Web 程序员,我们一 阅读全文
posted @ 2019-06-20 08:07 三国梦回 阅读(1064) 评论(2) 推荐(1) 编辑
摘要:一、前言 这篇算是类加载器的实战第五篇,前面几篇在这里,后续会持续写这方面的一些东西。 实战分析Tomcat的类加载器结构(使用Eclipse MAT验证) 还是Tomcat,关于类加载器的趣味实验 了不得,我可能发现了Jar 包冲突的秘密 重写类加载器,实现简单的热替换 重写类加载器,实现简单的热 阅读全文
posted @ 2019-06-19 15:22 三国梦回 阅读(2675) 评论(2) 推荐(9) 编辑
摘要:一、前言 关于类加载器,前面写了三篇,这篇是第四篇。 实战分析Tomcat的类加载器结构(使用Eclipse MAT验证) 还是Tomcat,关于类加载器的趣味实验 了不得,我可能发现了Jar 包冲突的秘密 本篇写个简单的例子,来说说类的热替换。 先说个原则,在同一个类加载器内,不能重复加载同一个类 阅读全文
posted @ 2019-06-17 23:49 三国梦回 阅读(3633) 评论(4) 推荐(4) 编辑
摘要:一、前言 这篇是类加载器相关的第三篇: 实战分析Tomcat的类加载器结构(使用Eclipse MAT验证) 还是Tomcat,关于类加载器的趣味实验 昨天下午刚写了篇 类加载器相关的,晚上想着验证个问题:Tomcat 跑了多个spring web项目,那么org.springframework.w 阅读全文
posted @ 2019-06-16 08:35 三国梦回 阅读(1989) 评论(6) 推荐(4) 编辑
摘要:一、前言 类加载器,其实是很复杂一个东西,想等到我完全什么都弄明白了再写出来,估计不太现实。。。现在只能是知道多少写多少吧。 首先,我提一个问题:在我们自己的servlet中(比如ssm中,controller的代码),可以访问 tomcat 安装目录下 lib 中的类吗?(servlet-api. 阅读全文
posted @ 2019-06-15 16:57 三国梦回 阅读(1355) 评论(1) 推荐(2) 编辑
摘要:一、前言 这两天看tomcat,查阅 tomcat 怎么承载高并发时,看到了backlog参数。我们知道,服务器端一般使用mq来减轻高并发下的洪峰冲击,将暂时不能处理的请求放入队列,后续再慢慢处理。其实操作系统已经帮我们做了一些类似的东西了,这个东西就是backlog。服务端一般通过 accept 阅读全文
posted @ 2019-06-11 14:28 三国梦回 阅读(6182) 评论(8) 推荐(3) 编辑
摘要:一、前言 在各种Tomcat相关书籍,书上都提到了其类加载器结构: 在Tomcat 7或者8中,共享类和Catalina类加载器在catalina.properties中都是没配置的,请看: 所以,catalina和shared是直接把common的类加载器赋值给了它们,这三者其实都是同一个类加载器 阅读全文
posted @ 2019-06-09 10:09 三国梦回 阅读(1763) 评论(2) 推荐(2) 编辑
摘要:一、问题描述 最近一直忙得很,好久没写博客。前两天,微信收到个好友申请,说是想问问close_wait的事情。 找他问了些详细信息,大概了解到,他们后端服务是tomcat 7, jdk 7,centos,传统的spring + hibernate + spring mvc 结构。 业务不清楚,客户端 阅读全文
posted @ 2019-05-28 14:40 三国梦回 阅读(51209) 评论(2) 推荐(13) 编辑
摘要:一、前言 我这边已经配置了tomcat-users.xml: 但是访问时,依然报403. 处理方式如下: https://blog.csdn.net/chf1142152101/article/details/62042769 阅读全文
posted @ 2019-03-06 13:16 三国梦回 阅读(247) 评论(0) 推荐(0) 编辑
摘要:一、问题由来 我们组用jenkins部署了持续集成环境,(jenkins部署war包到远程服务器的tomcat)。 每次提交了代码,jenkins上一键构建,就可以自动拉取最新代码,打war包,热部署到远程环境上的tomcat。 一切都很好,只是一次用jconsole偶然连上去一看,远程环境上的to 阅读全文
posted @ 2018-12-26 16:32 三国梦回 阅读(2129) 评论(0) 推荐(1) 编辑
摘要:姊妹篇: 服务器出现大量close_wait,我们来说说到底是怎么回事?(以tomcat为例) 一、问题概述 今天遇到个小问题。 我们的程序依赖了大数据那边的服务,大数据那边提供了restful接口供我们调用。 测试反映接口有问题,我在本地重现了。 我这边感觉抓包可能对分析问题有用,就用wiresh 阅读全文
posted @ 2018-11-12 11:49 三国梦回 阅读(13884) 评论(1) 推荐(3) 编辑
摘要:问题: 我们为了避免未经授权的人直接通过url访问我们的页面,配置了如下filter 在filter中会去验证用户是否携带了某个cookie,然后去redis查询该cookie的值是否关联了用户信息,如果关联了,则filter放过;否则返回未认证。 一开始打算注入以下服务(该服务主要进行去redis 阅读全文
posted @ 2017-06-08 14:34 三国梦回 阅读(6127) 评论(1) 推荐(1) 编辑