君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理
上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 106 下一页

2012年12月2日 #

摘要: 转载http://www.infoq.com/cn/articles/zh-tomcat-http-request-2?utm_source=infoq&utm_medium=related_content_link&utm_campaign=relatedContent_articles_clk很多开源应用服务器都是集成tomcat作为web container的,而且对于tomcat的servlet container这部分代码很少改动。这样,这些应用服务器的性能基本上就取决于Tomcat处理HTTP请求的connector模块的性能。本文首先从应用层次分析了tomcat所 阅读全文
posted @ 2012-12-02 23:52 刺猬的温驯 阅读(246) 评论(0) 推荐(1) 编辑

摘要: 转载http://www.infoq.com/cn/articles/zh-tomcat-http-request-1很多开源应用服务器都是集成tomcat作为web container的,而且对于tomcat的servlet container这部分代码很少改动。这样,这些应用服务器的性能基本上就取决于Tomcat处理HTTP请求的connector模块的性能。本文首先从应用层次分析了tomcat所有的connector种类及用法,接着从架构上分析了connector模块在整个tomcat中所处的位置,最后对connector做了详细的源代码分析。并且我们以Http11NioProtocol 阅读全文
posted @ 2012-12-02 23:49 刺猬的温驯 阅读(339) 评论(0) 推荐(1) 编辑

摘要: 本系列转载自http://blog.csdn.net/haitao111313/article/category/1179996 我们知道,在Tomcat的世界里,一个Host容器代表一个虚机器资源,Context容器代表一个应用,所谓的部署器就是能够把Context容器添加进Host容器中去的一个组件。显然,一个Host容器应该拥有一个部署器组件。简单的部署代码应该是下面这样的:[java]view plaincopyprint?Contextcontext=newStandardContext();Hosthost=newStandardHost();host.addChild(conte 阅读全文
posted @ 2012-12-02 17:18 刺猬的温驯 阅读(262) 评论(0) 推荐(0) 编辑

摘要: 本系列转载自http://blog.csdn.net/haitao111313/article/category/1179996在明白Tomcat的Session机制之前,先要了解Session,Cookie,JSESSIONID这几个概念。JSESSIONID是一个唯一标识号,用来标识服务器端的Session,也用来标识客户端的Cookie,客户端和服务器端通过这个JSESSIONID来一一对应。这里需要说明的是Cookie已经包含JSESSIONID了,可以理解为JSESSIONID是Cookie里的一个属性。让我假设一次客户端连接来说明我对个这三个概念的理解: Http连接本身是无状态. 阅读全文
posted @ 2012-12-02 17:16 刺猬的温驯 阅读(511) 评论(0) 推荐(0) 编辑

摘要: 本系列转载自http://blog.csdn.net/haitao111313/article/category/1179996在讲Tomcat的载入器之前,先要了解一下java的类加载机制,这里就不具体说了,仅仅写一点我认为比较重要的东西: 1:一般实现自己的类加载器是重写ClassLoader的findClass方法,然后在这个方法里面读取class文件为byte[]数组,传入defineClass方法,defineClass方法返回我们加载的类。这样便实现了我们自己的简单的类加载器。下面是一个简单的自定义类加载器的findClass方法:[java]view plaincopyprin. 阅读全文
posted @ 2012-12-02 17:15 刺猬的温驯 阅读(753) 评论(0) 推荐(0) 编辑

摘要: 本系列转载自http://blog.csdn.net/haitao111313/article/category/1179996在前面的大部分文章都是讲连接器和容器的,以后的内容会偏向写一些Tomcat的其他组件以及一些细节的东西。 Tomcat有很多组件,要一个一个启动组件难免有点麻烦。由于Tomcat的包含关系是Catalina->Server->Service->容器/连接器/日志器等,于是可通过父组件负责启动/关闭它的子组件,这样只要启动Catalina,其他的都自动启动了。这种单一启动和关闭的机制是通过实现Lifecycle接口来实现的。下面是Lifecycle接口 阅读全文
posted @ 2012-12-02 17:13 刺猬的温驯 阅读(295) 评论(0) 推荐(0) 编辑

摘要: 本系列转载自http://blog.csdn.net/haitao111313/article/category/1179996日志记录器挺简单的,没有很多东西,最主要的就是一个Logger接口: [java]view plaincopyprint?publicinterfaceLogger{publicstaticfinalintFATAL=Integer.MIN_VALUE;publicstaticfinalintERROR=1;publicstaticfinalintWARNING=2;publicstaticfinalintINFORMATION=3;publicstaticfin.. 阅读全文
posted @ 2012-12-02 17:11 刺猬的温驯 阅读(323) 评论(0) 推荐(0) 编辑

摘要: 本系列转载自http://blog.csdn.net/haitao111313/article/category/1179996目标:在这篇文章希望搞明白connector.getContainer().invoke(request,response);调用容器的invoke后是怎么传递到 servlet或者jsp的? 由上篇文章Tomcat源码分析(三)--连接器是如何与容器关联的?可知,connector.getContainer()得到的容器应该是StandardEngine(其实应该是由server.xml文件配置得到的,这里先假定是StandardEngine),StandardEn 阅读全文
posted @ 2012-12-02 17:10 刺猬的温驯 阅读(250) 评论(0) 推荐(0) 编辑

摘要: 本系列转载自http://blog.csdn.net/haitao111313/article/category/1179996本文所要解决的问题:一个http请求过来,容器是怎么知道选择哪个具体servlet? 我们知道,一个Context容器表示一个web应用,一个Wrapper容器表示一个servlet,所以上面的问题可以转换为怎么由Context容器选择servlet,答案是映射器。映射器是实现了Mapper接口的类,作用就是根据请求连接(主要是协议和路径)来选择下一个容器,可以看做是一个哈希表,根据关键字段来选择具体的值,Mapper接口的定义为:[java]view plainco 阅读全文
posted @ 2012-12-02 17:10 刺猬的温驯 阅读(230) 评论(0) 推荐(0) 编辑

摘要: 本系列转载自http://blog.csdn.net/haitao111313/article/category/1179996这篇文章要弄懂一个问题,我们知道,一个链接器是跟一个容器关联的,容器跟链接器是在什么时候关联上的? 在明白这个问题前要先了解一下Digester库,这个库简单的说就是解析xml文件,这里有两个概念:模式和规则,所谓模式就是一个xml的标签,规则就是遇到一个xml标签需要做什么,看一下他主要的三个方法: 1:addObjectCreate(String pattern, String className, String attributeName) 根据模式pa... 阅读全文
posted @ 2012-12-02 17:08 刺猬的温驯 阅读(247) 评论(0) 推荐(0) 编辑

上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 106 下一页