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>
  • 相关阅读:
    PacificA协议小结
    raft协议小结
    python爬虫抓取图片
    composer 的使用和常用命令大全
    php批量同步数据
    VMware虚拟机的安装与配置
    国家和地区代码表
    js判断h5页面地址的打开方式(微信、pc、移动端)
    phpexcel图片获取
    python的文件操作及简单的用例
  • 原文地址:https://www.cnblogs.com/zouhong/p/11765547.html
Copyright © 2011-2022 走看看