tomcat 目录
安装好 Tomcat 后,打开它的文件夹,可以看到以下目录
bin:存放各种启动、关闭和其它程序的脚本
conf:配置文件及相关数据文件存放的目录
lib:Tomcat 使用的库文件存放的目录,如存放 Servlet 规范的 API
logs:默认日志文件存放的目录,如存放访问日志
temp:临时文件的工作目录,如上传大文件时的缓存数据会存储在这里
webapps:存放 web 应用、用来程序部署的目录
work:Tomcat 的工作目录,如存放 JSP 编译后的类文件
配置文件
catalina.policy:java 的安全策略配置文件,用于配置访问 codebase(代码库)或某些 Java 类的权限
catalina.properties:Java 属性定义文件,设定类加载器路径、安全包列表和一些调整性能的参数信息
context.xml:为部署与此 Tomcat 实例上的 web 应用程序提供的默认配置文件
logging.properties:定义日志相关的配置信息,如日志级别、文件路径等
server.xml:Tomcat 核心配置文件
tomcat-users.xml:包含 Realm 认证时用到的相关角色、用户和密码等信息
web.xml:为部署与 Tomcat 实例上的所有 web 应用程序提供部署描述符
server.xml 详解
Server是server.xml的根元素,用于创建一个Server实例,默认使用的实现类是 org.apache.catalina.core.StandardServer
标签属性和子元素
port:Tomcat 监听的关闭服务器的端口。
shutdown:关闭服务器的指令字符串。
Server内嵌的子元素为 Listener、GlobalNamingResources、Service。
Listener
VersionLoggerListener:用于以日志形式输出服务器 、操作系统、JVM的版本信息
AprLifecycleListener:用于加载(服务器启动) 和 销毁 (服务器停止) APR。 如果找不到APR库, 则会输出日志, 并不影响Tomcat启动
JreMemoryLeakPreventionListener:用于避免JRE内存泄漏问题
GlobalResourcesLifecycleListener:用户加载(服务器启动) 和 销毁(服务器停止) 全局命名服务
ThreadLocalLeakPreventionListener:用于在Context停止时重建Executor 池中的线程, 以避免ThreadLocal 相关的内存泄漏
GlobalNamingResources
可编辑的用户数据库,UserDatabaseRealm也可以使用该数据库对用户进行身份验证
Service
默认情况下,Tomcat 仅指定了Service 的名称, 值为 “Catalina”。Service 可以内嵌的元素为 : Listener、Executor、Connector、Engine,其中 : Listener 用于为Service添加生命周期监听器, Executor 用于配置Service 共享线程池,Connector 用于配置Service 包含的链接器, Engine 用于配置Service中链接器对应的Servlet 容器引擎。一个Server服务器,可以包含多个Service服务
tomcat-users.xml 详解
该配置文件中,主要配置的是Tomcat的用户,角色等信息,用来控制Tomcat中 host-manager、manager的访问权限
tomcat:用于控制页面访问权限。
roles1:用于控制以简单文本的形式进行访问
web.xml 详解
web.xml 是web应用的描述文件, 它支持的元素及属性来自于Servlet 规范定义
ServletContext初始化参数
<context‐param>
<param‐name>contextConfigLocation</param‐name>
<param‐value>classpath:applicationContext‐*.xml</param‐value>
<description>Spring Config File Location</description>
</context‐param>
- param‐name:初始化参数名称。
- param‐value:初始化参数的值。
- description:这个参数的描述信息
会话配置
用于配置Web应用会话,包括 超时时间、Cookie配置以及会话追踪模式。它将覆盖server.xml 和 context.xml 中的配置
<session-config>
<session-timeout>30</session‐timeout>
<cookie-config>
<name>JESSIONID</name>
<domain>www.baidu.***</domain>
<path>/</path>
<***ment>Session Cookie</***ment>
<http-only>true</http‐only>
<secure>false</secure>
<max-age>3600</max‐age>
</cookie‐config>
<tracking-mode>COOKIE</tracking‐mode>
</session‐config>
Servlet配置
<servlet>
<servlet-name>myServlet</servlet‐name>
<servlet-class>***.caochenlei.MyServlet</servlet‐class>
<init-param>
<param-name>fileName</param‐name>
<param-value>init.conf</param‐value>
</init‐param>
<load-on-startup>1</load‐on‐startup>
<enabled>true</enabled>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet‐name>
<url-pattern>*.do</url‐pattern>
<url-pattern>/myservet/*</url‐pattern>
</servlet‐mapping>
Listener配置
Listener用于监听servlet中的事件
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener‐class>
</listener>
Filter配置
filter 用于配置web应用过滤器, 用来过滤资源请求及响应。 经常用于认证、日志、加密、数据转换等操作
<filter>
<filter-name>myFilter</filter‐name>
<filter-class>***.caochenlei.MyFilter</filter‐class>
<async-supported>true</async‐supported>
<init-param>
<param-name>language</param‐name>
<param-value>***</param‐value>
</init‐param>
</filter>
<filter-mapping>
<filter-name>myFilter</filter‐name>
<url-pattern>/*</url‐pattern>
</filter‐mapping>