一:目录介绍
目录名字 | 目录说明 |
---|---|
bin | 可执行文件 |
conf | 配置文件 |
lib | tomcat依赖的jar文件 |
logs | 日志文件 |
temp | 临时文件 |
webapps | 可执行的项目(将我们的开发的项目放入该目录) |
work | 存放由jsp翻译成的java以及class文件 |
others | 其他说明 |
二:重要配置文件介绍
- serve.xml
<!-- 连接器”表示接收请求的端点,并返回响应.
Documentation at :
Java HTTP Connector: /docs/config/http.html
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
-->
<Connector connectionTimeout="20000" port="8888" protocol="HTTP/1.1" redirectPort="8443"/>
<!-- 属性说明
port:服务器连接器的端口号,该连接器将在指定端口侦听来自客户端的请求。
enableLookups:如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名;
若为false则不进行DNS查询,而是返回其ip地址。
redirectPort:服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号。
acceptCount:当所有可以使用的处理请求的线程都被用光时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,而返回Connection refused错误。
connectionTimeout:等待超时的时间数(以毫秒为单位)。
maxThreads:设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数目.默认值为200。
protocol:必须设定为AJP/1.3协议。
address:如果服务器有两个以上IP地址,该属性可以设定端口监听的IP地址,默认情况下,端口会监听服务器上所有IP地址。
minProcessors:服务器启动时创建的处理请求的线程数,每个请求由一个线程负责。
maxProcessors:最多可以创建的处理请求的线程数。
minSpareThreads:最小备用线程 。
maxSpareThreads:最大备用线程。
debug:日志等级。
disableUploadTimeout:禁用上传超时,主要用于大数据上传时。
-->
<!--
host ( 表示一个虚拟主机 ):指定主机名
appBase:应用程序基本目录,即存放应用程序的目录
autoDeploy:如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用
unpackWARs:果此项设置为true,表示把WEB应用的WAR文件先展开为开放目录结构后再运行.如果设为false将直接运行为WAR文件
alias:指定主机别名,可以指定多个别名
deployOnStartup:如果此项设为true,表示Tomcat服务器启动时会自动发布appBase目录下所有的Web应用.如果Web应用中的server.xml没有相应的<Context>元素,将采用Tomcat默认的Context
-->
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<!--
Valve(功能与Logger差不多,其prefix和suffix属性解释和Logger 中的一样)
className:指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve类可以记录应用程序的访问信息
directory:指定log文件存放的位置
pattern:有两个值,common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。combined方式比common方式记录的值更多
-->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"/>
<Context docBase="ROOT" path="/Test" reloadable="true" source="org.eclipse.jst.jee.server:Test"/>
<!--
它由Context接口定义.是使用最频繁的元素.每个<Context元素代表了运行在虚拟主机上的单个Web应用.
一个<Host>可以包含多个<Context>元素.每个web应用有唯一的一个相对应的Context代表web应用自身.servlet容器为第一个web应用创建一个
1.className指定实现Context的类,默认为StandardContext类
2.path指定访问Web应用的URL入口,docBase:为应用程序的路径或WAR文件存放的路径,可以是绝对路径,也可是相对路径,相对路径是相对于<Host >
3.reloadable如果这个属性设为true, Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录CLASS文件的改运.如果监视到有class文件被更新,服务器自重新加载Web应用
4.cookies指定是否通过Cookies来支持Session,默认值为true
5.useNaming指定是否支持JNDI,默认值为了true
-->
</Host>
- web.xml
<!--欢迎页配置-->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.action</welcome-file>
</welcome-file-list>
<!--在整个web容器设置初始化参数-->
<context-param>
<param-name>xx</param-name>
<param-value>xx</param-value>
</context-param>
<!--2.5版本的servlet配置
执行顺序servlet-mapping的url-pattern->servlet-named到servlet的servlet-name->servlet-class
通过servlet-name链接
-->
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>myServlet</servlet-class>
<!--
当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;
当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。
正数的值越小,启动该servlet的优先级越高。
!-->
<load-on-startup>1</load-on-startup>
<!--在某一个servlet设置参数-->
<init-param>
<param-name>param1</param-name>
<param-value>value</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/myServlet</url-pattern>
</servlet-mapping>
<filter>
<!--过滤器名称 -->
<filter-name>loginFilter</filter-name>
<!--过滤器类的包路径-->
<filter-class>com.ygj.control.loginFilter</filter-class>
<!--可选-->
<init—param>
<!--过滤器初始化参数-->
<param—name>参数名</param-name>
<param-value>参数值</param-value>
</init—pamm>
</filter>
<!--过滤器映射,如果有多个可写多个-->
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url—pattern>指定过滤器作用的对象</url-pattern>
<!--
REQUEST:
当用户直接访问页面时,Web容器将会调用过滤器。如果目标资源是通过RequestDispatcher的include()或forward()方法访问或ERROR情况时,那么该过滤器就不会被调用。
INCLUDE:
如果目标资源是通过RequestDispatcher的include()方法访问时,那么该过滤器将被调用。除此之外,该过滤器不会被调用。
FORWARD:
如果目标资源是通过RequestDispatcher的forward()方法访问时,那么该过滤器将被调用,除此之外,该过滤器不会被调用。
ERROR:
如若在A.jsp页面page指令中指定了error属性=examError.jsp,那么A.jsp中若出现了异常,会跳转到examError.jsp中处理。而在跳转到examError.jsp时,若过滤器配置了ERROR的dispather那么则会拦截,否则不会拦截。
-->
<!-- 没有配置dispatcher就是默认request方式的 -->
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<listener>
<!--类的位置-->
<listener-class>com.TianTian.atrribute.MyServletContextAttributeListener</listener-class>
</listener>
- context.xml
<Context path="/eml" docBase="eml" debug="0" reloadbale="true" privileged="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>WEB-INF/eml.xml</WatchedResource> #监控资源文件,如果web.xml || eml.xml改变了,则自动重新加载改应用。
<Resource name="jdbc/testSiteds" #表示指定的jndi名称
auth="Container" #表示认证方式,一般为Container
type="javax.sql.DataSource"
maxActive="100" #连接池支持的最大连接数
maxIdle="40" #连接池中最多可空闲maxIdle个连接
maxWait="30000" #连接池中连接用完时,新的请求等待时间,毫秒
username="txl" #表示数据库用户名
password="123456" #表示数据库用户的密码
driverClassName="com.mysql.jdbc.Driver" #表示JDBC DRIVER
url="jdbc:mysql://localhost:3306/testSite" /> #表示数据库URL地址
</Context>
<!--
1. tomcat server 级别:
在$CATALINA_BASE/conf/context.xml 里配置,如果你在这个地方配置、那么这个配置文件将会被所有的webApp共享 。
2. Host 级别:
在 $CATALINA_BASE/conf/Catalina/${hostName} 里添加 context.xml,继而进行配置,这个配置将会被这个主机上的所有webapp共享。
3. web app 级别:
在 $CATALINA_BASE/conf/Catalina/${hostName} 里添加 ${webAppName}.xml,继而进行配置。
此时,path="",webAppName 即为 path属性的值,也就是访问的虚拟目录。
另:tomcat 服务器文件中的 $CATALINA_BASE/webapps 目录下的所有文件夹都是一个应用。
这个时候不需要自己动手配置,服务器默认将文件夹名映射成虚拟目录名称。
还可以通过 $CATALINA_BASE/webapps/{App}/META-INF/context.xml 来配置,
这个是在web应用中自己添加的,配置和其它一样。
-->
- tomcat-users.xml
Tomcat Manager是Tomcat自带的、用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用。Tomcat是Java领域使用最广泛的服务器之一,因此Tomcat Manager也成为了使用非常普遍的功能应用。
在默认情况下,Tomcat Manager是处于禁用状态的。准确地说,Tomcat Manager需要以用户角色进行登录并授权才能使用相应的功能,不过Tomcat并没有配置任何默认的用户,因此需要我们进行相应的用户配置之后才能使用Tomcat Manager。