Tomcat备忘记录

简介

Tomcat 是Web应用服务器 ,等于servlet容器+HTTP web服务器,实现一些J2EE包括Java Servlet、JSP页面、Java EL和websocket,还有纯java的http web server。项目早期4.0时名称叫catalina,后来更名为Tomcat,内置servlet容器默认名称还是叫catalina。有很多商业的java应用程序服务器(如JBoss和JOnAS)都内嵌了优化后的tomcat。 tomcat结构图

混淆:常见Web容器与应用服务器区别及对比
1)Apache:Tomcat和Apache(c语言实现)一样都具有处理HTML页面的功能,但它还是一个Servlet和JSP容器。不过Tomcat处理静态HTML的功能不如Apache,所以经常是把两者结合起来使用,Apache作为HTTP Web服务器,Tomcat作为Web容器。
2)web服务器:web服务器不单是支持http服务,还可以支持如ftp服务等,tomcat只是http web服务器。

配置文件

  • server.xml:Tomcat的主配置文件,包含Service,Connector,Engine,Realm,Valve,Hosts主组件的相关配置信息
  • web.xml:遵循Servlet规范标准的配置文件,用于配置servlet,并为所有的Web应用程序提供包括MIME映射等默认配置信息
  • tomcat-user.xml:Realm认证时用到的相关角色、用户和密码等信息;Tomcat自带的manager默认情况下会用到此文件 在Tomcat中添加/删除用户
  • catalina.policy:Java相关的安全策略配置文件,在系统资源级别上提供访问控制的能力
  • catalina.properties:Tomcat内部package的定义及访问相关的控制,也包括对通过类装载器装载的内容的控制Tomcat6在启动时会事先读取此文件的相关设置
  • logging.properties:Tomcat通过自己内部实现的JAVA日志记录器来记录操作相关的日志,此文件即为日志记录器相关的配置信息, 可以用来定义日志记录的组件级别以及日志文件的存在位置等;
  • context.xml:每个webapp都有其配置文件,通常位于webapp目录下的WEB-INF目录中,通常用于定义会话管理器、Realm以及JDBC等; 此配置文件是用于为部署在当前tomcat实例上的所有的webapp提供默认配置;

启动

tomcat启动脚本是启动Bootstrap类,Bootstrap是tomcat的门面,用于隐藏tomcat的内部类Catalina。
1)org.apache.catalina.startup.Bootstrap:main程序,启动脚本调用的类方法,负责创建Catalina实例 ;
2)org.apache.catalina.startup.Catalina :启动/关闭Server,并负责解析tomcat配置文件server.xml;
3)Bootstrap常用参数:

  • catalina.home:tomcat安装目录,tomcat实例公用安装目录下的bin, lib目录
  • catalina.base:tomcat实例目录,包括conf, logs, temp, webapps, work目录
  • java.endorsed.dirs:包升级替换机制,该目录下的类会覆盖jdk里原有的类
  • wtp.deploy:tomcat部署目录(暴露了还在用eclipse)
    4)org.apache.catalina.startup.Tomcat:用于内嵌或单元测试的最小启动器

部署方式

1)描述符:Host容器配置目录下的Context标签的XML文件,位置在webapps目录下或conf/Catalina/localhost目录下;
2)WAR文件:Host容器appBase目录的war,默认是webapps目录;
3)目录部署:Host容器appBase目录的目录,默认是webapps目录;
4)server.xml配置文件:启动时解析server.xml配置文件创建context;

    /**
     * Deploy applications for any directories or WAR files that are found
     * in our "application root" directory.
     */
    protected void deployApps() {
        File appBase = host.getAppBaseFile();
        File configBase = host.getConfigBaseFile();
        String[] filteredAppPaths = filterAppPaths(appBase.list());
        // Deploy XML descriptors from configBase
        deployDescriptors(configBase, configBase.list());
        // Deploy WARs
        deployWARs(appBase, filteredAppPaths);
        // Deploy expanded folders
        deployDirectories(appBase, filteredAppPaths);
    }

转载于:https://my.oschina.net/braveCS/blog/885468

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值