1.什么是jetty?

开源HTTP服务器和Servlet引擎,是web应用的容器,同tomcat类似。由于其轻量灵活的特性,很多知名产品也应用了它,如maven、eclipse、hadoop、spark、activeMQ

2.为什么使用jetty?

  • 异步的Servlet,支持更高的并发量(异步Servlet是Servlet3.0原生的东西,只是jett中的Continuation使它更高效)

  • 模块化设计,更灵活易定制,也意味着更高的资源利用率(如久其现在使用的各个jar,模块化然后集中管理)
  • 在面对大量长连接的业务场景下,jetty默认采用的NIO(非阻塞)模型是更好的选择
  • 将jetty嵌入到应用中,能够使一个普通应用快速支持http服务(不再将应用放进web容器中,而是将jetty嵌入到应用中)

3.jetty的基本架构?

核心组件是Server和Handler,jetty中的所有组件都是基于Handler来实现的,包括Server。

4.与tomcat对比?

  • jetty更容易集成第三方框架,比如可以直接用Spring配置一个Jetty服务器
  • 直接将jetty作为提供http服务的组件嵌入到应用中
  • jetty是面向handler的架构,而tomcat是面向容器的
  • jetty默认使用NIO,tomcat使用BIO
  • jetty高度模块化,可以很灵活管理拓展去除组件,tomcat则很难管理其它组件

5.使用jetty?

版本选择:9.2版本必须使用java7+,9.3必须java8+

项目结构:

  • bin:可执行脚本文件(启动脚本)

  • etc: Jetty 的配置目录 & 模块相关的配置
  • modules:模块目录,存放 xxx.mod 配置文件
  • resources:classpath 下的附加资源配置目录,如 log4j.properties
  • webapps:应用部署位置,可以是 web 应用目录,也可以是 war 文件
  • lib:Jetty 所依赖的 jar 文件,以及模块所依赖的 jar
  • logs:日志目录
  • demo-base:Jetty 默认的演示程序
  • start.ini:Jetty 默认的配置文件
  • start.jar:运行 Jetty 的 jar

启动jetty服务器:

  • 在当前目录下执行java -jar start.jar,启动的就是当前根目录webapps下的程序

常用配置

  • start.ini:服务启动配置项
  • etc/xxx.xml:Jetty 服务相关配置
  • modules/xxx.mod:模块相关配置

6.Jetty模块化

  • 单体应用架构:更新任意应用服务需要重启整个应用
  • 微服务架构:将需求模块拆分服务,单个服务更新不影响其它服务

7.web应用部署方式:

  1. 将war包直接放到根目录下的的webapps中,可解压成ROOT目录,便可不需要添加上下文路径即可访问
  2. 将war包放到demo-base目录下的webapps中

jetty学习小结的更多相关文章

  1. flex学习小结

    接触到flex一个多月了,今天做一个学习小结.如果有知识错误或者意见不同的地方.欢迎交流指教. 画外音:先说一下,我是怎么接触到flex布局的.对于正在学习的童鞋们,我建议大家没事可以逛逛网站,看看人 ...

  2. Python 学习小结

    python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...

  3. react学习小结(生命周期- 实例化时期 - 存在期- 销毁时期)

    react学习小结   本文是我学习react的阶段性小结,如果看官你是react资深玩家,那么还请就此打住移步他处,如果你想给一些建议和指导,那么还请轻拍~ 目前团队内对react的使用非常普遍,之 ...

  4. objective-c基础教程——学习小结

    objective-c基础教程——学习小结   提纲: 简介 与C语言相比要注意的地方 objective-c高级特性 开发工具介绍(cocoa 工具包的功能,框架,源文件组织:XCode使用介绍) ...

  5. pthread多线程编程的学习小结

    pthread多线程编程的学习小结  pthread 同步3种方法: 1 mutex 2 条件变量 3 读写锁:支持多个线程同时读,或者一个线程写     程序员必上的开发者服务平台 —— DevSt ...

  6. ExtJs学习笔记之学习小结LoginDemo

    ExtJs学习小结LoginDemo 1.示例:(登录界面) <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  7. 点滴的积累---J2SE学习小结

    点滴的积累---J2SE学习小结 什么是J2SE J2SE就是Java2的标准版,主要用于桌面应用软件的编程:包括那些构成Java语言核心的类.比方:数据库连接.接口定义.输入/输出.网络编程. 学习 ...

  8. (转) Parameter estimation for text analysis 暨LDA学习小结

    Reading Note : Parameter estimation for text analysis 暨LDA学习小结 原文:http://www.xperseverance.net/blogs ...

  9. dubbo学习小结

    dubbo学习小结 参考: https://blog.csdn.net/paul_wei2008/article/details/19355681 https://blog.csdn.net/liwe ...

随机推荐

  1. ftp服务器搭建(windows)+实现ftp图片上传对接

    ftp服务器搭建(windows): vsftpd简介: vsftpd是“very secure FTP daemon”的缩写,是一个完全免费的.开放源代码的ftp服务器软件. 下载地址: http: ...

  2. centos6.x一键15项系统优化(转自努力哥)

    #!/bin/sh ################################################ #Author:nulige # qqinfo: # Date: -- #vers ...

  3. [BZOJ1044][HAOI2008]木棍分割 二分+贪心+dp+前缀和优化

    1044: [HAOI2008]木棍分割 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4112  Solved: 1577 [Submit][St ...

  4. UVA 1151 Buy or Build MST(最小生成树)

    题意: 在平面上有n个点,要让所有n个点都连通,所以你要构造一些边来连通他们,连通的费用等于两个端点的欧几里得距离的平方.另外还有q个套餐,可以购买,如果你购买了第i个套餐,该套餐中的所有结点将变得相 ...

  5. Gym - 101194F(后缀数组)

    Mr. Panda and Fantastic Beasts 题意 给出若干个字符串,找到一个最短的字典序最小的字符串且仅是第一个字符串的子串. 分析 对于这种多个字符串.重复的子串问题一般都要连接字 ...

  6. poj2728(最小比率生成树)

    poj2728 题意 给出 n 个点的坐标和它的高度,求一颗生成树使得树上所连边的两点高度差之和除以距离之和最小. 分析 01分数规划+最小生成树. 对于所有的边,在求最小生成树过程中有选或不选的问题 ...

  7. Servlet 工作原理

    Servlet运行在Servlet容器中,由容器负责Servlet实例的查找及创建工作,并按照Servlet规范的规定调用Servlet的一组方法,这些方法也叫生命周期的方法.具体调用过程如下图所示: ...

  8. bzoj 2843: 极地旅行社

    Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1077  Solved: 645[Submit][Status][Discuss] Descripti ...

  9. 【hdu1150】【Machine Schedule】二分图最小点覆盖+简单感性证明

    (上不了p站我要死了,侵权度娘背锅) 题目大意 有两台机器A和B以及N个需要运行的任务.每台机器有M种不同的模式,而每个任务都恰好在一台机器上运行.如果它在机器A上运行,则机器A需要设置为模式ai,如 ...

  10. Vue之$set使用

    背景 后端参与前端开发的小白,在开发过程中遇到了如下情况:当vue的data里边声明或者已经赋值过的对象或者数组(数组里边的值是对象)时,向对象中添加新的属性,如果更新此属性的值,是不会更新视图的. ...