`
edwin492
  • 浏览: 115537 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

tomcat学习

阅读更多

从官网下载tomcat源码

导入:创建Project选择Java Project from Existing Ant buildfile,然后引入tomcat源码

依赖包:ant.jar jaxrpc.jar org.eclipse.jdt.core_3.3.1.v_780_R33x.jar(此包在myeclipse)wsdl4j-1.5.1.jarjdk6

运行: org.apache.catalina.startup.Bootstrap类

<!--[if !supportLists]-->1.       <!--[endif]-->运行时配置参数start

<!--[if !supportLists]-->2.       <!--[endif]-->添加VM参数-Dcatalina.home="E:\Program Files\Apache Software Foundation\Tomcat 6.0"tomcat的安装地址。

      setCatalinaHome();//设置系统属性值catalia.home,在开始运行Bootstrap时,就添加了此值。设置当前的工作路径。
setCatalinaBase();//设置catalia.base值
initClassLoaders();//初始化commonLoader,catalinaLoader,sharedLoader三大加载器
//在当前线程中设置catalinaLoader
Thread.currentThread().setContextClassLoader(catalinaLoader);
//securityClassLoad中加载一些相关的类
SecurityClassLoad.securityClassLoad(catalinaLoader);
//…利用反射调用Catalina类的setParentClassLoader
//至此初始化完成
 catalia.homecatalia.base的区别: http://txy821.iteye.com/blog/557584

catalina.homecatalina.base这两个属性仅在你需要安装多个Tomcat实例而不想安装多个软件备份的时候使用,这样能节省磁盘空间。Tomcat目录下只有 bin lib 目录可以被多个实例共用,其它目录conflogstempwebappswork每个Tomcat实例必须拥有其自己独立的备份。

catalina.home指向公用信息的位置,就是binlib的父目录。
catalina.base
指向每个Tomcat目录私有信息的位置,就是conflogstempwebappswork的父目录。
仅运行一个Tomcat实例时,这两个属性指向的位置是相同的。

tomcat多实例运行介绍: http://blog.csdn.net/hansoft/article/details/647060

 

initClassLoaders:先得介绍CatalinaProperties类,此类有个loadProperties方法,方法中加载属性文件catalina.properties中的内容,添加到系统属性中。方法在类的静态代码块中被调用。调用createClassLoader方法创建加载器,首先通过catalinaProperties取得配置文件中的相关属性值(即lib存放的位置),然后由ClassLoaderFactory工厂创建。在此工厂中创建该加载器的classpath,最后通过StandardClassLoader(此类为ClassLoader的间接子类)创建一实例加载器。initClassLoaders()载入tomcat安装目录下,子目录common/libserver/libshared/lib下的jar运行时库文件,并创建对应的三个classloadercommonLoadercatalinaLoadersharedLoader,并且commonLoadercatalinaLoadersharedLoader的父节点。Tomcat5是这样的结构,但在tomcat6中结构发生改,查看catalinaProperties文件可以看见server.loadershared.loader都是为空的。

 

start启动时先初始化相应参数和目录,创建一个Digester用于解析server.xml,最后创建一个新的server并进行初始化(standardServer中的initialize方法)。最后调用Catalina中的start(),通过反射调用Lifecycle中的start方法。Lifecycle为一接口,定义Tomcat生命周期的相关内容,而StandardService为实现Lifecycle的子类。

Start方法中主要实现:1.修改生命周期状态 2.触发开始前的相关事件 3.开始定义的容器 4.开始定义的连接器 5.触发开始后的相关事件

 

分享到:
评论

相关推荐

    Tomcat学习资料1

    【标题】:“Tomcat学习资料1”所涵盖的知识点包括了Tomcat服务器的使用、配置以及Web项目的部署。Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,是一款开源的Java Servlet容器,广泛用于搭建Java Web...

    tomcat学习资料整理(不断更新)

    【标题】"Tomcat学习资料整理(不断更新)"揭示了这个压缩包文件是关于Tomcat服务器的深入学习资源,特别是关注其源码和使用的工具。Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,它是一个开源的、免费的...

    tomcat学习笔记

    【标题】:Tomcat学习笔记 【正文】: Tomcat是一款广泛应用的开源Web服务器和Java Servlet容器,由Apache软件基金会的Jakarta项目开发。它实现了Java Servlet和JavaServer Pages(JSP)规范,并且作为轻量级应用...

    Tomcat学习资料

    ### Tomcat学习资料知识点梳理 #### 一、Tomcat简介 **Tomcat** 是一个开源的轻量级Web应用服务器,适用于中小型系统和并发访问用户不是很多的场合。它由Apache Software Foundation(ASF)的Jakarta项目开发,因...

    Tomcat学习总结.zip

    《Tomcat学习总结》 Tomcat,作为Java Web应用程序的开源服务器,是Apache软件基金会Jakarta项目的一个核心组件。在本文中,我们将深入探讨Tomcat 8.5版本的学习要点,包括其工作原理、配置与优化,以及在实际开发...

    tomcat学习精华笔记

    【Tomcat 学习精华笔记】 Tomcat 是一个广泛应用的开源服务器,主要用于托管Java Web应用程序。它虽然不是严格意义上的应用服务器,但作为一个Servlet容器,它能够处理Servlet和JSP,并且具备了一些应用服务器的...

    tomcat 学习与分析总结资料

    《Tomcat学习与分析总结资料》是一份涵盖了Tomcat服务器核心知识的综合资源,适合对Java Web应用服务器感兴趣的开发者深入学习。Tomcat是Apache软件基金会的项目,是世界上最流行的开源Servlet容器,它实现了Java ...

    Tomcat学习

    【标题】:Tomcat学习 【内容】 Tomcat是一款开源的、基于Java Servlet和JavaServer Pages(JSP)技术的Web应用服务器,由Apache软件基金会的Jakarta项目维护。它是Java EE(现称为Jakarta EE)标准的重要组成部分...

    tomcat学习资料,内附tomcat安装过程及应用实例

    【标题】:Tomcat学习资料,内附Tomcat安装过程及应用实例 【内容】: Tomcat是一款由Apache软件基金会开发的开源Java Servlet容器,它实现了Java EE中的Web应用程序规范,是开发和部署小型到中型Java Web应用程序...

    tomcat学习与实践

    《Tomcat学习与实践》 在Java Web开发领域,Tomcat作为一款开源的Servlet容器,其重要性不言而喻。本系列文章将深入探讨Tomcat的内部机制、优化策略以及与Jetty的对比,旨在帮助读者理解并掌握Tomcat的使用与优化。...

    tomcat学习笔记.rar

    【标题】:Tomcat学习笔记 【描述】:Tomcat是一款广泛应用的开源Java Servlet容器,由Apache软件基金会下属的Tomcat项目开发维护。它主要用于部署和运行Java Web应用程序,包括Servlet和JSP。Tomcat以其轻量级、...

    Tomcat学习笔记

    《Tomcat学习笔记》 Tomcat是一款开源的Java Servlet容器,是Apache软件基金会下的Jakarta项目中的核心项目,主要用于运行Java Web应用程序。本笔记将详细阐述Tomcat的安装、配置、虚拟主机设置、JDBC数据库连接池...

    tomcat学习1:源码编译

    标题 "Tomcat学习1:源码编译" 涉及到的是对Apache Tomcat服务器的深入理解,尤其是从源代码层面进行构建和编译的过程。Apache Tomcat是一款开源的Java Servlet容器,它实现了Java EE的Web应用规范,是许多Java Web...

    Tomcat学习笔记,图片比较多,懒得写博客,先上传

    Tomcat学习笔记,图片比较多,懒得写博客,先上传

    tomcat学习资料收集整理

    tomcat学习资料收集整理。Tomcat可以运行Servlet和JSP,是一个小型的轻量级应用服务器,运行时占用系统资源小、扩展性好、支持负载平衡与邮件服务等开发应用系统中的常用功能,适用于中小型系统和并发访问用户不太多...

    tomcat官网版本Tomcat+Java学习资源

    【标题】:“Tomcat官网版本Tomcat+Java学习资源”是一个综合的学习资料包,主要针对的是Java开发中的关键工具——Apache Tomcat服务器以及相关的Java技术。Apache Tomcat是一款开源的Servlet容器,它实现了Java ...

    nginx和tomcat学习

    本篇文章将深入探讨这两个技术,并基于`Nginx`和`Tomcat`的学习进行详细讲解。 首先,让我们了解`Tomcat`。`Tomcat`是一个开源的Java Servlet容器,主要用于运行Java Web应用程序,特别是那些基于Java Servlet和...

Global site tag (gtag.js) - Google Analytics