• 一、了解 Servlet 及 Servlet 容器


    什么是 Servlet

    Servlet 是一个基于 Java 技术的 Web 组件,它被容器(Container)管理,并可以生成动态的内容。Servlet 本质上是 Java Class,这些 Class 可以被基于 Java 的 Web 服务器动态的加载和运行。容器(Container,也被称为 Servlet 引擎)是提供 Servlet 功能的 Web 服务器扩展。Servlet 通过一个被 Servlet 容器实现的 request / response 规范来与 Web 客户端交互。

    什么是 Servlet 容器(Container)

    Web 服务器(或者应用服务器)通过发送和响应请求、解码基于 MIME 的请求、格式化基于 MIME 的响应来提供网络服务,Servlet 容器就是它们的其中一个部分。Servlet 容器还包含并且管理 Servlet 的整个生命周期。

    Servlet 容器可以构建到主机的 Web 服务器中,也可以作为一个附加的组件通过服务器的本地扩展 API 和服务器相连接。Servlet 还可以内置或者安装到启用 Web 功能的应用服务器中。

    Servlet 容器必须至少支持 http 协议,对于基于 http 协议的其他协议(例如:https)可以选择支持或不支持。

    例子说明

    下面是一个典型的事件的序列:

    1. 客户端(例如:浏览器)连接到 Web 服务器并发送一个 HTTP 请求。

    2. 请求被 Web 服务器接收并由 Servlet 容器处理。对于处理请求的 Servlet 容器来说,它可以在与 Web 服务器相同的进程中运行,或者在与 Web 服务器同一个主机上的不同进程中运行,也可以在其他主机上运行,不妨碍处理客户端发送过来的请求。

    3. Servlet 容器将会根据其配置来决定调用哪一个 Servlet 来处理请求并相应内容。

    4. Servlet 使用请求对象来找出以下内容:

      • 客户端用户是谁
      • POST 请求的参数是什么
      • 其他相关的数据

      Servlet 执行代码编写的任何逻辑,并生成响应数据,通过 Response 对象发送回客户端。

    5. 一旦 Servlet 将 Request 处理完成,Servlet 容器在确保 Response 内容在适当的时候输出到响应流后,就会将控制权给回到 Web 服务器。

    比较 Servlet 和其他技术

    在功能上来说,Servlet 提供了比 CGI 程序更高级别的抽象,但是比 Web 框架(如 JavaServer Faces)提供的抽象级别要低。

    与其他的服务器扩展机制相比,Servlet 有以下优势:

    • Servlet 大部分情况下比 CGI 脚本更快,因为它们使用不同的进程模型。
    • Servlet 使用的是被 Web 服务器支持的标准 API。
    • Servlet 有 Java 编程语言的所有优势,包括易用性开发和平台无关性(跨平台)。
    • Servlet 可以访问可用于 Java 平台的大量的 API。

    Servlet 与 Java 平台企业版的关系

    Java Servlet API 4.0 是 Java EE 中必需的 API。为了在 Java EE 环境中运行,Servlet 容器以及部署到其中的 Servlet 必须满足在 Java EE 中描述的额外的要求。

    与 Java Servlet API 2.5 的兼容性

    处理注解

  • 相关阅读:
    Spring-05 AOP入门( 原理解析)
    由于找不到vcruntime140_1.dll,无法继续执行代码重新安装程序可能会解决此问题
    模板匹配与像素统计
    npmjs官网(查询依赖包)
    基于寄生捕食算法优化概率神经网络PNN的分类预测 - 附代码
    Java并发编程—java多线程相关概念
    jmeter压测报java.net.SocketException: Connection reset
    从简单代码入手,分析线程池原理
    js——继承
    Docker进阶:mysql 主从复制、redis集群3主3从【扩缩容案例】
  • 原文地址:https://blog.csdn.net/zhaokai0130/article/details/134222127