1Jetty的基本架构

Jetty有一个基本的数据模型,这个模式就是handle,所有拷贝拓展的组件都被当做一个handler被添加到server中,然后由jetty统一管理。

1.1Jetty基本架构简介

如图Jetty核心是由Server和Connector两个组件构成的,整个jetty是基于handle容器工作的,它类似tomcat的Connector容器;



如图,jetty还有其他一些可有可无的组件构成,可以在其上面拓展,这也是jetty受欢迎的原因吧。如JMX(Java Management Extensions,即Java管理扩展) 我们可以把自己的MBean 加入到Server中,当server启动时这些类便会跟着启动.

图中可看出jetty主要是围绕server来构建 ,server类继承handler,并关联了Container和connector,container就是MBean的管理容器,mbean 被看做一个个handler被配进server中,由server提供调用规则。

MBean(描述一个可管理的资源。是一个java对象,遵循以下一些规则:1.必须是公用的,非抽象的类 2.必须有至少一个公用的构造器 3.必须实现它自己的相应的MBean接口或者实现javax.management.DynamicMBean接口4.可选的,一个MBean可以实现javax.management.NotificationBroadcaster接口MBean的类型)

如图jetty所有组件的生命周期的管理都是基于观察者模式设计的,这个类似tomcat不过更简单



如图jetty主要是基于handle来设计

2Jetty启动过程

2.1接受请求: HTTP 和AJP

2.1.1HTTP

2.1.2AJP

通常一个应用服务器不是直接将Java后台服务直接暴露给访问者,而是如图这种结构。



和HTTP对比最大的区别点在于Ajp13SocketConnector替代了 SocketConnector,表示当前连接使用AJP.



AJP(Apache JServ Protocol)是定向包协议。因为性能原因,使用二进制格式来传输可读性文本。WEB服务器通过 TCP连接 和 SERVLET容器连接。

Java Web 深入分析(7) Jetty原理解析的更多相关文章

  1. Java Web文件上传原理分析(不借助开源fileupload上传jar包)

    Java Web文件上传原理分析(不借助开源fileupload上传jar包) 博客分类: Java Web   最近在面试IBM时,面试官突然问到:如果让你自己实现一个文件上传,你的代码要如何写,不 ...

  2. Java volatile 关键字底层实现原理解析

    本文转载自Java volatile 关键字底层实现原理解析 导语 在Java多线程并发编程中,volatile关键词扮演着重要角色,它是轻量级的synchronized,在多处理器开发中保证了共享变 ...

  3. java web: eclipse & maven & jetty & struts2 & mysql = 简单登录页面

    第一次接触java web开发,花费了一天半的时间,写了个简单的登录页面,以此文为记. 开发工具 Eclipse Luna Release (4.4.0) 已集成maven,maven目前的体会就是管 ...

  4. Java并发包JUC核心原理解析

    CS-LogN思维导图:记录CS基础 面试题 开源地址:https://github.com/FISHers6/CS-LogN JUC 分类 线程管理 线程池相关类 Executor.Executor ...

  5. Java Web 深入分析(6) Tomcat

    tomcat是什么:汤姆猫?Javaweb服务器? Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache ...

  6. Java Web 深入分析(8) Servlet工作原理解析

    Servlet Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态We ...

  7. Java Web 深入分析(10) Spring 实践

    Spring helloworld [http://wiki.jikexueyuan.com/project/spring/hello-world-example.html] HelloWorld.j ...

  8. Java Bean拷贝工具Orika原理解析

    最近面试被问及对象拷贝怎样才能高效,实际上问的就是Orika或者BeanCopier的原理.由于网上对Orika原理的解析并不太多-因此本文重点讲解一下Orika的原理.(Orika是基于JavaBe ...

  9. java web项目 。classpath 文件解析

    eclipse工程中.classpath文件含义: 下面是一个.classpath文件内容: < ?xml version="1.0" encoding="UTF- ...

随机推荐

  1. openstack 基镜像展开过程

  2. OpenSL ES: 利用OpenSL ES播放一个存在于SDcard上的PCM文件

    native-lib.cpp #include <jni.h> #include <string> #include <SLES/OpenSLES.h> #incl ...

  3. OS X环境下如何搭建编译Cocos2D-X v3.x的Android Studio工程

    Cocos2D-X官网已经简单介绍了如何在OS X环境下搭建Cocos2D-X v2.x和v3.x的指南.具体链接为:http://www.cocos.com/doc/article/index?ty ...

  4. Eclipse整合SSM框架+AOP+全局异常处理

    永久有效 链接: https://pan.baidu.com/s/1FlSP3a4Px05j3bB_miCOPQ 提取码: aa8w

  5. python 中 staticmethod 和 classmethod有什么区别

    面试中经常会问到staticmethod 和 classmethod有什么区别? 首先看下官方的解释: staticmethod: class staticmethod staticmethod(fu ...

  6. 一个小时学会Git(转载)

    ---恢复内容开始--- 一个小时学会Git     最近要与部门同事一起做技术分享,我选择了Git,因为Git 是一种在全球范围都广受欢迎的版本控制系统.在开发过程中,为了跟踪代码,文档,项目等信息 ...

  7. TrippleDESCSPEncrypt 加密解密试试看

    public class TrippleDESCSPEncrypt { //12个字符 private static string customIV = "4vHKRj3yfzU=" ...

  8. 【c# 学习笔记】所有类的父类:System.object

    在c#中,所有的类都派生自System.Object类.如果定义的类,没有直达任何基类,编译器就会自动把Object类当作它的基类.和其他类 一样,System.Object类也定义了一组共有的成员, ...

  9. numpy 构建深度神经网络来识别图片中是否有猫

    目录 1 构建数据 2 随机初始化数据 3 前向传播 4 计算损失 5 反向传播 6 更新参数 7 构建模型 8 预测 9 开始训练 10 进行预测 11 以图片的形式展示预测后的结果 搭建简单神经网 ...

  10. EOS 资源汇总

    EOS 资源汇总     A curated list of EOS Ecosystem by [SuperONE](https://superone.io/) EOS 主网 超级节点 https:/ ...