Jetty是一个纯粹的基于Java的网页服务器和Java Servlet容器。尽管网页服务器通常用来为人们呈现文档,但是Jetty通常在较大的软件框架中用于计算机与计算机之间的通信。Jetty作为Eclipse基金会的一部分,是一个自由和开源项目。该网页服务器被用在Apache ActiveMQ[3]、Alfresco[4]、Apache Geronimo[5]、Apache Maven、Apache Spark、Google App Engine[6]、Eclipse[7]、FUSE[8]、Twitter's Streaming API[9]、Zimbra[10]等产品上。Jetty也是Lift、Eucalyptus、Red5、Hadoop、I2P等开源项目的服务器。[11]
Jetty支持最新的Java Servlet API(带JSP的支持),支持SPDY和WebSocket协议。
历史
Jetty最初是由软件工程师Greg Wilkins在悉尼的郊区巴尔曼开发的,原本是Mort Bay Server(莫特湾服务器)的一个HTTP服务器组件[12][13]。
Jetty原名IssueTracker,而后更名为MBServler(Mort Bay SERVLet servER,Mort Bay Server的Servlet服务器),最终更名为Jetty。[13]
Jetty于1995年开始开发,版本1.x和2.x由MortBay托管。从2000年到2005年,Jetty版本3.x、4.x和5.x由sourceforge.net托管。2005年,整个Jetty项目转移到了codehaus.org。[14]。2009年,Jetty的核心部件已被转移到Eclipse.org,Codehaus.org继续提供Jetty版本7.x和8.x(不包含9.x)的集成、扩展和打包。[15][16]2016年,Jetty的代码主仓库已经迁移到了Github (页面存档备份,存于互联网档案馆)[17],但是其仍然处于Eclipse IP Process (页面存档备份,存于互联网档案馆)政策下开发。
版本
|
寄存于
|
Java版本
|
协议
|
Servlet版本
|
JSP版本
|
状态
|
9.4.x
|
Eclipse[16]
|
1.8
|
HTTP/1.1, HTTP/2, WebSocket JSR356
|
3.1
|
2.3
|
稳定(自2016年12月12日)
|
9.3.x
|
Eclipse[16]
|
1.8
|
HTTP/1.1, HTTP/2, WebSocket JSR356
|
3.1
|
2.3
|
稳定(自2015年2月25日)[18][19]
|
9.2.x
|
Eclipse[16]
|
1.7
|
HTTP/1.1, WebSocket JSR356, SPDY
|
3.1
|
2.3
|
稳定(自2014年4月16日)[20]
|
9.1.x
|
Eclipse[16]
|
1.7
|
HTTP/1.1, WebSocket JSR356, SPDY
|
3.1
|
2.3
|
稳定(自2013年11月18日)[21]
|
9.0.x
|
Eclipse[16]
|
1.7
|
HTTP/1.1, WebSocket, SPDY
|
3.0(跟踪3.1版草案)
|
2.2
|
稳定(自2013年3月8日)[22]
|
8.x
|
Eclipse,[16] Codehaus[15]
|
1.6
|
HTTP/1.1, WebSocket, SPDY
|
3.0
|
2.1
|
产品生命周期结束
|
7.x
|
Eclipse,[16] Codehaus[15]
|
1.5, J2ME
|
HTTP/1.1, WebSocket, SPDY
|
2.5
|
2.1
|
产品生命周期结束
|
6.x
|
Codehaus[15]
|
1.4–1.5
|
HTTP/1.1
|
2.5
|
2.0
|
已剔除[23]
|
5.x
|
Sourceforge
|
1.2–1.5
|
HTTP/1.1
|
2.4
|
2.0
|
不推荐
|
4.x
|
Sourceforge
|
1.2, J2ME
|
HTTP/1.1
|
2.3
|
1.2
|
古老的
|
3.x
|
Sourceforge
|
1.2
|
HTTP/1.1 RFC2068
|
2.2
|
1.1
|
化石态
|
2.x
|
Mortbay
|
1.1
|
HTTP/1.0 RFC1945
|
2.1
|
1.0
|
传奇态
|
1.x
|
Mortbay
|
1.0
|
HTTP/1.0 RFC1945
|
|
|
神话态
|
应用
Jetty在嵌入式的Java应用程序中提供Web服务,其已经是Eclipse IDE中的一个组成部分。它支持AJP、JASPI、JMX、JNDI、OSGi、WebSocket和其他的Java技术。[6]
Apache Hadoop是Jetty应用在框架中的典型范例。 Hadoop在几个模块中使用Jetty作为Web服务器,其针对了不同的用途:
- NameNode和JobTracker使用Jetty呈现管理页面。[24]
- TaskTracker使用Jetty接收来自JobTracker的映射(Map),减少并洗牌(Shuffle)操作。[24]
Hadoop 0.23版后,TaskTracker的洗牌操作已从Jetty替换为Netty。[25]
参见
参考文献
外部链接