Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统并发访问用户不是很多的场合下被普遍使用。

tomcat的文件结构:

tomcat相关知识点_xml

 

bin:用于存放启动和关闭tomcat的可执行文件。
lib:里面存放需要的jar包。
conf:tomcat的各种配置文件,tomcat启动时需要读取的配置文件主要有:server.xml,web.xml,tomcat-users.xml等等。服务器的修改都要从此目录中进行。
logs:日志文件,如果服务器出现错误,会自动记录。
server:服务器的管理程序。
webapps:所有的可执行的web项目都会放到此目录中。
work:tomcat把各种由jsp生成的servlet都放在了这个文件夹下,里面包含.java文件和.class文件。

 Tomcat 的配置文件由4个 xml 文件构成,context.xml、web.xml、server.xml、tomcat-users.xml 这4个文件。每个文件都有自己的功能与配置方法

Context.xml 是 Tomcat 公用的环境配置,tomcat 服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器。

server.xml 是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载,而context.xml 文件则不然。

下面是context.xml文件的配置:(其他博客copy,本地打开没有这些,自己没弄过)

<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>

 

context.xml的三个作用范围

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应用中自己添加的,配置和其它一样。

<context> 标签是使用,

二、web.xml文件

Web应用程序描述文件,都是关于是Web应用程序的配置文件。所有Web应用的 web.xml 文件的父文件。

<web-app >
<filter></filter>
<filter-mapping></filter-mapping>
<servlet></servlet>
<servlet-mapping></servlet-mapping>
<session-config></session-config>
<mime-mapping></mime-mapping>
<welcome-file-list></welcome-file-list>
</web-app >

 

<!-- 
filter 配置Servlet过滤器
filter-name 定义过滤器的名字。当有多个过滤器时,不能同名
filter-class 指定实现这一过滤的类,这个类负责具体的过滤事务
-->
<filter>
<filter-name>SampleFilter</filter-name>
<filter-class>mypack.SampleFilter</filter-class>
</filter>

<!--
filter-mapping 设定过滤器负责过滤的URL
filter-name 过滤器名。这里的名字一定要和filter中的过滤器名匹配
url-pattern 指定过滤器负责过滤的URL
-->
<filter-mapping>
<filter-name>SampleFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>

<!--
servlet 配置Servlet.
servlet-name 定义Servlet的名字
servlet-class 指定实现这个servlet的类
init-param 定义Servlet的初始化参数和参数值,可有多个init-param。在servlet类中通过getInitParamenter(String name)方法访问初始化参数
load-on-startup 指定当Web应用启动时,装载Servlet的次序。
当值为正数或零时:Servlet容器先加载数值小的servlet,再依次加载其他数值大的servlet.
当值为负或未定义:Servlet容器将在Web客户首次访问这个servlet时加载它
-->
<servlet>
<servlet-name>SampleServlet</servlet-name>
<servlet-class>mypack.SampleServlet</servlet-class>
<init-param>
<param-name>initParam1</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<!--
配置servlet映射(下面代码为SampleServlet指定的相对URL为"/sample":
servlet-name 指定servlet的名字,这里的名字应该和<Servlet>元素中定义的名字匹配。
url-pattern 指定访问这个servlet的URL。只需给出相对路径。
-->
<servlet-mapping>
<servlet-name>SampleServlet</servlet-name>
<url-pattern>/sample</url-pattern>
</servlet-mapping>

<!--配置session session用来设定HttpSession的生命周期。单位(秒)-->
<session-config>
<session-timeout>30</session-timeout>
</session-config>

<!--配置Welcome文件清单-->
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>

 三、server.xml文件

server.xml是对tomcat的设置,可以设置端口号,添加虚拟机这些的,是对服务器的设置

下面则是server.xml配置文件的详解:

<Server port="8005"="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.security.SecurityListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener"="on" />
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
10 <!--11 12 13 14 15 16 17 -->
18 <Service name="Catalina">
19 <!--20 21 -->
22 <Connector port="8009"="AJP/1.3"="8443" />
23 <Engine name="Catalina"="test.com">
24 <!---->
25 <Realm className="org.apache.catalina.realm.LockOutRealm">
26 <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
27 ="UserDatabase"/>
28 </Realm>
29 30 <Host name="test.com"="/web"="true"="true">
31 <!---->
32 <Alias>www.test.com</Alias>
33 <!---->
34 <Context path=""="www/"="true" />
35 <!---->
36 <Context path="/bbs"="/web/bbs"="true" />
37 <!---->
38 <Valve className="org.apache.catalina.valves.AccessLogValve"="/web/www/logs"
39 ="www_access."=".log"
40 ="%h %l %u %t "%r" %s %b" />
41 <!---->
42 </Host>
43 <Host name="manager.test.com"="webapps"="true"="true">
44 <!---->
45 <Valve className="org.apache.catalina.valves.RemoteAddrValve"="172.16.100.*" />
46 <!---->
47 <Valve className="org.apache.catalina.valves.AccessLogValve"="/web/bbs/logs"
48 ="bbs_access."=".log"
49