摘要:
关键字synchronized与wait()和notify()/notifyAll()方法相结合可以实现等待/通知模式。 类ReentrantLock同样可以实现该功能,但是要借助于Condition对象。它具有更好的灵活性,比如可以实现多路通知功能,也就是在一个Lock对象里面可以创建多个Cond 阅读全文
摘要:
1.Container的有四个子容器,分别是Engine,Host,Context,Wrapper,如下: 1、Engine:整个Catalina servlet引擎,标准实现为StandardEngine。2、Host:表示包含一个或多个Context容器的虚拟主机,标准实现为StandardHo 阅读全文
摘要:
Connector容器主要负责解析socket请求,在tomcat中的源码位于org.apache.catalina.connector和org.apache.coyote包路径下;通过上两节的分析,我们知道了Connector是Service的子容器,而Service又是Server的子容器。在s 阅读全文
摘要:
Mapper组件的核心功能是提供请求路径的路由映射,根据某个请求路径通过计算得到相应的Servlet(Wrapper)Mapper的映射包括Host容器、Context容器、Wrapper容器等的映射关系以及映射算法 一个service容器包含了N个Host容器的引用,然后每个Host会有N个Con 阅读全文
摘要:
1.BlockingQueue定义的常用方法如下 抛出异常 特殊值 阻塞 超时 插入 add(e) offer(e) put(e) offer(e,time,unit) 移除 remove() poll() take() poll(time,unit) 检查 element() peek() 不可用 阅读全文
摘要:
catalinaHome和catalinaBase区别和作用 其Tomcat目录结构如下: bin (运行脚本) conf (配置文件) lib (核心库文件) logs (日志目录) temp (临时目录) webapps(自动装载的应用程序的目录) work (JVM临时文件目录[java.io 阅读全文
摘要:
通过查看分析启动脚本,发现最终调用的入口是org.apache.catalina.startup包下面的Bootstrap#main 类org.apache.catalina.startup.Catalina#load分析: digester.parse解析xml创建对象的时候相关操作: 1.会绑定 阅读全文
摘要:
1.背景 Tomcat作为JavaWeb领域的Web容器,目前在我们淘宝也使用的也非常广泛,现在基本上所有线上业务系统都是部署在Tomcat上。为了对平时开发的Web系统有更深入的理解以及出于好奇心对我们写的Web系统是如何跑在Tomcat上的,于是仔细研究了下Tomcat的源码。大家都知道Serv 阅读全文
摘要:
前提环境,安装和配置好java1.8+环境,maven,IDEA 1.下载Tomcat源代码:https://tomcat.apache.org/download-80.cgi#8.5.35 2.创建pom.xml 需要通过Maven组织文件,因此需要在apache-tomcat-8.5.35-sr 阅读全文
摘要:
Tomcat的默认工具manager配置,在很多的生产环境中由于基本用不到、或者是不太需要使用Tomcat默认的manager管理页面时一般都会把Tomcat的默认webapp下的内容给删除了,但是如果需要使用Tomcat默认的manager来管理项目时就需要保留相应的文件目录。在Tomcat中的w 阅读全文