zoukankan      html  css  js  c++  java
  • tomcat相关知识点

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

    tomcat的文件结构:

     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="SHUTDOWN">
     2   <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
     3   <Listener className="org.apache.catalina.security.SecurityListener" />
     4   <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> 
     5   <Listener className="org.apache.catalina.core.JasperListener" /> 
     6   <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> 
     7   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> 
     8   <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> 
     9   <GlobalNamingResources> 
    10   <!-- 全局命名资源,来定义一些外部访问资源,其作用是为所有引擎应用程序所引用的外部资源的定义 --!> 
    11     <Resource name="UserDatabase" auth="Container" 
    12               type="org.apache.catalina.UserDatabase" 
    13               description="User database that can be updated and saved" 
    14               factory="org.apache.catalina.users.MemoryUserDatabaseFactory" 
    15               pathname="conf/tomcat-users.xml" /> 
    16   </GlobalNamingResources> 
    17   <!-- 定义的一个名叫“UserDatabase”的认证资源,将conf/tomcat-users.xml加载至内存中,在需要认证的时候到内存中进行认证 --> 
    18   <Service name="Catalina"> 
    19   <!-- # 定义Service组件,同来关联Connector和Engine,一个Engine可以对应多个Connector,每个Service中只能一个Engine --!> 
    20     <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 
    21     <!-- 修改HTTP/1.1的Connector监听端口为80.客户端通过浏览器访问的请求,只能通过HTTP传递给tomcat。还可以设置server与URIEncoding参数 --> 
    22     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 
    23     <Engine name="Catalina" defaultHost="test.com"> 
    24     <!-- 修改当前Engine,默认主机是,www.test.com  --> 
    25     <Realm className="org.apache.catalina.realm.LockOutRealm"> 
    26         <Realm className="org.apache.catalina.realm.UserDatabaseRealm" 
    27                resourceName="UserDatabase"/> 
    28     </Realm> 
    29     # Realm组件,定义对当前容器内的应用程序访问的认证,通过外部资源UserDatabase进行认证 
    30       <Host name="test.com"  appBase="/web" unpackWARs="true" autoDeploy="true"> 
    31       <!--  定义一个主机,域名为:test.com,应用程序的目录是/web,设置自动部署,自动解压    --> 
    32         <Alias>www.test.com</Alias> 
    33         <!--    定义一个别名www.test.com,类似apache的ServerAlias --> 
    34         <Context path="" docBase="www/" reloadable="true" /> 
    35         <!--    定义该应用程序,访问路径"",即访问www.test.com即可访问,网页目录为:相对于appBase下的www/,即/web/www,并且当该应用程序下web.xml或者类等有相关变化时,自动重载当前配置,即不用重启tomcat使部署的新应用程序生效  --> 
    36         <Context path="/bbs" docBase="/web/bbs" reloadable="true" /> 
    37         <!--  定义另外一个独立的应用程序(虚拟主机),访问路径为:www.test.com/bbs,该应用程序网页目录为/web/bbs   --> 
    38         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/web/www/logs" 
    39                prefix="www_access." suffix=".log" 
    40                pattern="%h %l %u %t &quot;%r&quot; %s %b" /> 
    41         <!--   定义一个Valve组件,用来记录tomcat的访问日志,日志存放目录为:/web/www/logs如果定义为相对路径则是相当于$CATALINA_HOME,并非相对于appBase,这个要注意。定义日志文件前缀为www_access.并以.log结尾,pattern定义日志内容格式,具体字段表示可以查看tomcat官方文档   --> 
    42       </Host> 
    43       <Host name="manager.test.com" appBase="webapps" unpackWARs="true" autoDeploy="true"> 
    44       <!--   定义一个主机名为man.test.com,应用程序目录是$CATALINA_HOME/webapps,自动解压,自动部署   --> 
    45         <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="172.16.100.*" /> 
    46         <!--   定义远程地址访问策略,仅允许172.16.100.*网段访问该主机,其他的将被拒绝访问  --> 
    47         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/web/bbs/logs" 
    48                prefix="bbs_access." suffix=".log" 
    49                pattern="%h %l %u %t &quot;%r&quot; %s %b" /> 
    50         <!--   定义该主机的访问日志      --> 
    51       </Host> 
    52     </Engine> 
    53   </Service> 
    54 </Server>
  • 相关阅读:
    卡特兰数
    hdu 1023 Train Problem II
    hdu 1022 Train Problem
    hdu 1021 Fibonacci Again 找规律
    java大数模板
    gcd
    object dection资源
    Rich feature hierarchies for accurate object detection and semantic segmentation(RCNN)
    softmax sigmoid
    凸优化
  • 原文地址:https://www.cnblogs.com/zouhong/p/11765547.html
Copyright © 2011-2022 走看看