Tomcat 有很多配置文件,其中一个是  catalina.properties ,本文介绍catalina.properties 中的设置项。

一、组成

 

catalina.properties中的设置项包括四个部分:

#第一部分:安全设置

package.access

package.definition

#第二部分:类加载设置

common.loader

server.loader

shared.loader

#第三部分:不需要扫描的类设置

tomcat.util.scan.DefaultJarScanner.jarsToSkip

org.apache.catalina.startup.ContextConfig.jarsToSkip

org.apache.catalina.startup.TldConfig.jarsToSkip

#第四部分:字符缓存设置

tomcat.util.buf.StringCache.byte.enabled
tomcat.util.buf.StringCache.char.enabled
tomcat.util.buf.StringCache.trainThreshold
tomcat.util.buf.StringCache.cacheSize

二、安全设置

请参见 :

http://tomcat.apache.org/tomcat-7.0-doc/security-manager-howto.html

http://www.oracle.com/technetwork/java/seccodeguide-139067.html

三、类加载设置

请参见:

http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html

1、classloader加载顺序

Bootstrap--->System--->/WEB-INF/classes---> /WEB-INF/lib/*.jar---> Common

Common的配置是通过 catalina.properties中的common.loader设置的。

2、common.loader设置

通常情况下,common.loader是已经设置好的,不需要修改。

common.loader包括以下路径:

  • unpacked classes and resources in $CATALINA_BASE/lib
  • JAR files in $CATALINA_BASE/lib
  • unpacked classes and resources in $CATALINA_HOME/lib
  • JAR files in $CATALINA_HOME/lib

和默认的一些jar包:

  • annotations-api.jar — JavaEE annotations classes.
  • catalina.jar — Implementation of the Catalina servlet container portion of Tomcat.
  • catalina-ant.jar — Tomcat Catalina Ant tasks.
  • catalina-ha.jar — High availability package.
  • catalina-tribes.jar — Group communication package.
  • ecj-*.jar — Eclipse JDT Java compiler.
  • el-api.jar — EL 2.2 API.
  • jasper.jar — Tomcat Jasper JSP Compiler and Runtime.
  • jasper-el.jar — Tomcat Jasper EL implementation.
  • jsp-api.jar — JSP 2.2 API.
  • servlet-api.jar — Servlet 3.0 API.
  • tomcat-api.jar — Several interfaces defined by Tomcat.
  • tomcat-coyote.jar — Tomcat connectors and utility classes.
  • tomcat-dbcp.jar — Database connection pool implementation based on package-renamed copy of Apache Commons Pool and Apache Commons DBCP.
  • tomcat-i18n-**.jar — Optional JARs containing resource bundles for other languages. As default bundles are also included in each individual JAR, they can be safely removed if no internationalization of messages is needed.
  • tomcat-jdbc.jar — An alternative database connection pool implementation, known as Tomcat JDBC pool. See documentation for more details.
  • tomcat-util.jar — Common classes used by various components of Apache Tomcat.

这些都是系统和工具类,比如数据库的驱动类库、log 类库可以放到此处,web应用的jar 不要放到common.loader 中。

3、server.loader 和 shared.loader

在common.loader 加载完后,tomcat启动程序会检查 catalina.properties文件中配置的server.loader和shared.loader是否设置

如果设置,读取 tomcat下对应的server和shared这两个目录的类库。

server和shared是对应tomcat目录下的两个目录,默认的Tomcat7 下这两个目录是没有的。

设置方法:

server.loader=${catalina.base}/server/classes,${catalina.base}/server/lib/*.jar

shared.loader=${catalina.base}/server/classes,${catalina.base}/server/lib/*.jar

同时需要在tomcat目录下创建 server和shared目录结构并将公用的、应用类放到里面。

Bootstrap--->System--->/WEB-INF/classes---> /WEB-INF/lib/*.jar---> Common--->Server--->Shared

四、忽略扫描的类设置

默认的一些类tomcat已经设置。

五、字符缓存设置

根据需要设置字符的缓存策略。

默认 tomcat.util.buf.StringCache.byte.enabled=true 设置,其他的被注释了。

六、小结

Tomcat可以通过catalina.properties的server和shared设置,为webapp提供公用类库。

使一些公用的、不需要与webapp放在一起的设置信息单独保存,在更新webapp的war的时候无需更改webapp的设置。

备注:

Tomcat 遵循的规范如下:

  • EL 2.2 API.
  • JSP 2.2 API.
  • Servlet 3.0 API.

很多的配置文件的规则都在这几个规范中定义。

Tomcat 7下如何利用 catalina.properties 部署公用类的更多相关文章

  1. Eclipse下配置javaweb项目快速部署到tomcat

    用惯了VS,再用Eclipse,完全有一种从自动挡到手动挡的感觉啊. 很多同学在Eclipse下开发web项目,每一次修改代码,看效果的时候都有右键项目->Run as -> Run on ...

  2. 使用Maven自动部署Tomcat 6和Tomcat 7下Web应用

    使用Maven自动部署Tomcat 6和Tomcat 7下Web应用 开启Tomcat远程管理权限 在tomcat的config目录下的tomcat-users.xml文件, <role rol ...

  3. Tomcat—怎样在Tomcat Webserver下部署Web项目

            总结一下怎样在Tomcat Webserver下部署Web项目:

  4. Eclipse 单个tomcat多个项目部署原理(tomcat配置的环境变量catalina.home和catalina.base)

    一:概念 catalina.home(安装目录):指向公用信息的位置,就是bin和lib的父目录. catalina.base(工作目录):指向每个Tomcat目录私有信息的位置,就是conf.log ...

  5. Tomcat创建虚拟目录和程序热部署

    虚拟目录的设置 方法一:在${tomcat安装目录}/conf/Catalina/localhost目录下添加与web应用同名的xml配置文件,这里站点名称为test为例子. test.xml内容:& ...

  6. tomcat启动(二)org.apache.catalina.startup.Bootstrap分析

    /** * Bootstrap loader for Catalina. This application constructs a class loader * for use in loading ...

  7. Tomcat 映射虚拟目录和程序热部署

    虚拟目录的设置 方法一:在${tomcat安装目录}/conf/Catalina/localhost目录下创建一个xml文件,任意文件名都可以,但是此文件名是web应用发布后的虚拟目录: 比如创建一个 ...

  8. catalina.properties

    追踪 startup.bat set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat" call "%EXECUTABLE%&q ...

  9. jenkins+Gitlab+maven+tomcat实现自动集成、打包、部署

    一.前言 首先出于提高自己技术水平和琢磨能做点什么能提高工作效率,上线工作实在无聊.重复(手动编译.打包,传包,重启),于是就想到了jenkins,jenkins持续集成已经不是什么新鲜的话题,网上文 ...

随机推荐

  1. 项目uml

    [团队信息] 团队项目: 小葵日记--主打记录与分享模式的日记app 队名:日不落战队 队员信息及贡献分比例: 短学号 名 本次作业博客链接 此次作业任务 贡献分配 备注 501 安琪 http:// ...

  2. iOS- 网络访问JSON数据类型与XML数据类型的实现思路及它们之间的区别

    1.JSON (基本上移动开发的主要数据传输都是JSON) 1.1.JSON特点: a.[] 表示数组 b.{} 表示字典 - 对象模型建立关系 c.应用非常多,基本上移动开发的主要数据传输都是JSO ...

  3. Dubbo分享

    1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需 ...

  4. 面试:谈谈你对jQuery的理解

    jQuery是一个轻量级的javascript框架,极大的简化了js的编程. 1.首先jQuery提供了强大的元素选择器.用于获取html页面中封装了html元素的jQuery对象.像常见的选择器有: ...

  5. Oracle基础 表分区

    Oracle基础 表分区 一.表分区 (一)表分区的分类 1.范围分区(range) 2.散列分区(hash) 3.列表分区(list) 4.复合分区:范围-哈希(range-hash).范围-列表( ...

  6. 在DBGrid中可选中行而又可进入编辑状态

    如何在DBGrid中选中行,而又让它可以进入编辑状态? 也许你会问我这有什么用?呵呵,做数据库应用的兄弟们会深有感触,当用DBGrid显示的字段过多时,用户不得不拉动最下面的滚动条,去看最右边的东西, ...

  7. Go语言【第十篇】:Go数据结构之:指针

    Go语言指针 Go语言中指针是很容易学习的,Go语言中使用指针可以更简单的执行一些任务.我们都知道变量是一种使用方便的占位符,用于引用计算机内存地址.Go语言的取地址符是 &,放到一个变量前使 ...

  8. 利用cmake查看opencv的源码

    当我们有时想查看opencv自带的函数的源代码,比如函数cvCreateImage, 此时我们选中cvCreateImage, 点击鼠标右键->转到定义,我们会很惊讶的发现为什么只看到了cvCr ...

  9. 转:Lucene之计算相似度模型VSM(Vector Space Model) : tf-idf与交叉熵关系,cos余弦相似度

    原文:http://blog.csdn.net/zhangbinfly/article/details/7734118 最近想学习下Lucene ,以前运行的Demo就感觉很神奇,什么原理呢,尤其是查 ...

  10. (转)超详细单机版搭建hadoop环境图文解析

                        超详细单机版搭建hadoop环境图文解析   安装过程: 一.安装Linux操作系统 二.在Ubuntu下创建hadoop用户组和用户 三.在Ubuntu下安装 ...