前言:

最近公司项目中用到了Jetty来作为项目的web容器,借此机会来分享一下我的学习心得。在学习Jetty之前,一定要了解一些Jetty的基本概念以及优缺点,这样才方便做更深入的学习,现在让我来慢慢揭开它的神秘面纱吧!

基础:

什么是Jetty?

简单来讲Jetty就是一个开源的HTTP服务器和Servlet引擎,它可以为JSP和Servlet提供运行时环境,比如Java Web应用最常用的Servlet容器Tomcat,由于其轻量、灵活的特性,Jetty也被应用于一些知名产品中,例如ActiveMQ、Maven、Spark、GoogleAppEngine、Eclipse、Hadoop等。

为什么使用Jetty?

①异步的 Servlet,支持更高的并发量

②模块化的设计,更灵活,更容易定制,也意味着更高的资源利用率

③在面对大量长连接的业务场景下,Jetty 默认采用的 NIO 模型是更好的选择

④将jetty嵌入到应用中,使一个普通应用可以快速支持 http 服务

Jetty的基本架构:

Jetty 的架构比较简单,核心组件主要是由 Server 和 Handler 组成。其中 Server 的 Handler 是其比较重要的一个数据模型,Jetty 中所有的组件都是基于  Handler 来实现的。

Tomcat的基本架构:

        Server是Tomcat的最顶层元素,是service的集合,即可包含多个service,Server控制整个Tomcat的生命周期。Service由一个Container和多个Connector组成(或者说由Connector,Engine和线程池[可选]组成),形成一个独立完整的处理单元,对外提供服务。

Jetty与Tomcat的对比:

        ①Jetty 比较容易贴合第三方框架,比如你可以直接用 Spring 配置一个 Jetty 服务器

②直接可以将 Jetty 作为提供 HTTP 服务的组件,嵌入到应用中

③Jetty 是面向 Handler 的架构,而 Tomcat 是面向容器的架构

④Jetty 默认采用 NIO 技术,而 Tomcat 默认是 BIO

⑤Jetty 高度模块化,可以很灵活的管理拓展组件,而 Tomcat 对其他组件的管理则相对困难

web 容器 Jetty 简介相关推荐

  1. Web容器(一):Web容器简介

    本文参照:极客时间-<深入拆解 Tomcat & Jetty>-开篇词 | Java程序员如何快速成长 + 01_Web容器学习路径 Web容器 Web技术的发展史 早期的Web应 ...

  2. 解析 http 请求 header 错误_详解http报文(2)-web容器是如何解析http报文的

    摘要 在详解http报文一文中,详细介绍了http报文的文本结构.那么作为服务端,web容器是如何解析http报文的呢?本文以jetty和undertow容器为例,来解析web容器是如何处理http报 ...

  3. Web容器默认的servlet

    文章目录 1.1 各类Web服务器默认servlet名称 1.2 查看默认servlet 1.3 tomcat解析JSP对应的servlet 1.1 各类Web服务器默认servlet名称 Web容器 ...

  4. 几种常见web 容器

    web容器 1. Tomcat是Apache鼎力支持的Java Web应用服务器,由于它优秀的稳定性以及丰富的文档资料,广泛的使用人群,从而在开源领域受到最广泛的青睐. 2. Jboss作为Java ...

  5. SpringBoot应用裁减使用Netty替换内置Web容器

    在云服务应用中需要提供高性能的中台服务,而在生产环境我们是使用的RPC服务,基于这个背景,为了使微服务系统更加轻量级,提高性能,所以打算移除SpringMvc相关组件以及Tomcat,Jetty,Un ...

  6. springboot使用undertow作为web容器而引发的中文乱码问题

    先说一下出现这种情况的场景.该场景在使用jetty,tomcat作为容器时是可以正常运行的.首先是表单提交. <form id="submitForm" action=&qu ...

  7. Docker容器---dockerfile简介

    Docker容器---dockerfile简介 一.dockerfile概念 1.dockerfile介绍 2.基于dockerfile创建 3.docker镜像加载原理 二.镜像的创建 1.基于现有 ...

  8. Spring Cloud Gateway 不小心换了个 Web 容器就不能用了,我 TM 人傻了

    个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判.如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 i ...

  9. 几种常见web 容器比较

    web 容器比较 tomcat jboss resin weblogic websphere glassfish Tomcat是Apache鼎力支持的Java Web应用服务器,由于它优秀的稳定性以及 ...

最新文章

  1. vim粘帖的一个问题分析(pastetoggle)
  2. R构建分位数回归模型(Quantile Regression)
  3. 反射工具类 java_Java反射工具类
  4. 结构体前置申明未定义问题
  5. 在女画家杨雁翎的画室派对
  6. 这七种回归分析技术,学了不后悔~
  7. matlab圆柱饶流,有限元法解二维圆柱绕流问题.pdf
  8. 【动态规划】区间dp:P1005矩阵取数
  9. 小猿日记(5)- 520特别篇
  10. oracle 基本语句
  11. 2018 Macbook pro 15(10.13.6)安装Nvidia 1070(Aorus Gaming Box)显卡驱动
  12. Mybatis generator自动生成mybatis配置和类信息
  13. 分享给妈咪们减肥小感悟
  14. QML中ListView的深度订制,并利用其实现自定义ComboBox和TreeView
  15. C语言实现科学计算器
  16. ICMP控制报文协议
  17. 数据加载、存储与文件格式(python)
  18. 计算机网络管理设计,计算机网络管理系统设计与应用分析
  19. mdadm 删除 软件 RAID
  20. Adobe Premiere Pro2021系统兼容性报告(Intel 和 NVIDIA)

热门文章

  1. android无法实例化服务,Android:无法实例化类:没有空的构造函数
  2. SmartNIC/DPU — 基本组成示例
  3. 互联网协议 — 使用 Wireshark 调试 HTTPS 及 HTTP/2 流量
  4. 4G 信令中的 PCO 字段
  5. 使用MLX90640自制红外热像仪(四):stm32f103c8t6刷320x240分辨率屏的时间测试
  6. 001-测试用例简介
  7. 关于扫描仪——你不知道的秘密
  8. redis报protocol error的真正原凶
  9. mvc中signalr实现一对一的聊天
  10. iOS开发UI篇—CALayer简介