JavaWeb入门笔记——Tomcat目录结构

1、Tomcat

Tomcat是一个实现了JAVA EE标准的最小的WEB服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目。软件是开源的,但是需要JDK的支持,因此在下载Tomcat应先确保已正确安装JDK。常见的Java Web服务器还有:

  • 1.WebLogic
  • 2.WebSphere
  • 3.IIS

2.Tomcat安装过程

Tomcat安装非常简单,下载程序包,解压,然后运行提供的startup.sh脚本就可以开启服务。 - 1.下载安装包

wget -c http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.47/bin/apache-tomcat-8.5.47.tar.gz
  • 2.解压
tar -zxvf apache-tomcat-8.5.47.tar.gz
  • 3.开启Tomcat服务
cd apache-tomcat-8.5.47/bin/
./startup.sh

此时使用浏览器打开http://localhost:8080/即可见到如下图所示的主页:

3.Tomcat目录结构

Tomcat程序解压后所得文件夹如下图所示: 以下列出了部分比较重要的目录中的内容进行了解释:

3.1 bin目录

bin目录下是可执行文件目录,主要分为.bat结尾的和.sh结尾的文件。这些文件名称相同,后缀不同。.bat后缀的是在Windows系统下使用的。.sh后缀的是在Linux系统下使用的。以下列举出部分sh脚本用途:

  • catalina.sh:最重要的脚本,包含了开启、关闭、重启、测试配置显示版本等重要功能
  • ciphers.sh:显示所支持的加密算法,调用了tool-wrapper.sh
  • configtest.sh:测试server.xml是否有毛病,就是调用的catalina.sh configtest
  • daemon.sh:可以用守护模式启动tomcat,上线部署的时候用这个比较好,里面还可以设置tomcat运行用户,把这个文件拷贝到/etc/init.d/还可以使用service命令来管理
  • digest.sh:摘要算法,可以调用md5.tomcat-users.xml中填写的密码就可以用这个sh生成出来
  • setclasspath.sh:设置环境变量的,catalina.sh中进行了调用
  • shutdown.sh:关闭服务脚本,其实就是调用了catalina.sh stop
  • startup.sh:开启服务脚本,其实就是调用了catalina.sh start
  • tool-wrapper.sh:调各种java程序的一个命令接口
  • version.sh:输出版本信息

3.2 logs目录

logs目录下面有很多日志,具体内容如下:

  • catalina.out:tomcat的标准输出(stdout)和标准出错(stderr),这是在tomcat的启动脚本里指定的,如果没有修改的话stdout和stderr会重定向到这里。
  • cataliana.{yyyy-MM-dd}.log:这个跟catalina.out里面的内容一模一样,只不过是按日期分的。
  • localhost.{yyyy-MM-dd}.log:主要是应用初始化(listener, filter, servlet)未处理的异常最后被tomcat捕获而输出的日志。要是部署应用起不来应该赶紧看看这个。
  • localhost_access_log.{yyyy-MM-dd}.txt:网站的被访问记录,跟apache2的access_log一样

3.3 conf目录

conf目录下主要保存着tomcat的配置文件,具体内容如下:

  • server.xml:用于设置端口号、设置域名或IP、默认加载的项目、请求编码
  • web.xml:用于设置tomcat支持的文件类型
  • context.xml:可以用来配置数据源之类的
  • tomcat-users.xml:用来配置管理tomcat的用户与权限
  • logging.properties:日志的配置文件

4.Tomcat虚拟目录

Tomcat添加虚拟目录的方法主要有以下三种:

  • 1.在server.xml文件的host元素中添加Context元素(官方建议不要使用这种方法,因为每次都要重启服务)
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->
        <Context path="/testTomcat" docBase="/tmp/testtomcat" />
        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

      </Host>

  • 2.把目录放在webapps目录下

tomcat服务器webapps目录中的web应用,外界可以直接访问。使用方法如下图所示:

  • 3.在conf/[enginename]/[hostname]/下新建一个xml文件,并添加如下代码即可(xml文件名为虚拟目录名称)
<Context docBase="/tmp/testtomcat3" />

:这种方法也不需要重启服务!

5.将Java web应用打包成war包

war(Web Application Archive),当Tomcat服务器启动时,就会自动将webapps目录下的war包解压。打包的命令如下:

jar -cvf testTomcatVirDir2.war testTomcatVirDir2