Wednesday, April 15, 2009

Tomcat 下的9个文件夹的作用

更多精彩请到 http://www.139ya.com

转自: http://phoenix-ghk.javaeye.com/blog/367141

Tomcat 下的9个文件夹的作用
  经典Tomcat下有9个目录,分别是bin,common,conf,logs,server,shared,temp,webapps,work 目录,现在对每一目录做介绍。注意,Tomcat6.0以后就没有server和shared文件夹了,没有common文件夹,取而代之的是lib文件夹。

  tomcat根目录在tomcat中叫,文章中把tomcat解压后在c:/下。

  1./bin:存放各种平台下启动和关闭Tomcat的脚本文件。其中有个档是 catalina.bat,打开这个windos配置文件,在非注释行加入JDK路径,例如:SET JAVA_HOME=C:j2sdk1.4.2_06 保存后,就配置好tomcat环境了。startup.bat是windows下启动tomcat的文件,shutdown.bat是关闭tomcat的文件。

  2./common:在common目录下的lib目录,存放Tomcat服务器和所有web应用都能访问的JAR。

  3./shared:在shared目录下的lib目录,存放所有web应用能访问的,但Tomcat不能访问的JAR。

  4./server:在server/webapps目录中,存放Tomcat自带的两个 APP-admin和manager应用,使用来管理Tomcat-web服务用的。在server/lib目录中,存放tomcat服务器所需要的各,web应用不能访问种jar。

  5./work:Tomcat把各种由jsp生成的servlet文件放在这个目录下。work这个文件夹下面的东西建议你去看看就可以明白了 那是JSP文件编译成.java->.classes。

  6./temp:临时活页夹,Tomcat运行时候存放临时文件用的。

  7./logs:存放Tomcat的日志文件。

  8./conf:Tomcat的各种配置文件, tomcat启动的时候需要读取的配置文件:server.xml(tomcat主要配置文件)、web.xml和tomcatat- users.xml、catalina.policy(安全策略文件)等。修改了以后需要重启tomcat才能生效.最重要的是 server.xml;配置tomcat组件的XML文件server.XML其中包括:

  I.顶层类元素[Top Level Elements]:位于整个配置文件的顶层, 包括
  II.连接器类元素[Connectors ]:客户和服务(容器类元素)间的通讯接口。接受客户请求,返回响应结果;
  II.容器类元素[Containers]: 处理客户请求并且生成响应结果,包含3个:
  IV.嵌套类元素[Nested Components]: 可以加入到容器中的元素,包括:

  一个包含一个或多个,一个包含唯一一个和一个或多个,多个共享一个;一个包含多个,每个定义一个虚拟主机,包含一个或多个web应用元素是代表一个在虚拟主机上运行的Web应用。标签的描述

  Please note that for tomcat 5.x, unlike tomcat 4.x, it is NOT recommended to place elements directly in the server.xml file. Instead, put them in the META-INF/context.xml directory of your WAR file or the conf directory as described above.

  server.xml配置简介
  下面是这个文件中的基本配置信息,更具体的配置信息见tomcat的文档
  server:
  port 指定一个端口,这个端口负责监听关闭tomcat的请求
  shutdown 指定向端口发送的命令字符串
  service:
  name 指定service的名字
  Connector (表示客户端和service之间的连接):
  port 指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求
  minProcessors 服务器启动时创建的处理请求的线程数
  maxProcessors 最大可以创建的处理请求的线程数
  enableLookups 如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
  redirectPort 指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
  acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
  connectionTimeout 指定超时的时间数(以毫秒为单位)
  Engine (表示指定service中的请求处理机,接收和处理来自Connector的请求)
  defaultHost 指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的
  Context (表示一个web应用程序,通常为WAR文件,关于WAR的具体信息见servlet规范)
  docBase 应用程序的路径或者是WAR文件存放的路径
  path 表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/****
  reloadable 这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重起tomcat的情况下改变应用程序
  host (表示一个虚拟主机):
  name 指定主机名
  appBase 应用程序基本目录,即存放应用程序的目录
  unpackWARs 如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序
  Logger (表示日志,调试和错误信息):
  className 指定logger使用的类名,此类必须实现org.apache.catalina.Logger 接口
  prefix 指定log文件的前缀
  suffix 指定log文件的后缀
  timestamp 如果为true,则log文件名中要加入时间,如下例:localhost_log.2001-10-04.txt
  Realm (表示存放用户名,密码及role的数据库)
  className 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口
  Valve (功能与Logger差不多,其prefix和suffix属性解释和Logger 中的一样)
  className 指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve类可以记录应用程序的访问信息
  directory 指定log文件存放的位置
  pattern 有两个值,common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。combined方式比common方式记录的值更多

  注意:
  默认的server.xml中,Realm元素只设置了一个className属性,但此文件中也包含几个通过JDBC连接到数据库进行验证的示例(被注释掉了),通过Realm元素我们可以实现容器安全管理(Container Managed Security)。

  还有一些元素,如Parameter,loader,你可以通过tomcat的文档获取这些元素的信息。

  9./webapps: web应用的发布目录,把 java开发的web站点或war文件放入这个目录下就可以通过tomcat服务器访问了。

  在绝大多数资料上,都只提到了conf/server.xml以及context下面的 WEB-INF/web.xml,但我发现,有时,在server.xml上面没有配置的内容,tomcat也运行着,后来发现,原来除了这两处配置外,还有一处重要的配置文件,
在TOMCAT_HOME/conf/Catalina/下面(Catalina是server.xml里的engine的名称),也是一些关键的配置文件,每个主机(server.xml里的Host),在这里有一个目录,每个主机(Host)里的一个context在该主机目录下有一个对应的xml文件,比如,根目录对应ROOT.xml,其它名为test的context对应test.xml。

  TOMCAT_HOME/conf/Catalina/hostname/context1.xml 相当于在server.xml中的Catalina引擎下的hostname主机下配置context1WEB应用。在目录里配置,和在 server.xml里配置效果是一样的,Tomcat自带的admin,自动将所有context转到目录下配置,而不是集中在server.xml。

  10、如何新建虚拟目录?
修改 Tomcat安装目录//conf//server.xml ,在下列行前


添加下列行:


表示增加虚拟目录 my,对应物理目录位置c://myjsp//test,若存在c://myjsp//test//hello.jsp,则下列地址可访问:
htpp://localhost:8080/my/hello.jsp
修改server.xml后,需要重新启动tomcat.

No comments: