• tomcat


    一. 简介

      Apache的一个子项目,是一款Servlet/JSP容器。
      Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求与服务器响应的中间层。Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。

    二.Servlet容器调用Servlet处理请求/响应过程

    1. 当客户请求访问某个Servlet时,Servlet容器将创建一个ServletRequest对象和ServletResponse对象;
    2. 在ServletRequest对象中封装了客户请求信息,然后Servlet容器把ServletRequest对象传给客户所请求的Servlet;
    3. Servlet把响应结果写在ServletResponse中,由Servlet容器把响应结果传给客户。

    images48-1.png

    三. tomcat结构

      tomcat服务器是由一系列可配置的组件构成,其中核心组件是Servlet容器,它是所有其他Tomcat组件的顶层容器。可以在server.xml文件中进行配置,每个Tomcat组件在server.xml文件中对应一种配置元素。

    <Server>  //Servlet容器
        <Service>
            <Connector/>  //连接器。和客户实际交互的组件,它负责接受客户的请求,以及想客户返回响应结果。
     
            ......
            <Connector/>
            <Engine>
                <Host>  //虚拟主机
                    <Context></Context>  //运行在虚拟主机上的单个web应用。
                    ......
                    <Context></Context>
                </Host>
                ......
                <Host>
                    ......
                </Host>
            </Engine>
        </Service>
        ......
        <Service>
            ......
        </Service>
    </Server>
    

    顶层配置元素        <Server> 和<Service>;
    连接器类元素       <Connector>  介于客户服务之间的通信接口,负责将客户的请求发送给服务器,并将服务器的响应结果传递给客户;
    容器类元素          <Engine>,<Host>,<Context>处理客户请求并生成响应结果的组件
    嵌套类元素          <Loger>,<Value>,<Realm> 可以加入到容器中的组件

    <Server>   元素代表整个Servlet容器,它是Tomcat实例的顶层元素。<Server>元素中可以包含一个或多个<Service>元素。
    <Service>   包含一个<Engine>元素,以及一个或多个<Connector>元素,这些<Connector>元素共享同一个<Engine>元素
    <Connector>代表和客户实际交互的组件,它负责接受客户的请求,以及想客户返回响应结果。
    <Engine>    每个<Service>元素只能包含一个<Engine>元素。<Engine>元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求。
    <Host>     一个<Engine>可以包含多个<Host>元素。每个<Host>元素定义了一个虚拟主机,它可以包含一个或多个Web应用。每个Web应用必须有唯一的URL路径,这个URL路径在<Context>元素的path属性中设定。如:<Context   path=“/child” docBase=“web-test”   debug=“0” Reloadable=“true”>。reloadable为true,则tomcat运行中会动态监视class等文件的改动,如果监视到有class文件被更新,tomcat会自动重新加载Web应用。开发阶段设为true,发布阶段设为false.访问时:www.xxx.com/child-->webapps/test.
    如:
    <Host name="localhost" appBase="/opt/webapps" unpackWARs="true" autoDeploy="true">
    <Context path="/adu" docBase="adu-web" debug="0" reloadable="false"></Context>
    </Host>
    则:www.xxx.com/adu-->/opt/webapps/adu-web

    四. JAVA web应用

    Java Web应用由一组静态HTML页面,Servlet,JSP和其他的class组成。每种组件在Web应用中都有固定的存放目录。
    Java Web应用通过一个基于XML的发布描述符文件来配置其发布信息,这个文件名为web.xml。

    五. 部署

    部署一个新的tomcat需要修改的地方:
    1)bin/catalina.sh(调试设置)

    CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -DDEBUG_ENV -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=35577"
    # OS specific support........
    

    2)conf/server.xml

    <Server port="45742" shutdown="SHUTDOWN">
     ...... 
    <Connector port="45741" protocol="HTTP/1.1" maxThreads="2000" acceptCount="2000" connectionTimeout="20000" redirectPort="45743" />
     ......
    <Connector port="45744" protocol="AJP/1.3" redirectPort="45743" />
    .....
    <Host name="localhost" appBase="/opt/webapps" unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="adu-web" debug="0" reloadable="false"></Context>
    </Host>
    ......
    

      

      

  • 相关阅读:
    54、servlet3.0-ServletContainerInitializer
    53、servlet3.0-简介&测试
    52、[源码]-Spring源码总结
    51、[源码]-Spring容器创建-容器创建完成
    50、[源码]-Spring容器创建-Bean创建完成
    49、[源码]-Spring容器创建-创建Bean准备
    48、[源码]-Spring容器创建-初始化事件派发器、监听器等
    Atom编辑器入门到精通(四) Atom使用进阶
    Atom编辑器入门到精通(三) 文本编辑基础
    Atom编辑器入门到精通(二) 插件的安装和管理
  • 原文地址:https://www.cnblogs.com/waterystone/p/5085156.html
Copyright © 2020-2023  润新知