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.cn</domain><path>/</path><comment>Session Cookie</comment><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>com.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>com.caochenlei.MyFilter</filter‐class><async-supported>true</async‐supported><init-param><param-name>language</param‐name><param-value>CN</param‐value></init‐param>
</filter>
<filter-mapping><filter-name>myFilter</filter‐name><url-pattern>/*</url‐pattern>
</filter‐mapping>