自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (2)
  • 收藏
  • 关注

原创 tomcat源码研读笔记—tomcat的接收请求之五 StandardWrapper接收请求

StandardWrapper的继承关系:从StandardWrapper的继承关系,我们根据之前的经验也可以推到出接收请求的过程了: 1,  调用了ContainerBase中的Invoke方法2,  进而调用了实现valve接口的StandardWrapperValve的invoke方法publicvoid invoke(Request request, Response response, ...

2018-03-22 08:54:23 404

原创 tomcat源码研读笔记—tomcat的接收请求之四 StandardContext接收请求

StandardContext继承关系:根据继承关系,我们可以知道,跟之前处理请求的机制基本是一致的。只是standardContext重写了父类的invoke方法: public void invoke(Request request, Response response)       throws IOException, ServletException {        // Wait i...

2018-03-22 08:54:14 381

原创 tomcat源码研读笔记—tomcat的接收请求之三 StandardHost接收请求

在研读StandardHost的时候,我们再查看下它的继承关系:我们会发现其实它跟StandardEngine的继承关系是很相似的,只是变了个Host接口和多个个Deployer接口而已,其他都是一样的。   同样的1, 调用了ContainerBase中的Invoke方法2,进而掉用了valve的invoke方法,而这里实现了valve接口的实现类是StandardHostValve3,这个时候...

2018-03-22 08:54:04 1004

原创 tomcat源码研读笔记—tomcat的接收请求之二 StandardEngine接收请求

根据上一章节的分析,我们知道HttpProcessor最后根据请求信息,构建好request和response之后,调用HttpConnector容器的invoke方法:   connector.getContainer().invoke(request,response)将请求传递给了HttpProcessor的容器,那么我们的疑问来了,这个container究竟是谁呢?它的实现类在哪里?如果我...

2018-03-22 08:53:55 223

原创 tomcat源码研读笔记—tomcat的接收请求之一 HttpProcessor接收请求

根据之前的剖析,我们知道tomcat启动好之后,一直在等待这个请求,而这个等待请求的过程就是在HttpConnector的run方法里边,我们可以认为在tomcat启动好之后,就开启了线程在等待着前端发过来的请求:while (!stopped){            // Accept the next incomingconnection from the server socket    ...

2018-03-22 08:53:44 686

原创 tomcat源码研读笔记—tomcat的启动之七 HttpConnector的启动

我们从启动流程图上可以了解到,当standardWrapper启动完成之后,那么返回到standardService的start方法里边时,会执行HttpConnector的start方法:HttpConnector的start方法源码:public void start() throwsLifecycleException {        // Validate and update our ...

2018-03-22 08:53:25 215

原创 tomcat源码研读笔记—tomcat的启动之六 StandardWrapper的启动

StandardWrapper的继承关系类图如下:我们查看standardWrapper的start方法的源码: public void start() throws LifecycleException {        // Start up this component       super.start();        // Load and initialize an instanc...

2018-03-21 17:32:24 217

原创 tomcat源码研读笔记—tomcat的启动之五 StandardContext的启动

我们首先看下StandardContext的继承关系:然后查看starndardContext的start方法源码:public synchronized void start() throwsLifecycleException {       if (started)           throw new LifecycleException               (sm.getStr...

2018-03-21 17:32:14 605

原创 tomcat源码研读笔记—tomcat的启动之四 StandardHost的启动

我们首先了解下standardHost的继承关系:然后查看start代码如下: public synchronized void start() throwsLifecycleException {       // Set error report valve       if ((errorReportValveClass != null)           && (!err...

2018-03-21 17:32:02 636

原创 tomcat源码研读笔记—tomcat的启动之三 StandardEngine的启动

这一章节开始,我们进入了所谓的“容器”内部了,standardEngine启动的源码如下:   public void start() throws LifecycleException {       // Log our server identification information       System.out.println(ServerInfo.getServerInfo());...

2018-03-21 17:31:45 1173

原创 tomcat源码研读笔记—tomcat的启动之二 StandardService的启动

我们打开standardService类,查看start方法如下:public void start() throwsLifecycleException {       // Validate and update our current component state       if (started) {           throw new LifecycleException    ...

2018-03-21 17:31:33 289

原创 tomcat源码研读笔记—tomcat的启动之一 StandardServer的启动

我们在流程图上可以知道,当HttpConnector初始化完之后,那么程序将返回到Catalina类,开始调用standardServer的start方法,开始standardServer的启动流程了,所以我们返回到standardServer的start方法中进一步探究,源码如下:public void start() throws LifecycleException{       // Va...

2018-03-21 17:31:23 321

原创 tomcat源码研读笔记—tomcat的初始化之三 HttpConnector的初始化

现在我们来到了HttpConnector的世界里,开始了解初始化之道。剑指初始化方法initialize:public void initialize()   throws LifecycleException {       if (initialized)           throw new LifecycleException (               sm.getString("...

2018-03-21 17:31:00 192

原创 tomcat源码研读笔记—tomcat的初始化之二 StandardService的初始化

这一章节,我们来研读下StandardService,查看initialize方法源码如下:        public void initialize()   throws LifecycleException {       if (initialized)           throw new LifecycleException (               sm.getString(...

2018-03-21 17:30:47 308

原创 tomcat源码研读笔记—tomcat的初始化之一 StandardServer的初始化

由上一章节我们可以知道,Catalina已经教棒给StandardServer了,我们可以直接打开StandardServer类,在打开的时候,我们要留意下static属性以及standardServer的构造方法,这些属性和构造函数的一些赋值在后继的调用中,将会使用到的:属性如:  private static String exceptions[][] = {        {"org.apa...

2018-03-21 17:30:34 371

原创 tomcat源码研读笔记—Catalina类

  之前一直想了解tomcat的工作原理,苦于项目繁杂,无法深入源码进行了解;最近由于不招领导待见,手头项目急剧下降,正好有空最近好好看下tomcat的源码,写写研读笔记!我们在研读tomcat源码的时候,一开始就从简入手,由简至繁,只要抓住了主线,一些细节在研读的过程中将慢慢清晰。所以我们首先由catalina类的start()方法入手,前面的Boostrap类,.bat,.sh等文件的研读,等...

2018-03-21 17:28:38 365

原创 Log4j源码阅读之四—doConfigure方法

我们在阅读  public void doConfigure(Properties properties, LoggerRepository repository) 这个方法的源码的时候,我这里就不讲源码再粘贴出来了,我们大概了解这个方法分别调用如下几个主要的方法,其他都是一些判断1,attachListAppender(repository);2,configureRootCateg

2015-10-21 18:43:01 597

原创 Log4j源码阅读之三—initialConfiguration方法

上回我们已经对LogManager类的静态程序块进行了部分解读,现在再次将源码贴上,如下是LogManager类静态程序块全部源码+注释static {        // Check debug        // 1,从运行环境获取log4j.debug的配置值        String debugProp = System.getProperty("log4j.debug"

2015-10-21 09:09:00 507

原创 Log4j源码阅读之二—LogManager的静态程序块

我们带着上回的疑问到源码去找答案:我们查看LogManager这个类源码的时候发现,这个类里边有个静态程序块,源码如下:(源码过长,此处不一一展示)我们都知道静态程序块,在LogManager初始化的时候,就会将static的静态程序块在JVM机上执行并且只执行了一次(第二次不再执行)。那么我们可以大胆肯定,我们之前的疑问,必定在这个类的LogManager的静态程

2015-10-20 15:17:57 2378

原创 Log4j源码阅读之一—Logger的获取

本次Log4j源码研读的入口,是从 logger = Logger.getLogger("test"),这个方法调用开始,我们看看下边是时序图:下边是对上述时序图的解读:我们actioner通过调用Logger.getLogger("test")方法的时候,会提交的Logger类的静态方法getLogger,这个静态方法源码如下: public static Logger ge

2015-10-20 14:36:03 2644

原创 spring @Value加载配置值

当我们在JAVA代码中使用ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:spring.xml");进行spring 配置文件加载的时候,想把spring.xml文件里边的                             classpath*:dataInfo.prop

2015-10-16 10:50:50 1095 1

tomcat源码研读笔记中的tomcat源码

tomcat源码研读笔记涉及到了tomcat的版本,笔记是基于这个版本的tomcat源码进行研读并写下的笔记

2018-03-22

how tomcat to work

英文版how tomcat to work,深入了解tomcat不错资料!

2015-04-28

空空如也

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

TA关注的人

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