Jetty使用教程(一)——开始使用Jetty
一、Jetty简介
1.1 什么是Jetty
Jetty是一个提供HHTP服务器、HTTP客户端和javax.servlet容器的开源项目。 这个入门教程分为五个部分:- 第一部分部分重点介绍如何使用Jetty,它提供如下信息,如什么是Jetty,从哪可以下载它,怎么在像Maven一样的仓库中找到它。这一部分同样会提供启动Jetty和如何配置Jetty的快速入门。
- 第二部分从更细致的方面介绍Jetty的配置,介绍怎么用Jetty来部署一个web应用程序,怎么配置容器和连接,以及如何实现SSL和其它安全措施。
- Jetty的管理员应该关注第三部分。从启动Jetty容器开始到session管理,日志记录,HTTP/2支持和Jetty优化,这一章节将帮助Jetty管理员获得更多关于Jetty服务以外的知识,这一章节同样包含容器最常用的特性配置如JNDI和JMX。
- 针对使用Jetty的高级用户,第四部分着重于Jetty的开发,本章节的重点是如何将Jetty嵌入一个已经存在的应用程序中。这部分包含几个简单的例子和操作Jetty框架的指南。这一部分同样包含如何使用Jetty的maven插件以及Jetty调试。
- 最后一个部分是引用部分,也包含Jetty的架构信息,Jetty的XML语法介绍,以及常见问题的解析,这章也介绍如何参与Jetty社区,如何贡献代码,以及如何寻求帮助。
1.2 如何选择Jetty的版本
Jetty9是Jetty的最近一个版本且比之前的版本有很大的改进,其中一个改进是Jetty所有特性已经体现在Jetty9的文档里。所以对于很多使用Jetty老版本的用户,我们建议使用Jetty9,我们也表示将会在接下来的几年里积极维护这一个版本。 表格1.1Jetty版本| 版本 | Year | Home | JVM | 协议 | Servlet | JSP | 状态 |
|---|---|---|---|---|---|---|---|
| 9.3 | 2015 | Eclipse | 1.8 | HTTP/1.1 (RFC 7230), HTTP/2 (RFC 7540), WebSocket (RFC 6455, JSR 356), FastCGI | 3.1 | 2.3 | 稳定版本 |
| 9.2 | 2014 | Eclipse | 1.7 | HTTP/1.1 RFC2616, javax.websocket, SPDY v3 | 3.1 | 2.3 | 稳定版本 |
| 8 | 2009- | Eclipse/Codehaus | 1.6 | HTTP/1.1 RFC2616, WebSocket RFC 6455, SPDY v3 | 3.0 | 2.2 | 珍贵版本 |
| 7 | 2008- | Eclipse/Codehaus | 1.5 | HTTP/1.1 RFC2616, WebSocket RFC 6455, SPDY v3 | 2.5 | 2.1 | 珍贵版本 |
| 6 | 2006-2010 | Codehaus | 1.4-1.5 | HTTP/1.1 RFC2616 | 2.5 | 2.0 | 已经作废 |
| 5 | 2003-2009 | Sourceforge | 1.2-1.5 | HTTP/1.1 RFC2616 | 2.4 | 2.0 | 已经作废 |
| 4 | 2001-2006 | Sourceforge | 1.2, J2ME | HTTP/1.1 RFC2616 | 2.3 | 1.2 | 远古时期 |
| 3 | 1999-2002 | Sourceforge | 1.2 | HTTP/1.1 RFC2068 | 2.2 | 1.1 | 石器时代 |
| 2 | 1998-2000 | Mortbay | 1.1 | HTTP/1.0 RFC1945 | 2.1 | 1.0 | 传说级别 |
| 1 | 1995-1998 | Mortbay | 1.0 | HTTP/1.0 RFC1945 | - | - | 神话级别 |
1.3 Jetty 和Java EE Web规范
Jetty实现的Java EE规范主要是Servlet规范,最新的Java EE平台介绍了一个新的Web 规范,建议开发者只需要大部分技术中的一部分即可。然而Jetty没有实现Web 规范中所有的技术,Jetty设计为一个容器,可以使用插件自由扩展想要的功能。1.3.1 Java EE 7 Web规范
在Java EE7的规范中,更新了一些重要的功能以及添加了一些新的: 表格1.2 JavaEE7 Web Profile| JSR | 名称 | jetty-9.1.x是否包含 | 支持插件 |
|---|---|---|---|
| JSR 340 | Servlet Specification API 3.1 | Yes | |
| JSR 344 | Java Server Faces 2.2 (JSF) | No | Yes, Mojarra or MyFaces |
| JSR 245 / JSR 341 | Java Server Pages 2.3/Java Expression Language 3.0 (JSP/EL) | Yes | Yes |
| JSR 52 | Java Standard Tag Library 1.2 (JSTL) | Yes | Yes |
| JSR 45 | Debugging Support for Other Languages 1.0 | Yes (via JSP) | Yes (via JSP) |
| JSR 346 | Contexts and Dependency Injection for the JavaEE Platform 1.1 (Web Beans) | No | Yes, Weld |
| JSR 330 | Dependency Injection for Java 1.0 | No | Yes as part of a CDI implementation, Weld |
| JSR 316 | Managed Beans 1.0 | No | Yes, as part of another technology |
| JSR 345 | Enterprise JavaBeans 3.2 Lite | No | |
| JSR 338 | Java Persistance 2.1 (JPA) | No | Yes, eg Hibernate |
| JSR 250 | Common Annotations for the Java Platform 1.2 | Yes | Partially (for non-core Servlet Spec annotations) |
| JSR 907 | Java Transaction API 1.2 (JTA) | Yes | Yes |
| JSR 349 | Bean Validation 1.1 | No | Yes as part of another technology eg JSF, or a stand-alone implementation such as Hiberate Validator |
| JSR 339 | Java API for RESTful Web Services 2.0 (JAX-RS) | No | |
| JSR 356 | Java API for Websocket 1.0 | Yes | No |
| JSR 353 | Java API for JSON Processing 1.0 (JSON-P) | No | Yes, eg JSON-P reference implementation |
| JSR 318 | Interceptors 1.2 | No | Yes as part of a CDI implementation |
1.3.2 Jetty EE 6 Web Profile
下面介绍JavaEE6 Web Profile,以及与Jetty的关系表格 1.3. Java EE 6 Web Profile
| JSR | Name | Included with jetty-9.0.x | Pluggable |
|---|---|---|---|
| JSR 315 | Servlet Specification API 3.0 | Yes | |
| JSR 314 | JavaServer Faces 2.0 (JSF) | No | Yes, for example, Mojarra or MyFaces |
| JSR 245 | JavaServer Pages 2.2/Java Expression Language 2.2 (JSP/EL) | Yes | Yes |
| JSR 52 | Java Standard Tag Library 1.2 (JSTL) | Yes | Yes |
| JSR 45 | Debugging Support for Other Languages 1.0 | Yes (via JSP) | Yes (via JSP) |
| JSR 299 | Contexts and Dependency Injection for the Java EE Platform 1.0 (Web Beans) | No | Yes, Weld or OpenWebBeans |
| JSR 330 |
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
