• Web服务器-Tomcat详细原理与实现


     Tomcat 安装与使用

    MAC 安装配置使用Tomcat - 掘金

    安装后本计算机就相当于一台服务器了!!!

    方式一:使用本地安装的Tomcat

    1、将项目文件移动到Tomcat的webapps目录下。

    2、启动Tomcat

    3、在浏览器输入想要加载的项目资源URL即可

    方式二:使用IDEA中集成的Tomcat

    在IDEA内配置Tomcat直接搜

    写好业务类,在web.xml文件中配置servlet和映射

    1. <servlet>
    2. <servlet-name>bbsServletservlet-name>
    3. <servlet-class>com.itheima.servlet01.BbsServletservlet-class>
    4. servlet>
    5. <servlet-mapping>
    6. <servlet-name>bbsServletservlet-name>
    7. <url-pattern>/bbs/findAllurl-pattern>
    8. servlet-mapping>

    一、Tomcat基础

    Tomcat 是一个免费开源轻量级的 Web 应用服务器。适合在并发量不是很高的中小企业项目中使用。

    服务器:安装了服务器软件的计算机。

    1、文件目录结构

    2、功能组件结构

    Tomcat 俩封装的核心功能:连接器 Connector、容器 Container。连接器和容器构成了基本的 web 服务 Service。每个 Tomcat 服务器可以管理多个 Service。

    3、功能组件关系

    一个container可对应多个connector。但是仅仅当一个container和一个connector组合在一起才可以处理一个service。

    4、Coyote与Catalina

    Coyote负责具体的协议的解析;Catalina负责实现最终的请求逻辑。

    二、Tomcat架构

     一、连接器Connector

    0、 Tomcat 连接器框架Coyote

    Tomcat支持的IO模型:

     Tomcat支持的协议:

     协议分层:

    1、连接器核心功能

    一、监听网络端口,接收和响应网络请求。

    二、网络字节流处理。将收到的网络字节流转换成 Tomcat Request 再转成标准的 ServletRequest 给容器,同时将容器传来的 ServletResponse 转成 Tomcat Response 再转成网络字节流。

    2、连接器模块设计

    为满足连接器的两核心功能,需要一个通讯端点来监听端口;需要一个处理器来处理网络字节流;最后还需要一个适配器将处理后的结果转成容器需要的结构。

    3、连接器结构图

     容器支持servletRequest和servletResponse对象,Processor支持Request和Response,中间依靠Adapter进行转化。

    二、容器Container

    Tomcat 容器框架——Catalina

    0、Catalina核心地位

     

    1、Catalina架构

    四个容器Engine、Host、Context 和 Wrapper之间属于父子关系。

     2、Container架构

    3、源码分析

    三、Tomcat启动流程

    0、基本流程

    初始化:父组件调用init方法初始化自身,并初始化子组件

    启动:父组件调用start方法启动自身,并启动子组件

     

     四核心任务:

    加载Tomcat的配置文件,初始化容器组件,监听对应的端口号,准备接受客户端请求。

    1、Lifecycle

     在上述启动中 Server、service、Container、executor、connector都调用了生命周期中的init start方法。

    四、请求处理流程

    逐字段解析URL首先根据域名确定虚拟主机Host,接着根据context应用程序确定,最后根据字段wrapper确定最终的执行方法。

    Web应用配置

    1、ServletContext初始化参数

    ServletContext官方叫servlet上下文。服务器会为每一个工程创建一个对象,这个对象就是ServletContext对象。这个对象全局唯一,而且工程内部的所有servlet都共享这个对象。所以叫全局应用程序共享对象。

     使用添加ServletContext初始化参数(键值对)

    1. project01_parm
    2. itcast

    使用getServletContext().getInitParameter()获取初始化参数(传参为param-name)

    String value = request.getServletContext().getInitParameter("project01_param");
    

    2、

  • 相关阅读:
    UNet++: A Nested U-Net Architecturefor Medical Image Segmentation
    2.0、C语言数据结构——时间复杂度和空间复杂度 (1)
    Java线上云酒馆单预约系统源码小程序源码
    某大型房地产公司绩效面谈项目成功案例纪实
    MySQL数据库存储引擎以及数据库的创建、修改与删除
    centos安装mysql8
    科目一过关技巧
    机器学习极值问题
    MPI: 虚拟拓扑和近邻通信
    【文本分类】《融合注意力和剪裁机制的通用文本分类模型》
  • 原文地址:https://blog.csdn.net/m0_61843855/article/details/132477084