zoukankan      html  css  js  c++  java
  • 整合tomcat的一些配置

      我一直对tomcat不是很了解,上网了解tomcat的一些基础配置,顺便整合一下。

    1、 context.xml

      1. 在tomcat 5.5之前

        Context体现在/conf/server.xml中的Host里的<Context>元素,它由Context接口定义。每个<Context元素代表了运行在虚拟主机上的单个Web应用

       <Context debug="0" path="/webDemo" docBase="webDemo" debug="0" reloadable="true">   

    1、debug:表示log中记录异常的控制等级,数值越大,记录越详细。

    2、path:即要建立的虚拟目录,,注意是/webDemo,它指定访问Web应用的URL入口,如http://localhost:8080/webDemo/****

    3、docBase:为实际目录在硬盘上的位置(应用程序的路径或者是WAR文件存放的路径)
    4、reloadable:如果这个属性设为true,Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录CLASS文件的改变,如果监视到有class文件被更新,服务器自动重新加载Web应用,这样我们可以在不重起tomcat的情况下改变应用程序

    一个Host元素中嵌套任意多的Context元素。每个Context的路径必须是唯一的,由path属性定义。另外,你必须定义一个path=“”的context,这个Context称为该虚拟主机的缺省web应用,用来处理那些不能匹配任何Context的Context路径的请求。

       2. 在tomcat 5.5之后

    不推荐在server.xml中进行配置,而是在/conf/context.xml中进行独立的配置。因为server.xml是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载。而context.xml文件则不然,tomcat服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器。

    <Context path="/webDemo" docBase="webDemo" debug="0" reloadable="true" privileged="true"  >
    
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    
    <WatchedResource>WEB-INF/webDemo.xml</WatchedResource> 监控资源文件,如果web.xml || webDemo.xml改变了,则自动重新加载改应用。
    
    <Resource name="jdbc/testSiteds" 表示指定的jndi名称
    auth="Container" 表示认证方式,一般为Container
    type="javax.sql.DataSource"
    maxActive="100" 连接池支持的最大连接数
    maxIdle="30" 连接池中最多可空闲maxIdle个连接
    maxWait="10000" 连接池中连接用完时,新的请求等待时间,毫秒
    username="root" 表示数据库用户名
    password="root" 表示数据库用户的密码
    driverClassName="com.mysql.jdbc.Driver" 表示JDBC DRIVER
    url="jdbc:mysql://localhost:3306/testSql" /> 表示数据库URL地址
    
    </Context>

    3、context.xml的三个作用范围

    1. tomcat server级别:

    在/conf/context.xml里配置

    2. Host级别:

    在/conf/Catalina/${hostName}里添加context.xml,继而进行配置

    3. web app 级别:

    在/conf/Catalina/${hostName}里添加${webAppName}.xml,继而进行配置

     server.xml

    元素名
    属性
    解释
    server
    port
    指定一个端口,这个端口负责监听关闭tomcat的请求
    shutdown
    指定向端口发送的命令字符串
    service
    name
    指定service的名字
    Connector(表示客户端和service之间的连接)
    port
    指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求
    minProcessors
    服务器启动时创建的处理请求的线程数
    maxProcessors
    最大可以创建的处理请求的线程数
    enableLookups
    如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
    redirectPort
    指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
    acceptCount
    指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
    connectionTimeout
    指定超时的时间数(以毫秒为单位)
    URIEncoding 指定默认编码ISO-8859-1编码,我们基本会设置UTF-8。(中文路径、文件等问题)
    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方式记录的值更多

    Web.xml文件的作用

    Web.xml依次定议了如下元素: 

    <web-app> 
    <display-name></display-name> 定义了WEB应用的名字 
    <description></description> 声明WEB应用的描述信息 
    <filter></filter> 
    <filter-mapping></filter-mapping> 
    <servlet></servlet> 
    <servlet-mapping></servlet-mapping> 
    <session-config></session-config> 
    <welcome-file-list></welcome-file-list> 
    <taglib></taglib> 
    <resource-ref></resource-ref> 
    <security-constraint></security-constraint> 
    <login-config></login-config> 
    </web-app> 
    在web.xml中元素定义的先后顺序不能颠倒,否则Tomcat服务器可能会抛出SAXParseException.
    
    <!-- 
    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> 
    
    <!--配置Wel0come0文件清单--> 
    <welcome-file-list> 
    <welcome-file>login.jsp</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    </welcome-file-list> 
    
    <!-- 
    配置Tag Library 
    taglib-uri 设定Tag Library的唯一标识符,在Web应用中将根据这一标识符来引用Tag Library 
    taglib-location 指定和Tag Library对应的TLD文件的位置 
    --> 
    <taglib> 
    <taglib-uri>/mytaglib</taglib-uri> 
    <taglib-location>/WEB-INF/mytaglib.tld</taglib-location> 
    </taglib> 
    
    <!-- 
    配置资源引用 
    description 对所引用的资源的说明 
    res-ref-name 指定所引用资源的JNDI名字 
    res-type 指定所引用资源的类名字 
    res-auth 指定管理所引用资源的Manager,它有两个可选值: 
    Container:由容器来创建和管理resource 
    Application:同WEB应用来创建和管理Resource 
    --> 
    <resource-ref> 
    <description>DB Connection</description> 
    <res-ref-name>jdbc/sampleDB</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
    </resource-ref> 
    
    <!-- 
    配置安全约束(以下代码指定当用户访问该WEB应用下的所有资源时,必须具备guest角色) 
    web-resource-collection 声明受保护的WEB资源 
    auth-constraint 声明可以访问受保护资源的角色,可以包含多个<role-name>子元素 
    
    web-resource-name 标识受保护的WEB资源 
    url-pattern 指定受保护的URL路径 
    --> 
    <Security-constraint> 
    <web-resource-collection> 
    <web-resource-name>sample appliction</web-resource-name> 
    <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
    <role-name>guest</role-name> 
    </auth-constraint> 
    </Security-constraint> 
    
    <!-- 
    配置安全验证登录界面:指定当WEB客户访问受保护的WEB资源时,系统弹出的登录对话框的类型。 
    auth-method 指定验证方法,它有三个可选值:BASIC(基本验证)、DIGEST(摘要验证)、FORM(表单验证) 
    realm-name 设定安全域的名称 
    form-login-config 当验证方法为FORM时,配置验证网页和出错网页 
    form-login-page 当验证方法为FORM时,设定验证网页 
    form-error-page 当验证方法为FORM时,设定出错网页 
    --> 
    <login-config> 
    <auth-method>FORM</auth-method> 
    <realm-name> 
    Tomcat Server Configuration form-Based Authentication Area 
    </realm-name> 
    <form-login-config> 
    <form-login-page>/login.jsp</form-login-page> 
    <form-error-page>/error.jsp</form-error-page> 
    </form-login-config> 
    </login-config> 
    
    <!--配置对安全验证角色的引用--> 
    <security-role> 
    <description> 
    The role that is required to log into the sample application 
    </description> 
    <role-name>guest</role-name> 
    </security-role> 
    </web-app> 
    
     

    tomcat-users.xml文件的作用

    1.关于用户角色、管理员的信息都在这个配置文件中。
    2.登录用户默认是注释掉的,把 <!--  -->去掉才能生效。
    3.在配置文件<tomcat-users>节点下添加管理员配置:

    <role rolename="tomcat"/>
    <role rolename="role1"/>
    <user username="tomcat" password="tomcat" roles="tomcat"/>
    <user username="both" password="tomcat" roles="tomcat,role1"/>
    <user username="role1" password="tomcat" roles="role1"/>

    最后补充一句,在eclipse下debug启动tomcat默认热部署,热加载。大家可以试试!

  • 相关阅读:
    ES6关于Promise的用法
    JS进阶篇--JS数组reduce()方法详解及高级技巧
    JavaScript常用数组操作方法,包含ES6方法
    揭密 Vue 的双向绑定
    JavaScript(E5,6) 正则学习总结学习,可看可不看!
    利用scons构建project
    cuda核函数再调用核函数,多层并行
    使用微信JSSDK实现图片上传
    android 自己定义水平和圆形progressbar 仅仅定义一些style就能够
    [LeetCode] 035. Search Insert Position (Medium) (C++)
  • 原文地址:https://www.cnblogs.com/zrl66/p/tomcat.html
Copyright © 2011-2022 走看看