`

Server.xml <Context/>详解

 
阅读更多
Tomcat中server.xml配置及Context的配置server.xml配置简介        
下面是这个文件中的基本配置信息,更具体的配置信息见tomcat的文档        
server:        
docBase是项目文件夹的web-inf文件夹的上一层目录
workDir是指Tomcat解析Jsp转换为Java文件,并编译为class存放的文件夹,设置 在项目文件夹里面,可以避免移植到其他地方首次读取jsp文件需要重新解析 。一般格式:项目文件夹\work
reloadable是指可以重新加载,一般设置为true,方便使用,不需要经常重启Tomcat。
port     指定一个端口,这个端口负责监听关闭tomcat的请求        
shutdown     指定向端口发送的命令字符串        
service:        
name     指定service的名字        
Connector     (表示客户端和service之间的连接):        
port     指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求        
minProcessors     服务器启动时创建的处理请求的线程数        
maxProcessors     最大可以创建的处理请求的线程数        
enableLookups     如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址        
redirectPort     指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号        
acceptCount     指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理        
connectionTimeout     指定超时的时间数(以毫秒为单位)        
Engine     (表示指定service中的请求处理机,接收和处理来自Connector的请求):        
defaultHost     指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的        
Context     (表示一个web应用程序,通常为WAR文件,关于WAR的具体信息见servlet规范):        
docBase     应用程序的路径或者是WAR文件存放的路径        
path     表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/****        
reloadable     这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib     和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重起tomcat的情况下改变应用程序        
host     (表示一个虚拟主机):        
name     指定主机名        
appBase     应用程序基本目录,即存放应用程序的目录        
unpackWARs     如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序        
Logger     (表示日志,调试和错误信息):        
className     指定logger使用的类名,此类必须实现org.apache.catalina.Logger     接口        
prefix     指定log文件的前缀        
suffix     指定log文件的后缀        
timestamp     如果为true,则log文件名中要加入时间,如下例:localhost_log.2001-10-04.txt        
Realm     (表示存放用户名,密码及role的数据库):        
className     指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口        
Valve     (功能与Logger差不多,其prefix和suffix属性解释和Logger     中的一样):        
className     指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve类可以记录应用程序的访问信息        
directory     指定log文件存放的位置        
pattern     有两个值,common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。combined方式比common方式记录的值更多        
 
注意:        
默认的server.xml中,Realm元素只设置了一个className属性,但此文件中也包含几个通过JDBC连接到数据库进行验证的示例(被注释掉了),通过Realm元素我们可以实现容器安全管理(Container     Managed     Security)。        
 
还有一些元素,如Parameter,loader,你可以通过tomcat的文档获取这些元素的信息。        

----------------------------------------------------------------------
Tomcat中Context的配置
当我们开发完一个Web应用后,我们需要将该应用发布到Web Server中,以便其他用户可以访问。在JAVA的WEB开发领域,我们通常使用TOMCAT作为我们的WEB服务器进行测试或正式部署。

一般我们将WEB应用打包成WAR格式,然后拷贝到TOMCAT的WEBAPP目录下进行发布,在正常情况下,TOMCAT将自动解压WAR文件并生成对应的目录,而且会在内存中动态创建该WEB应用对应的CONTEXT路径。比如我们的WAR文件是Sample.war,那么解压后的目录就是Sample目录,在内存中动态创建的Context路径就是/Sample。在开发阶段这样的默认行为是可以接受的,但是在正式部署的情况下,我们通常需要修改应用的Context路径以适应我们的需要。

如果我们想让用户仅仅输入域名来访问我们的Sample应用,我们就需要修改Tomcat的Context设置。具体如何设置Context路径的方式有两种,一种是修改{TOMCAT_HOME}/conf/server.xml文件,另一种是建立一个Context片段文件放在webapps目录下。我们这里介绍第一种方式。

使用任何文本编辑器打开server.xml文件,在<Host>节点下增加<Context>节点,并设置path,docBase,debug和reloadable属性,如下:
Xml代码
<?xml version="1.0" encoding="UTF-8"?> 
<Server> 
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/> 
  <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/> 
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/> 
  <GlobalNamingResources> 
    <Environment 
      name="simpleValue" 
      type="java.lang.Integer" 
      value="30"/> 
    <Resource 
      auth="Container" 
      description="User database that can be updated and saved" 
      name="UserDatabase" 
      type="org.apache.catalina.UserDatabase" 
      pathname="conf/tomcat-users.xml" 
      factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/> 
  </GlobalNamingResources> 
  <Service 
      name="Catalina"> 
    <Connector 
        port="8080" 
        redirectPort="8443" 
        minSpareThreads="25" 
        connectionTimeout="20000" 
        maxSpareThreads="75" 
        maxThreads="150" 
        maxHttpHeaderSize="8192"> 
    </Connector> 
    <Connector 
        port="8009" 
        redirectPort="8443" 
        protocol="AJP/1.3"> 
    </Connector> 
    <Engine 
        defaultHost="localhost" 
        name="Catalina"> 
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> 
      <Host 
          appBase="webapps" 
          name="localhost"> 
        <Context 
            path="/samples"> 
          <WatchedResource>WEB-INF/web.xml</WatchedResource> 
        </Context> 
        <Context 
            path="/profiler"> 
          <WatchedResource>WEB-INF/web.xml</WatchedResource> 
        </Context> 
        <Context 
            path="/flex"> 
          <WatchedResource>WEB-INF/web.xml</WatchedResource> 
        </Context> 
        <!-- 配置直接通过域名访问/Samples应用 --> 
        <Context path="" docBase="/samples" debug="0" reloadable="true"> 
          
        </Context> 
      </Host> 
    </Engine> 
  </Service> 
</Server> 
分享到:
评论

相关推荐

    Mybatis Generator配置详解.md

    &lt;context id="DB2Tables" targetRuntime="MyBatis3"&gt; &lt;commentGenerator&gt; &lt;property name="suppressDate" value="true"/&gt; &lt;!-- 是否去除自动生成的注释 true:是 : false:否 --&gt; &lt;property name=...

    数据库连接字符串

    &lt;res-ref-name&gt;jdbc/oracle&lt;/res-ref-name&gt; //引用名称,对应context.xml中resource的name值 &lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt; //引用类型 &lt;res-auth&gt;Container&lt;/res-auth&gt; //引用创建者 &lt;/resource-...

    TongWeb主配置文件tongweb.xml概要说明

    TongWeb主配置文件tongweb.xml概要说明,TongWeb常见问题处理,用于运维的问题处理,便于解决应用部署时遇到的各种问题.

    基于tomcat配置文件server.xml详解

    1. 入门示例:虚拟主机提供web服务 该示例通过设置虚拟主机来提供web服务,因为是入门示例,...&lt;Server port=8005 shutdown=SHUTDOWN&gt; &lt;Listener className=org.apache.catalina.startup.VersionLoggerListener&gt; &lt;

    详解Tomcat多域名的配置

    主要在server.xml里面设置: 在&lt;Engine&gt;&lt;/Engine&gt;里面添加两个&lt;Host&gt;&lt;/Host&gt;标签,内容如下: &lt;Host name=www.123.com appBase=/usr/local/tomcat/webapps/123 unpackWARs=true autoDeploy=true&gt; &lt;Context path=...

    详解tomcat热部署和热加载的方法

    详解tomcat热部署和热加载的方法 我在项目开发过程中,经常要改动Java/JSP 文件,但是又不想从新启动服务器...2. 热部署:在server.xml -&gt; context 属性中 设置 autoDeploy=”true” &lt;Context docBase=xxx path=/

    Spring-Reference_zh_CN(Spring中文参考手册)

    9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.6.1. @Transactional 有关的设置 9.5.7. 插入事务操作 9.5.8. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    Tomcat Nginx Redis实现session共享过程图解

    一、准备工作 .../conf/server.xml ​ ​ /conf/context.xml ​ host为Redis的ip地址,port为端口,database为数据库。 Nginx /conf/nginx.conf ​ upstream意为配置服务器列表,本例中开启了两台tomcat,端

    Spring中文帮助文档

    9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用TransactionTemplate 9.6.2. ...

    Spring API

    9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用TransactionTemplate 9.6.2. ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    spring chm文档

    9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 插入事务操作 9.5.8. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用 TransactionTemplate 9.6.2. 使用 ...

    Spring 2.0 开发参考手册

    9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 插入事务操作 9.5.8. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用 TransactionTemplate 9.6.2. 使用 ...

    Maven权威指南 很精典的学习教程,比ANT更好用

    坐标详解 9.5.2. 多模块项目 9.5.3. 项目继承 9.6. POM最佳实践 9.6.1. 依赖归类 9.6.2. 多模块 vs. 继承 9.6.2.1. 简单项目 9.6.2.2. 多模块企业级项目 9.6.2.3. 原型父项目 10. 构建生命周期 10.1...

    go-demo:Go语言实例教程从入门到进阶,包括基础库使用,设计模式,面试易错点,工具类,对接第三方等

    :Go面试题及详解 :转到对接第三方工具(mqtt,elastic,kafka ...) :GoWeb开发常用工具类 :去实现一个简单的区块链 :Go实现内网穿透工具 :Go实现爬虫(QQ协议登录,QQ自动领礼物) :Go实现LeetCode中...

    Android 开发技巧

    9.40、通过HTTPCLIENT从指定SERVER获取数据 265 9.41、通过FTP传输文件,关闭UI获得返回码 266 9.42、激活JAVASCRIPT打开内部链接 266 9.43、清空手机COOKIES 267 9.44、检查SD卡是否存在并且可以写入 267 9.45、...

Global site tag (gtag.js) - Google Analytics