![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
读how tomcat work有感
文章平均质量分 81
jj_chen_lian
这个作者很懒,什么都没留下…
展开
-
tomcat源码1
看了几天一书,感觉这种书很好,所以就记录一下看了这本书的心德,后面还有几章没完,但是前面说的太精彩了,所以就想把前面几张整理一下,把书中的思路给串起来。首先看看javax.servlet.Servlet接口/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor lic原创 2012-04-27 23:51:40 · 928 阅读 · 0 评论 -
Tomcat源码12之AccessLogValve类
前面说过,实现value的阀会在管道里面的内部类StandardPiplineValueContext调用。那么我们来看看几个Value的实现。首先是AccessLogValue类.tomcat可以通过server.xml配置系统日志。 比如: docBase="test"原创 2012-05-14 22:17:17 · 3819 阅读 · 0 评论 -
Tomcat源码11
对前面的知识稍微总结以下:Connector 组件Connector 组件是 Tomcat 中两个核心组件之一,它的主要任务是负责接收浏览器的发过来的 tcp 连接请求,创建一个 Request 和 Response 对象分别用于和请求端交换数据,然后会产生一个线程来处理这个请求并把产生的 Request 和 Response 对象传给处理这个请求的线程,处理这个请求的线程就是 Conta原创 2012-05-13 14:41:18 · 679 阅读 · 0 评论 -
Tomcat源码10
这一节来讲讲cookie的解析,要谈到cookie的解析,首先要先大概了解一下两个类。第一个实Cookie,这个类实servlet中的一个类,这个类也就是存放解析cookie后的一些信息,而且这个类是可以被序列化的。另外一个类就是RequestUtil,这是一个工具类,提供了一些请求解析和编码的方法。这个类提供了几个方法,我们目前就先看里面的一个方法:如何解析cookie这个方法。1,首先原创 2012-05-09 21:59:20 · 812 阅读 · 0 评论 -
Tomcat源码7
SocketInputStream.java: 下面来看看上一节留下来的两个函数,先看第一个: org.apache.catalina.connector.http.SocketInputStream // ----------------------------------------------------------- Constructors原创 2012-05-03 21:31:37 · 715 阅读 · 0 评论 -
Tomcat源码9
隔了两天没写,真是不爽阿。都是那个死freebsd,争取快点驾驭它。好了,下面来看看前面那个解析头部函数里面中的一些细节函数。首先再讲前面里面的细节函数前,先看看HttpHeader这个类,它是一个来存放头部信息的一个类。//自动增长HttpHeader数组大小,这个类很简单,先看看它的类成员以及它的构造函数:分别用了char[] name和char[] value来进行存放头部信息原创 2012-05-08 23:02:28 · 680 阅读 · 0 评论 -
Tomcat源码8
这一节说说tomcat如何解析请求的头部的。这一节要介绍的东西比较多,先给出tomcat解析头部的大概思路,然后再从各个细节进行突破。 解析头部的大概思路还是比较清晰的,首先头部的信息是以键值对来进行存储的,那么只要把键和值给分离开来就OK了,然后根据具体的key,来对value进行设置。 设置到HttpRequestImpl中的信息有:authorization,accept-langu原创 2012-05-05 21:51:00 · 948 阅读 · 0 评论 -
Tomcat源码6
这一小节需要掌握两个函数。1,首先先来看看parseConnection()方法:解析连接。下面来看看Tomcat的源码实现:org.apache.catalina.connector.http.HttpProcessor /** * Parse and record the connection parameters related to this request.原创 2012-05-02 21:35:38 · 671 阅读 · 0 评论 -
Tomcat源码5
接着我们就来看看HttpProcessor的process()方法了,这个方法是处理请求的重头级函数!首先要处理请求,要么首先要有获取资源的来源,那么在HttpProcessor类中需要HttpRequestImpl和HttpResponseImpl对象,因为这两个类是获取信息的来源!那么首先看看HttpProcessor初始化HttpRequestImpl和HttpResponseImp原创 2012-05-02 16:49:49 · 807 阅读 · 0 评论 -
Tomcat源码4
今天来看看Tomcat中的Request&Response设计结构,这里主要分析Request的结构,至于Response一样的思想!引用网上的一幅图!是不是看起来很杂,看看How tomcat work提供的一幅图,相对比较简单!作为web container,Tomcat还需要在request中保存许多内部信息及使用方法,这些信息和方法不应该暴露给web开发人员原创 2012-04-29 15:06:03 · 1574 阅读 · 0 评论 -
Tomcat源码3
好了,把这两节的思路重新串一下:首先会先调用HttpConnection的initialize()方法:org.apache.catalina.connector.http.HttpConnector /** * Initialize this connector (create ServerSocket here!) */ public void i原创 2012-04-28 17:09:53 · 630 阅读 · 0 评论 -
Tomcat源码2
好了,接着上一节的内容。我们已经很清楚serverSocket = open();这个方法的作用了。那么我们继续说第二个需要注意的地方。第二个需要注意的地方:HttpProcessor processor = createProcessor();这个方法。我们先来解决以下几个小问题:一,为什么HttpConnector为什么要有HttpProcessor实例?HttpProcessor原创 2012-04-28 16:33:06 · 843 阅读 · 1 评论 -
心得
发现现在很多人对JAVA的基础都不行,尤其是那些搞J2EE的。。虽然我还是学生,不能做多大的评价,只想跟大家能够讨论学习,一同进步。如果有哪些朋友对分析源码感兴趣的,可以加我的QQ:772052869 我会成立一个群,然后大家一起讨论研究。。。。本人目前的水平:还在研究tomcat4.0的源码。接着在未来的一段时间会进攻struct2源码。但是我认为在struct2之前,一定要tomc原创 2012-05-14 16:34:10 · 630 阅读 · 0 评论