- 博客(8)
- 问答 (1)
- 收藏
- 关注
Tomcat7中一次请求处理的前世今生(四)Tomcat7阀机制原理
通过前面的三篇文章看到了一次客户端连接在Tomcat内部被转换成了请求对象(org.apache.catalina.connector.Request类的实例),并在该请求对象内部将与本次请求相关的Host、Context、Wrapper对象的引用。本文主要分析该请求对象在容器内部流转的经过。 再来看一下Tomcat7内部的组件结构图: 其实这张图已经给出了答案,在Connector接收到...
2013-08-31 17:10:50 214
Tomcat7中一次请求处理的前世今生(三)请求与容器中具体组件的匹配
前一篇文章分析到了org.apache.coyote.http11.AbstractHttp11Processor类process方法,以解析请求头的getInputBuffer().parseRequestLine方法调用为例,看到如何从Socket的IO流中取出字节流数据,根据Http协议将字节流组装到Tomcat内部的org.apache.coyote.Request对象的相关属性中。 ...
2013-08-30 15:34:08 246
Tomcat7中一次请求处理的前世今生(二)Socket连接转换成内部请求对象
先抛开之前所看到的Tomcat源码不谈,Tomcat作为一个用Java实现的Web服务器,如果让你来实现,那么从何入手? 这里首先需要厘清的是Web服务器的概念,谷歌了一下,发现这条解释还算靠谱点,【在网络环境下可以向发出请求的浏览器提供文档的程序】。这里面重点有两条,1.网络环境下,2.能够给出响应。用Java写过网络通信程序的都知道,这里必然会用到Socket编程。我们自己要实现的服务器...
2013-08-28 20:09:45 253
Tomcat7中一次请求处理的前世今生(一)处理线程的产生
在默认的配置下Tomcat启动好之后会看到后台上总共有6个线程在运行。其中1个用户线程,剩下5个为守护线程(如下图所示)。 如果你对用户线程、守护线程等概念不熟悉,请参看前一篇文章——Tomcat7服务器关闭原理。 这里重点关注以http-bio-8080开头的两个守护线程(即http-bio-8080-Acceptor-0和http-bio-8080-AsyncTimeout),因为这是...
2013-08-20 16:33:06 157
Tomcat7服务器关闭原理
之前的几篇文章讲了Tomcat的启动过程,在默认的配置下启动完之后会看到后台实际上总共有6个线程在运行。即1个用户线程,剩下5个为守护线程(下图中的Daemon Thread)。 如果你对什么叫守护线程的概念比较陌生,这里再重复一下: 所谓守护线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程。这种线程并不属于程序中不可或缺的部分,当所有的非守护线程结束时,程序也就终...
2013-08-16 21:52:49 259
也谈Spring,为何用它?
一个老生常谈的话题,最近出去面试,十之八九还会问这个,今天在博客园里有人说Spring的问题,忍不住点进去看了看,感觉没说出个所以然,所以写篇小文谈谈我的看法。 Spring的由来在其作者Rod Johnson的两本名著(《Expert One-on-One J2EE Development without EJB》和《Expert One-on-One J2EE Design and...
2013-08-16 18:53:18 84
Tomcat7启动分析(五)Lifecycle机制和实现原理
在上篇文章分析Tomcat7的各组件的init、start方法时经常会看到有一个setStateInternal方法的调用,在查看LifecycleBase类及其它各组件的源码时会在多处看到这个方法的调用,这篇文章就来说说这方法,以及与这个方法相关的Tomcat的Lifecycle机制和实现原理。 上篇文章里谈到Tomcat7的各组件的父类LifecycleBase类,该类实现了接口o...
2013-08-06 14:02:49 423
Tomcat7启动分析(四)各组件init、start方法调用
在正常启动Tomcat7的情况下,上篇文章分析到了执行org.apache.catalina.core.StandardServer的init和start方法这儿,那么就来看看这两个方法里面到底干了些什么。 但是在StandardServer类里面并没有发现这两个方法: 由此推知这两方法必定是在该类的父类中已实现了,在StandardServer类的父类LifecycleMBeanBase...
2013-08-05 17:38:28 306
空空如也
Apache的Derby项目现在是不是停止了?
2013-02-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人