`
youyun_2008
  • 浏览: 115619 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

学习tomcat 小记(1)

阅读更多
1)org.apache.catalina.connector.http.HttpConnector
实现了org.apache.catalina.Connector接口,java.lang.Runnable接口(确保在自己的线程中运行)和org.apache.catalina.Lifecycle接口。Lifecycle接口用于维护每个实现了该接口的tomcat的组件的生命周期。

HttpConnector的initialize方法会调用一个私有方法open,返回一个java.net.ServerSocket实例,赋值给成员变量serverSocket。这里并没有直接调用ServerSocket的构造方法,而是用过open方法调用ServerSocket的一个工厂方法来实现。

2)org.apache.catalina.Connector接口
该接口有很多方法,最重要的是getContainer,setContainer,createRequest和createResponse。

3)HttpProcessor
在tomcat的默认connector中,使用了一个HttpProcessor的对象池, 其中的每个对象都在其自己的线程中使用。因此,connector可同时处理多个http请求。
HttpConnector维护了一个HttpProcessor的对象池,避免了频繁的创建HttpProcessor对象。该对象池使用java.io.Stack实现。
在HttpConnector中,创建的HttpProcessor数目由两个变量决定:minProcessors和maxProcessors。
在tomcat的默认连接器中,HttpProcessor实现了java.lang.Runnable接口,每个HttpProcessor的实例都可以在其自己的线程中运行,成为“处理器线程”(“processor thread”)。HttpConnector创建每个HttpProcessor实例时,都会调用其start方法,启动其处理器线程。

4)HttpConnector类实现了java.lang.Runnable接口,这样它可以专注于自己的线程。启动应用程序时,会创建一个HttpConnector对象,其run方法会被调用。其run方法中是一个循环体,执行以下三件事:
 等待http请求;
 为每个请求创建一个HttpPorcessor对象;
 调用HttpProcessor对象的process方法。

HttpProcessor类的process方法从http请求中获取socket。对每个http请求,它要做一下三件事:
 创建一个HttpRequest对象和一个HttpResponse对象;
 处理请求行(request line)和请求头(request headers),填充HttpRequest对象;
 将HttpRequest对象和HttpResponse对象传给ServletProcessor或StaticResourceProcessor的process方法。


5)HttpProcessor类的process方法
process方法做了三件事,解析连接,解析请求,解析请求头
parseConnection,parseRequest和parseHeaders

HttpProcessor对象负责创建HttpRequest对象,并填充它的成员变量。在其parse方法中,将请求行(request line)和请求头(request header)信息填充到HttpRequest对象中,但并不会填充请求体(request body)和查询字符串(query string)。
分享到:
评论

相关推荐

    tomcat5.0+6.0

    【标题】"Tomcat5.0+6.0" 指的是Apache Tomcat服务器的两个不同版本,分别是5.0版和6.0版。Apache Tomcat是一款开源的...学习和了解这两个版本有助于深入理解Tomcat的历史演进,以及如何根据项目需求选择合适的版本。

    java小记.rar

    Java Web开发是软件行业中一个广泛讨论的话题,涵盖了诸如Servlet、JSP、JDBC、MVC框架、企业级组件以及各种工具和技术。...通过学习和参考这些笔记,可以提升Java Web开发技能,更好地应对实际项目中的挑战。

    android应用登录模块访问mysql数据库小记.pdf

    3. Tomcat配置:Tomcat是常用的Java应用服务器,配置过程可能会遇到问题,包括设置classpath、创建Web应用等。正确配置是确保服务器能够正确运行Servlet和JSP的关键。 4. 查询用户名和密码的URL:在Android应用中,...

    liferay开发小记---开发环境的搭建

    Liferay提供了一个名为Tomcat的内置服务器,可以通过Liferay SDK轻松启动。SDK包含了运行和构建Liferay所需的全部配置。下载Liferay SDK后,按照官方文档的指导配置工作区和服务器设置。 在IDE中导入Liferay ...

    Flex整合J2EE开发小记+源码下载

    标题中的“Flex整合J2EE开发小记+源码下载”揭示了本文的主题,即如何将Adobe Flex技术与Java EE(J2EE)平台相结合,进行Web应用的开发。Flex是一种用于构建富互联网应用程序(RIA)的开源框架,它允许开发者创建...

Global site tag (gtag.js) - Google Analytics