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

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

143次阅读
没有评论

共计 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、短信等云产品特惠热卖中