Tomcat简介及其配置文件解析

简介
Apache软件基金会(也就是Apache Software Foundation,简称为ASF),是专门为支持开源软件项目而办的一个非盈利性组织。Tomcat是Apache 软件基金会的Jakarta 项目(开放源代码开发项目)中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。
Tomcat并不支持全部的j2ee规范,只支持jsp和servlet规范。Tomcat属于轻量级应用服务器,兼具web服务器的功能,但在处理静态资源的能力上没用web服务器那么优秀。Tomcat适用于并发量不是很大的中小型系统。

tomcat目录层次结构
bin: 存放启动和关闭tomcat的脚本文件
conf: 存放tomcat服务器的各种配置文件
lib: 存放tomcat服务器的支撑jar包
logs: 存放tomcat的日志文件
temp: 存放tomcat运行时产生的临时文件
webapps: web应用所在目录,即供外界访问的web资源的存放目录
work:tomcat的工作目录

Tomcat配置文件
Tomcat 的配置文件由server.xml、context.xml、tomcat-users.xml 、web.xml这4个xml文件组成。每个文件都有自己的功能与配置方法。web.xml是对部署在tomcat上的web应用的配置,其他三个均是对tomcat服务器本身的配置。

一:server.xml文件
该配置文件用于配置tomcat的服务,设置服务器的端口号,添加虚拟机等。
server.xml的一个Service节点代表在Tomcat上的一个服务,可以配置多个Service,为每个Service配置不同的端口,让Tomcat实现不同的端口提供不同的服务。
一般情况下我们并不需要配置多个Service,server.xml默认配置了一个“Catalina”的Service,默认使用8080端口。

<Service name="Catalina"> 
	  <!-- 使用8080端口接收http请求,设置超时时间为20s,8443端口接收https请求 -->  
	  <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>  
	  <!-- 8009端口接收其他服务器转发过来的请求 -->  
	  <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/> 
	   
	  <Engine name="Catalina" defaultHost="localhost" jvmRoute="tcl_srm_jvm1"> 
	  
	    <Realm className="org.apache.catalina.realm.LockOutRealm"> 
	      <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> 
	    </Realm>  
	    
	    <!--  定义一个主机,域名为:locaohost,应用程序的目录是/webapps,设置自动部署,自动解压-->  
	    <Host name="locaohost" appBase="/webapps" unpackWARs="true" autoDeploy="true"> 
	      <!--虚拟目录的映射,设置当前web应用的web.xml或者类等有相关变化时,自动重载当前配置,不用重启tomcat-->  
	      <!--访问路径为:localhost:8080/huiye-->  
	      <Context path="huiye" docBase="D:/huiye" reloadable="true"/>  
	      <!-- 定义Valve组件记录tomcat的访问日志,日志存放目录为:/huiye/logs-->  
	      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/huiye/logs" prefix="www_access." suffix=".log" pattern="%h %l %u %t &quot;%r&quot; %s %b"/> 
	    </Host> 
	    
	  </Engine> 
</Service>

二:context.xml 文件
Context.xml 实际上是对上面server.xml中的Service节点下的Context元素的配置,根据文件所在的路径和文件名称确定作用范围。tomcat 服务器会定时去扫描这个文件。一旦发现文件被修改,就会自动重新加载这个文件,而不需要重启服务器。对context元素的配置推荐在context.xml 中进行独立的配置。因为 server.xml 是不可动态重加载的资源,修改该文件之后需重启服务器。

context.xml的三个作用级别

  1. tomcat server 级别:
    在/conf/context.xml 里配置,如果在该文件中配置,那么这个配置文件将会被所有的webapp共享
  2. Host 级别:
    在 conf/{ServiceName}/{hostName} 里添加 context.xml进行配置,这个配置将会被server.xml配置中name为{ServiceName}的Service节点下的name为{hostName}的host节点下的webapp共享。
    即会被如下路径下的webapp共享
<Service name="{ServiceName}/"> 
  <Engine name="Catalina" defaultHost="{hostName}" jvmRoute="tcl_srm_jvm1"> 
    <Host name="{hostName} " appBase="webapps" unpackWARs="true" autoDeploy="true"> 
      <Context path="/" reloadable="false" docBase="D:/aaa"/>
      <Context path="/" reloadable="false" docBase="D:/bbb"/>  
    </Host> 
  </Engine> 
</Service>
  1. web app 级别:
    在 /conf/{ServiceName}/{hostName} 里添加 {webAppName}.xml进行配置。这个配置只会对名称为webAppName的webapp生效(针对单个webapp的context需要指定path,docBase等元素的值)
  <Context path="/eml" docBase="eml" debug="0" reloadbale="true" privileged="true">  
       <!--监控资源文件的默认设置,若配置的文件改变了,则自动重新加载改应用-->     
      <WatchedResource>WEB-INF/web.xml</WatchedResource>       
      <WatchedResource>WEB-INF/eml.xml</WatchedResource> 
       <!--配置全局JNDI数据源--> 
      <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>

三:tomcat-users.xml
当使用Tomcat的Webapps目录对Web应用进行管理时,无法控制单个Web应用的启动与停止, 为此,Tomcat提供了一个管理平台,该平台列出了所有的Web应用及其状态,并且,提供了控制每个Web应用的启动、停止与卸载的功能。使用该平台还可以实现远程向webapps目录下上传war包。

配置
在conf目录的tomcat-user.xml文件中,可以对服务器管理帐户进行设置,在管理帐户中身份必须加入管理员manager身份才能登录进入平台

 <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager"/>
  <user username="tomcat" password="<must-be-changed>" roles="tomcat,manager"/>
  <user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
  <user username="role1" password="<must-be-changed>" roles="role1"/>

进入管理平台
在浏览器的地址栏中输入
http://localhost:8080/
打开Tomcat首页,单击,Tomcat首页左侧的Manager App链接进入Tomcat管理平台

四:web.xml文件
web.xml文件是web应用最重要的配置文件,它必须放在WEB-INF目录中,在开发web应用时,但凡涉及到 对web应用中的web资源进行配置,通通是在web.xml文件中进行设置,例如:
将某个web资源配置为网站首页
将servlet程序映射到某个url地址上
为web应用配置监听器
为web应用配置过滤器
…………
目录结构

<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-file-list> 
 <welcome-file>login.jsp</welcome-file> 
 <welcome-file>index.htm</welcome-file> 
 </welcome-file-list>

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值