阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Tomcat目录结构以及配置文件说明

507次阅读
没有评论

共计 6974 个字符,预计需要花费 18 分钟才能阅读完成。

Tomcat 目录结构以及配置文件说明

安装包
tar.gz 文件时 Linux 操作系统下的安装版本
exe 文件时 Windows 系统下的安装版本
zip 文件是 Windows 系统下的压缩版本
TOMCAT 的目录结构
/bin:存放 windows 或 Linux 平台上启动和关闭 Tomcat 的脚本文件
/conf:存放 Tomcat 服务器的各种全局配置文件,其中最重要的是 server.xml 和 web.xml
/doc:存放 Tomcat 文档
/server:包含三个子目录:classes、lib 和 webapps
/server/lib:存放 Tomcat 服务器所需的各种 JAR 文件
/server/webapps:存放 Tomcat 自带的两个 WEB 应用 admin 应用和 manager 应用
/common/lib:存放 Tomcat 服务器以及所有 web 应用都可以访问的 jar 文件
/shared/lib:存放所有 web 应用都可以访问的 jar 文件(但是不能被 Tomcat 服务器访问)
/logs:存放 Tomcat 执行时的日志文件
/src:存放 Tomcat 的源代码
/webapps:Tomcat 的主要 Web 发布目录,默认情况下把 Web 应用文件放于此目录
/work:存放 JSP 编译后产生的 class 文件
WEB 应用的目录结构:假设在 $CATALINA_HOME/webapps 下有 helloapp 的 web 应用
/helloapp:Web 应用的根目录,所有的 jsp 文件和 html 文件都在此目录下
/helloapp/WEB_INF:存放该 web 应用发布时的描述文件 web.xml
/helloapp/WEB_INF/class:存放各种 class 文件,Servlet 文件也存放于此目录下
/helloapp/WEB_INF/lib:存放各钟 Web 应用所需要的 jar 文件。比如可以存放 JDBC 驱动程序的 JAR 文件
Tomcat 加载类和资源的顺序为(以 helloapp 应用为例)
helloapp(/webapps/helloapp/Web-INF/ 下的 classes,lib 子目录中.calss 及.jar,仅 helloapp 可以加载)
Bootstrap($JAVA_HOME/jre/lib/ext/*.jar
System($CLASSPATH/*.class 和 CLASSPATH 中指定的 jar)
Common($CATALINA_HOME/common/下的 classes,lib,endores 子目录中 .class 及.jar)
Catalina($CATALINA_HOME/server/ 下的 classes,lib 子目录中 .calss 及.jar,仅 Tomcat 可以加载)
Shared($CATALINA_HOME/shared/ 下的 classes,lib 子目录中 .calss 及.jar,仅所有 Web 应用可以加载)
$CATALINA_HOME/conf/server.xml 配置简介
<Server>
元素属性 port:指定一个端口,这个端口负责监听关闭 tomcat 的请求 shutdown:指定向端口发送的命令字符串,通常是“SHUTDOWN”
<Service>
元素属性 name:指定 service 的名字,通常是”Catalina”
<Connector/>
元素属性(表示客户端和 service 之间的连接):port:指定服务器端要创建的端口号,并使用这个断口监听来自客户端的请求 minProcessors(考察是否有此属性):服务器端启动时创建的处理请求的线程数 maxProcessors(考察是否有此属性):最大可以创建的处理请求的线程数 maxThreads:服务器创建的最大线程数 minSpareThreads:最小剩余线程数 maxSpareThreads:最大剩余线程数 enableLookups:如果为 true,则可以通过调用 request.getRemoteHost()进行 DNS 查询来得到远程客户端的实际主机名,若为 false 则不进行 DNS 查询,而是返回其 IP 地址 redirectPort:指定当服务器正在处理 HTTP 请求时收到了一个 SSL 传输请求后重定向的端口号 acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过的请求将不予处理 connectionTimeout:指定超时的时间数(以毫秒为单位)disableUploadTimeout:不明 debug:不明 protocol:不明
<Engine>
元素属性(指定 service 中的请求处理主机,接收和处理来自 Connector 的请求)name:指定 Engine 的名字,通常是”Catalina”defaultHost:指定默认的处理请求的主机名,至少与某个 host 元素的 name 属性值是相同的
<Context/>
元素属性(表示一个 web 应用程序)docBase:指定此 Web 应用的绝对或相对路径,也可以为 WAR 文件的路径 path:表示此 Web 应用程序的 url 的入口,如为“/hello“,则请求的 URL 为 http://localhost:8080/hello/reloadable:如果为 true,则 Tomcat 在运行时会自动监视 Web 应用的 /WEB-INF/lib 和 /WEB-INF/classes 下文件的改动,自动装载新应用,使我们可以在不重启 Tomcat 的情况下更新 Web 应用
<Host>
元素属性(表示一个虚拟主机)name:指定虚拟主机名字 debug:指定日志级别 appBase:存放 Web 应用程序的基本目录,可以是绝对路径或相对于 $CATALINA_HOME 的目录,默认是 $CATALINA_HOME/webappsunpackWARs:如果为 true,则 tomcat 会自动将 WAR 文件解压后运行,否则不解压而直接从 WAR 文件中运行应用程序 autoDeploy:如果为 true,表示 Tomcat 启动时会自动发布 appBase 目录下所有的 Web 应用(包括新加入的 Web 应用)deployOnStarup:如果此项为 true,表示 Tomcat 服务器启动时会自动发布 appBase 目录下所有 Web 应用。如果 Web 应用在 server.xml 中没有相应的元素, 则将采用默认的 Context 配置。deployOnStarup 的默认设置是 truealias:指定虚拟主机的别名,可以指定多个别名 xmlValidation:不明 xmlNamespaceAware:不明
<Logger/>
元素属性(表示日志,调试和错误信息)className:指定 logger 使用的类名,此类必须实现 org.apache.catalina.Logger 接口 prefix:指定 log 文件名的前缀(文件名)suffix:指定 log 文件名的后缀(扩展名)timestamp:如果为 true,则 log 文件名中会加入日期时间,如下例:localhost_log.2006-10-04.txtdirectory:指定 log 文件存放的目录
<Realm/>
元素属性(表示存放用户名,密码及 role 的数据库)className:指定 Realm 使用的类名,此类必须实现 org.apache.catalina.Realm 接口 resourceName:不明
<Valve/>
元素属性(功能与 Logger 相似,其 prefix 和 suffix 属性解释和 Logger 中的一样)className:指定 Valve 使用的类名,如用 org.apache.catalina.valves.AccessLogValve 类可以记录应用程序的访问信息 directory:指定 log 文件存放的位置 pattern:有两个值,common 方式记录远程主机名或 ip 地址、用户名、日期、第一行请求的字符串、HTTP 响应代码、发送的字节数。combined 方式比 common 方式记录的值还多
$CATALINA_HOME/conf/web.xml 配置简介
默认 Web 应用的首页文件的设置

<welcome-file-list>
       <welcome-file>index.html</welcome-file>
       <welcome-file>index.htm</welcome-file>
       <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

报错文件的设置
a. 如果某文件资源没有找到,服务器要报 404 错误,按下述配置则会调用\webapps\ROOT\notFileFound.jsp

<error-page>
       <error-code>404</error-code>
       <location>/notFileFound.jsp</location>
</error-page>

b. 如果执行的某个 JSP 文件产生 NullPointException,则会调用 \webapps\ROOT\null.jsp

<error-page>
        <exception-type>java.lang.NullPointerException</exception-type>
        <location>/null.jsp</location>
</error-page>

session 会话过期时间的设置, 单位是分钟

<session-config>       
       <session-timeout>30</session-timeout> 
</session-config>

servlet 的设置

<servlet>
     <servlet-name>default</servlet-name>
     <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
     <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
      </init-param>
      <init-param>
            <param-name>listings</param-name>
            <param-value>true</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
  </servlet>

说明::定义 Servlet 的名字。:指定实现这个 Servlet 的类。:定义 Servlet 的初始化参数(包括参数名和参数值),一个 元素中可以有多个元素。:指定当 Web 应用启动时,装载 Servlet 的次序。当这个值为正数或零,Servlet 容器先加载数值小的 Servlet,再一次加载其他数值大的 Servlet。如果这个值为负数或没有设定,Servlet 将在 Web 客户首次访问这个 Servlet 时加载它。
filter 过滤器的设置

<filter>
       <filter-name>FilterSource</filter-name>
       <filter-class>project4. FilterSource </filter-class>
</filter>
<filter-mapping>
       <filter-name>FilterSource</filter-name>
       <url-pattern>/WwwServlet</url-pattern>
      (<url-pattern>/haha/*</url-pattern>)
</filter-mapping>

过滤:1) 身份验证的过滤 Authentication Filters2) 日志和审核的过滤 Logging and Auditing Filters3) 图片转化的过滤 Image conversion Filters4) 数据压缩的过滤 Data compression Filters5) 加密过滤 Encryption Filters6) Tokenizing Filters7) 资源访问事件触发的过滤 Filters that trigger resource access events XSL/T 过滤 XSL/T filters9) 内容类型的过滤 Mime-type chain Filter 注意监听器的顺序,如:先安全过滤,然后资源,然后内容类型等,顺序可以自己定。
Tomcat 管理
管理员帐户配置 ($CATALINA_HOME/conf/tomcat-users.xml) 在 tomcat-users.xml 文件相应的位置添加一行:<user name="user" password="user" roles="standard,manager"/>用来添加一个管理员帐户。然后重起 tomcat,在浏览器中输入地址 http://localhost:8080/manager/,在弹出的对话框输入上面的用户名和密码即可
Web 应用列表在浏览器中输入http://localhost:8080/manager/list,浏览器将会列出目前存在的所有 Web 应用的信息,分别为:Web 应用程序的路径、当前状态、连接这个 Web 应用的 Session 数目
重新装载 Web 应用程序在浏览器中输入 http://localhost:8080/manager/reload?path=/examples,浏览器显示如下:OK – Reloaded application at context path /examples,这表示 example 应用程序装载成功,如果我们将 server.xml 的 Context 元素的 reloadable 属性设为 true,则没必要利用这种方式重新装载 Web 应用程序,因为 tomcat 会自动装载。
显示 Session 信息在浏览器中输入 http://localhost:8080/manager/sessions?path=/examples,浏览器显示如下:OK – Session information for application at context path /examples Default maximum session inactive interval 30 minutes
启动和关闭应用程序在浏览器中输入 http://localhost:8080/manager/start?path=/examplehttp://localhost:8080/manager/stop?path=/examples分别启动和关闭 examples 应用程序。
部署及撤销部署 WAR 有两种组织方式,一种是按一定的目录结构组织文件,一种是一个后缀为 WAR 的压缩包,因此它的部署方式也有两种:a. 在浏览器中输入:http://localhost:8080/manager/install?path=/examples&war=file:/c:\examples,就会将按目录结构组织的 WAR 部署 b. 在浏览器中输入:http://localhost:8080/manager/install?path=/examples&war=jar:file:/c:\examples.war!/,就会将按压缩包组织的 WAR 部署,注意此 url 后半部分一定要有!/ 号部署后就可以用:http://localhost:8080/examples访问了在浏览器中输入:http://localhost:8080/manager/remove?path=/examples,就会撤销刚才部署的应用程序

更多 Tomcat 相关教程见以下内容

CentOS 6.6 下安装配置 Tomcat 环境  http://www.linuxidc.com/Linux/2015-08/122234.htm

RedHat Linux 5.5 安装 JDK+Tomcat 并部署 Java 项目  http://www.linuxidc.com/Linux/2015-02/113528.htm 

Tomcat 权威指南(第二版)(中英高清 PDF 版 + 带书签)  http://www.linuxidc.com/Linux/2015-02/113062.htm 

Tomcat 安全配置与性能优化 http://www.linuxidc.com/Linux/2015-02/113060.htm 

Linux 下使用 Xshell 查看 Tomcat 实时日志中文乱码解决方案 http://www.linuxidc.com/Linux/2015-01/112395.htm 

CentOS 64-bit 下安装 JDK 和 Tomcat 并设置 Tomcat 开机启动操作步骤 http://www.linuxidc.com/Linux/2015-01/111485.htm 

CentOS 6.5 下安装 Tomcat  http://www.linuxidc.com/Linux/2015-01/111415.htm 

Tomcat 中 session 的管理机制  http://www.linuxidc.com/Linux/2016-09/135072.htm

Tomcat 的详细介绍:请点这里
Tomcat 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-10/135783.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计6974字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7974931
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛 NAS-5:飞牛 NAS 中的 Docker 功能介绍 大家好,我是星哥,今天给大家带来如何在...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示 首先来回顾一下 10...
在Windows系统中通过VMware安装苹果macOS15

在Windows系统中通过VMware安装苹果macOS15

在 Windows 系统中通过 VMware 安装苹果 macOS15 许多开发者和爱好者希望在 Window...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...