zoukankan      html  css  js  c++  java
  • Tomcat

    Tomcat是SUN公司推出的优秀Servlet容器,是一款完全由Java语言编写的开源的稳定、可靠、高效率软件。

    Tomcat的组成结构:Tomcat本身由一系列可配置的组件构成,其中核心组件是Servlet容器组件,它是所有其他Tomcat组件的顶层容器。各个组件在server.xml文件中对应一种配置元素。
    <Server>顶层元素,可以包含多个service组件
      <Service>顶层元素,包含一个Engine组件,可以有多个Connector组件
        <Connector />代表介于客户端与服务器之间的通信接口,负责将客户请求发送给服务器,并将服务器响应返回给客户
        <Engine>Engine组件为特定的service组件处理所有客户请求,处理同组Connector所有请求,可以有多个Host
          <Host>Host组件为特定的虚拟主机处理所有客户请求,可以有多个web应用,即多个Context
            <Context>Context组件为特定的web应用处理所有客户请求,代表了单个的web应用

     Cluster组件负责为Tomcat集群系统进行会话复制、Context组件的属性复制,以及群集范围内WAR文件的发布

            </Context>
          </Host>
        </Engine>
      </Service>
    <Server>

    Linux系统设置CATALINA_HOME环境变量,根据不同的shell使用不同的方式:
    bash CATALINA_HOME=/home/tomcat;export CATALINA_HOME
    tsh setenv CATALINA_HOME /home/tomcat



    Tomcat目录结构:是由自身的实现决定的,与Servlet规范无关
    /bin:所有的可执行命令,启动和关闭服务器startup/shutdown
    /conf:服务器的配置文件夹,保存了各种配置信息:server.xml
    /lib:Tomcat服务器所需要的各个库文件,Tomcat和web应用都可以访问,JavaWeb应用的lib目录只能被当前应用访问
    /logs:保存服务器的系统日志
    /webapps:web应用的默认存放目录
    /work:Tomcat的工作目录,生成所有的临时文件(*.java、*.class)JSP编译后的Servlet类文件
     ----------------------

    Servlet容器响应客户请求特定Servlet的流程:
    ①客户发出请求访问特定Servlet②Servlet容器收到客户请求,对其解析③Servlet容器创建一个ServletRequest对象,在ServletRequest对象中包含了客户请求信息及其他关于客户的信息,如请求头、请求正文、以及客户机的IP地址等④Servlet容器创建一个ServletResponse对象⑤Servlet容器调用客户请求的Servlet的service()方法,并把ServletRequest对象和ServletResponse对象做为参数传给该服务方法⑥Servlet从ServletRequest对象可获取客户的请求信息⑦Servlet利用ServletResponse对象来生成响应结果⑧Servlet容器把Servlet生成的响应结果发送给客户端

    Tomcat的类加载器负责为Tomcat本身及JavaWeb应用加载相关的类,查找顺序:
    ①在JavaWeb应用的WEB-INF/classes目录查找②在WEB-INF/lib查找③在Tomcat的lib目录查找④在Tomcat的lib目录下的Jar文件中查找

    =====Tomcat配置及优化=====

    修改默认端口号conf/server.xml 修改端口port8080->80

    配置虚拟目录:confserver.xml中的<Host>标签内添加:<Context path="/hzweb" docBase="D:/wwweb" reloadable="true" />

    <Context>元素是Tomcat中使用最频繁的元素,它代表了虚拟主机<Host>上的单个web应用。
    path:指定该web应用的URL入口
    docBase:指定web应用的文件路径,可以给绝对路径,也可以给相对于<Host>的appBase属性的相对路径
    className:指定实现Context组件的Java类的名字,这个Java类必须实现org.apache.catalina.Context接口,该属性默认值为org.apache.catalina.core.StandardContext

    reloadable:设置为true,Tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下的class文件的改动,以及监视web应用的WEB-INF/web.xml文件的改动。如果有更新,服务器会自动重新加载web应用。在发布阶段要改为false,可以降低Tomcat的运行负荷,提高Tomcat的运行性能

    cachingAllowed:默认为true,表示允许启动静态资源的缓存。使用缓存能提高访问静态资源的效率
    cacheMaxSize:默认值为10240(10M),设定静态资源缓存的最大容量,以K为单位。
    workDir:指定Web应用的工作目录。Tomcat在运行时会把与这个Web应用相关的临时文件放在此目录下
    uppackWar:默认值为true,表示将把Web应用的WAR文件展开为开放目录结构后再运行,如果设为false,则直接运行WAR文件

    加载Web应用时,会依照以下五种方式尝试查找Web应用的<Context>元素:
    ①<CATALINA_HOME>/conf/context.xml 此<Context>元素信息适用于所有Web应用
    ②<CATALINA_HOME>/conf/[enginename]/[hostname]/context.xml.default 此<Context>元素适用于当前主机的所有Web
    应用。如<CATALINA_HOME>/conf/Catalina/localhost/context.xml.default
    ③<CATALINA_HOME>/conf/[enginename]/[hostname]/[contextpath].xml 此<Context>元素适用于名为Catalina的
    Engine下的localhost主机的指定的web应用,如<CATALINA_HOME>/conf/Catalina/localhost/helloapp.xml
    ④到Web应用的META-INF/context.xml查找,此<Context>元素适用于当前Web应用
    ⑤到<CATALINA_HOME>/conf/server.xml文件中的<Host>元素中查找<Context>子元素 此<Context>元素适用于单个Web应用

    ======配置Tomcat虚拟主机====

    在Tomcat配置文件server.xml中,<Host>元素代表虚拟主机,在同一个<Engine>元素下可以配置多个虚拟主机
    <Host name="www.mycompany.com" appBase="c:/mycompany" unpackWARs="true" autoDeploy="true">
    <Alias>mycompany.com</Alias>//创建主机别名
    <Alias>mycompany</Alias>//创建主机别名
    </Host>
    Host属性介绍
    name:指定虚拟主机的名字
    className:指定实现虚拟主机的Java类的名字,这个Java类必须实现org.apache.catalina.Host接口,该属性的默认值为
    org.apache.catalina.core.StandardHost
    appBase:指定虚拟主机的目录
    autoDeploy:设为true表示热部署生效
    deployOnStartup:设为true表示当Tomcat启动时会自动发布appBase目录下的所有web项目,如果web应用没有相应的<Context>元素,那么Tomcat会提供一个默认的Context组件。

    unpackWARS:设为true表示把appBase属性指定的目录下的web应用的WAR文件先展开为开放目录结构后在运行。如果设为false,则直接运行WAR文件
    workDir:指定虚拟主机工作目录,Tomcat在运行时会把与这个虚拟主机的所有web应用相关的临时文件放在此目录下,它的默认值为<CATALINA_HOME>/work。如果<Host>元素下的一个<Context>元素也设置了workDir属性,那么<Context>元素的workDir属性会覆盖<Host>元素的workDir属性
    deployXML:如果设为false,那么Tomcat不会解析web应用中的用于设置Context元素的META-INF/context.xml文件。出于安全原因,如果不希望在web应用中包含Tomcat的配置元素,就可以把这个属性设置为false,在这种情况下,应该在<CATALIN_HOME>/conf/[enginename]/[hostname]下设置Context元素。该属性默认为true

  • 相关阅读:
    常用python机器学习库总结
    链接器link.exe 编译器cl.exe 资源编译器rc.exe
    LRESULT与wParam和lParam的问题
    CreateDialog和DialogBox
    如何通俗易懂地解释卷积?
    深度学习在graph上的使用
    一文弄懂神经网络中的反向传播法——BackPropagation
    WM_COMMAND消息
    win32编程中消息循环和WndProc()窗口过程函数
    使用UEditor 的时候,ajax注意使用同步的方法
  • 原文地址:https://www.cnblogs.com/geryhz/p/14373889.html
Copyright © 2011-2022 走看看