自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除