Servlet 4

Servlet 4.0规约简介

Servlet 4.0 规约是JCP组织定义的Web规约,JSR编号369。

1.1 什么是Servlet?

Servlet 是基于Java技术的Web组件,被Container管理。和大多数Java组件一样,是平台无关性的组件。可以被编译成机器字节码被基于Java技术的WebServer加载和运行。

Servlet Container,也叫Servlet 引擎,是Java技术的扩展,提供功能。

Servlet和客户端交互是使用Servlet Container实现的Request、Response范例。

1.2 什么是Servlet Container?

Servlet Container是Web Server的一部分。提供发送Request、Reseponse的网络服务。

解码MiMe格式的Request,编码MiMe格式的Response。Servlet Container管理Servlet生命周期。

Servlet Container可以是WebServer的一部分,也可以是WebServer

独立的插件。

Servlet Container必须支持HTTP协议。可选的支持HTTP2协议。Servlet Container需要支持ALPN,因为Servlet Container需要有缓存机制。

Servlet Container也应该支持身份验证,当Servlet运行在Java Platform, Standard Edition(J2SE)或者运行在Java Platform, Exterprise Edition(Java EE)环境时。

如图Servlet Container Web 扩展的功能。

Servlet 4

1.3 一个样例

下面是一个典型的事件流。

  1. 客户端向WebServer发起Request
  2. WebServer接收Request并交给Servlet Container处理。Servlet Container可以是和WebServer 运行在同一个主机的同一个进程,也可以同一个主机不同进程,也可以是远程主机独立线程。
  3. Servlet Container 根据自身的Servlet配置表决定哪个Servlet处理Request,并将Request、Response使用对象呈现,交给Servlet执行。
  4. Servlet从Request对象查看是哪个远程用户发送的请求,携带的数据,执行业务逻辑,并将响应数据转成Response对象,发送给客户端。
  5. 一旦Servlet 完成处理,会确保数据已经发送至客户端,最后将运行权返回给WebServer。

根据这些步骤,图形呈现,如图:

Servlet 4

1.4 Servlet和其他技术比较

Servlet 比Common Gateway Interface 提供更高的抽象,但比JavaServer Face较低抽象。

Servlet 有如下优势:

  1. Servlet 比Common Gateway Interface更快,因为Servlet 使用不同进程模式运行。
  2. Servlet 拥有大多数WebServer的标准API。
  3. Servlet 是Java语言编写的组件,具有平台独立性
  4. 可以在JAVA 平台使用Servlet的API

1.5 Servlet和Java Platform Enterprise Edition的关系

Servlet API 4.0是Java Platform Enterprise Edition 8 必须的API。要在Java Platform Enterprise Edition 8环境部署Servlet API 4.0 需要其他的要求。

Original: https://www.cnblogs.com/code-for-me/p/16741813.html
Author: 夕琴
Title: Servlet 4

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/616366/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【主流技术】Spring Boot中的微信支付(小程序)

    前言 微信支付是企业级项目中经常使用到的功能,作为后端开发人员,完整地掌握该技术是十分有必要的。 logo 一、申请流程和步骤 图1-1 注册微信支付账号 获取微信小程序APPID…

    Java 2023年6月6日
    0119
  • 从零玩转人脸识别之RGB人脸活体检测

    从零玩转RGB人脸活体检测 前言 本期教程人脸识别第三方平台为虹软科技,本文章讲解的是人脸识别RGB活体追踪技术,免费的功能很多可以自行搭配,希望在你看完本章课程有所收获。 Arc…

    Java 2023年6月9日
    074
  • Mybatis逆向工程配置

    Mybatis 提供了一个逆向工程工具,该工具可以根据数据表自动生成针对单表的 po 类、mapper 映射文件和 mapper 接口。大大缩减了开发时间,可以让开发人员将更多的精…

    Java 2023年6月9日
    077
  • Java并发

    Java并发 JAVA技术交流群:737698533 CAS compare and swap 比较并交换,cas又叫做无锁,自旋锁,乐观锁,轻量级锁 例如下面的代码,如果想在多线…

    Java 2023年6月6日
    089
  • 反射取得静态类中的属性,方法,字段

    欢迎加我的QQ群:193522571,一起来讨论、交流! Type BstrType = typeof(CadBaseSet);DataTable dt = (DataTable)…

    Java 2023年5月30日
    083
  • InnoDB体系架构

    后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据,此外将已修改的数据文件刷新到磁盘文件,同时保证在数据库发生异常的情况下InnoDB能恢复到正常运行…

    Java 2023年6月8日
    079
  • DBeaver首选项

    1.自动保存 2.SQL格式 可根据个人习惯选择SQL格式; 本人习惯紧凑格式。 3.自定义模板 将常用的SQL语句添加至模板,在SQL编辑器内输入模板名称按下Tab键,即可唤出全…

    Java 2023年6月8日
    084
  • java线程中yield(),sleep(),wait()区别详解

    1、sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访…

    Java 2023年5月29日
    091
  • Nginx+php+mysql+wordpress搭建自己的博客站点

    服务器环境要求Centos 6 或以上版本(由于我们的目标是半小时内搭建好,那就选简单yum安装)MySQL 5或更新版本Nginx 1或更新版本PHP 5 或更新版本 php-f…

    Java 2023年6月8日
    0183
  • 关于IDEA中Tomcat中文乱码的解决方案

    进入Tomcat/config文件夹下,打开编辑logging.properties 然后查看该文件内是否存在 java.util.logging.ConsoleHandler.e…

    Java 2023年6月8日
    098
  • Docker 学习笔记一

    Docker 学习笔记一 1.Docker是什么? Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。让开发者打包他们的应用以及依赖包…

    Java 2023年6月16日
    0116
  • explain的基本使用介绍

    在进行mysql操作的时候,主要是crud. 更主要的是进行查询的操作.在开发工作过程中往往会遇到慢查询,导致整个程序很慢.这个时候就需要开发人员进行慢查询的分析.这个过程比较漫长…

    Java 2023年6月6日
    090
  • 泛型

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月7日
    077
  • Swagger以及knife4j的基本使用

    Swagger 介绍: Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的 Web 服务 RESTful是一种架构的规范与约束、原则,符合这种…

    Java 2023年6月14日
    078
  • Java递归查找层级文件夹下特定内容的文件

    递归查找文件 引言 或许是文件太多,想找某个文件又忘记放哪了;又或者是项目改造,需要将外部调用接口进行改造,项目太多,又无法排查。那么怎么快速找到自己想要的内容就是一件值得思考的事…

    Java 2023年6月8日
    0101
  • 机械师实时调度示例(I)-实时规划

    OptaPlanner创办人Geoffrey De Smet及其团队,在Red Hat 技术峰会上主题会场上,演示了一个通过OptaPlanner实现实时规划与调度的示例。Geof…

    Java 2023年6月16日
    095
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球