Jetty Logo
Version: 9.3.1-SNAPSHOT
Contact the core Jetty developers at

private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services from 1 day to full product delivery

Jetty : The Definitive Reference

Revision History
Revision 9.3.1-SNAPSHOT2015-11-30 01:00:34

This documentation is produced and contributed to under the EPL.

Table of Contents

I. Getting Started With Jetty
1. Introducing Jetty
What is Jetty?
What Version Do I Use?
Jetty and Java EE Web Profile
2. Using Jetty Introduction
Downloading Jetty
Running Jetty
Deploying Web Applications
Finding Jetty in Maven
3. Jetty Configuration Introduction
How to Configure Jetty
What to Configure in Jetty
II. Jetty Configuration
4. Deploying to Jetty
Anatomy of a Web Application
Automatic Web Application Deployment
Configuring a Specific Web Application Deployment
Deployment Processing of WebAppContexts
Configuring Static Content Deployment
Hot Deployment
Deployment Architecture
Quickstart Webapps
Overlay WebApp Deployer
5. Configuring Contexts
Setting a Context Path
Configuring Virtual Hosts
Temporary Directories
Serving a WebApp from a Particular Port/Connector
Creating Custom Error Pages
Setting Max Form Size
6. Configuring Jetty Connectors
Connector Configuration Overview
Configuring SSL/TLS
Setting Port 80 Access for a Non-Root User
7. Configuring Security
Using the ${jetty.home} and ${jetty.base} Concepts to Configure Security
Limiting Form Content
Aliased Files and Symbolic links
Secure Password Obfuscation
JAAS Support
Spnego Support
8. Configuring JSP Support
Configuring JSP
III. Jetty Administration Guide
9. Starting Jetty
Startup Overview
Managing Server Classpath
Managing Startup Modules
Managing Jetty Base and Jetty Home
Using start.jar
Startup a Unix Service using
Startup via Windows Service
10. Session Management
Setting Session Characteristics
Using Persistent Sessions
Session Clustering with a Database
Session Clustering with MongoDB
Session Clustering with Infinispan
Session Clustering with Google Cloud Datastore
11. Configuring JNDI
Quick Setup
Working with Jetty JNDI
Configuring JNDI
Using JNDI with Jetty Embedded
Datasource Examples
12. Annotations
Quick Setup
Working with Annotations
Using Annotations with Jetty Embedded
13. JMX
Using Java Management Extensions (JMX)
Jetty JConsole
Jetty JMX Annotations
14. ALPN
15. HTTP/2
Introducing HTTP/2
Enabling HTTP/2
Configuring HTTP/2
Configuring HTTP/2 Push
Configuring HAProxy and Jetty
16. FastCGI Support
FastCGI Introduction
Configuring Jetty for FastCGI
17. Provided Servlets, Filters, and Handlers
Default Servlet
Proxy Servlet
Balancer Servlet
CGI Servlet
Quality of Service Filter
Denial of Service Filter
Gzip Handler
Cross Origin Filter
Resource Handler
Debug Handler
Statistics Handler
IP Access Handler
Moved Context Handler
Shutdown Handler
Default Handler
Error Handler
Rewrite Handler
18. Jetty Runner
Use Jetty without an installed distribution
19. Optimizing Jetty
Garbage Collection
High Load
Limiting Load
20. Jetty Logging
Configuring Jetty Logging
Default Logging with Jetty's StdErrLog
Configuring Jetty Request Logs
Example: Logging with Apache Log4j
Example: Logging with Java's java.util.logging via Slf4j
Example: Logging with Java's java.util.logging via JavaUtilLog
Example: Logging with Logback
Example: Capturing Multiple Logging Frameworks with Slf4j
Example: Centralized Logging with Logback
Jetty Dump Tool
IV. Jetty Development Guide
21. Maven and Jetty
Using Maven
Configuring the Jetty Maven Plugin
Files Scanned by the Jetty Maven Plugin
Jetty Jspc Maven Plugin
22. Using Ant with Jetty
Using the Ant Jetty Plugin
23. Handlers
Writing Custom Handlers
24. Embedding
Jetty Embedded HelloWorld
Embedding Jetty
Embedded Examples
25. Debugging
Enable remote debugging
Debugging With Eclipse
Debugging With IntelliJ
26. Frameworks
Spring Setup
27. HTTP Client
API Usage
Other Features
28. WebSocket Introduction
What Jetty provides
WebSocket APIs
Enabling WebSocket
29. Jetty Websocket API
Jetty WebSocket API Usage
WebSocket Events
WebSocket Session
Send Messages to Remote Endpoint
Using WebSocket Annotations
Using WebSocketListener
Using the WebSocketAdapter
Jetty WebSocket Server API
Jetty WebSocket Client API
30. Java Websocket API
Java WebSocket Client API Usage
Java WebSocket Server API
V. Reference Guide
31. Platforms, Stacks and Alternative Distributions
Many many options...
Amazon Elastic Beanstalk
32. Architecture
Jetty Architecture
Jetty Classloading
Managing 1xx Responses
Creating a Custom Protocol
33. Contributing to Jetty
Source Control and Building
Coding Standards
Issues, Features, and Bugs
Contributing Patches
Releasing Jetty
Testing a Jetty Release
34. Reference Section
Jetty XML Syntax
Jetty XML Usage
Jetty override-web.xml
35. Troubleshooting
Troubleshooting Zip Exceptions
Troubleshooting Locked Files on Windows
Preventing Memory Leaks
Jetty Security Reports
Troubleshooting Slow Deployment

List of Tables

1.1. Jetty Versions
1.2. JavaEE7 Web Profile
1.3. Java EE 6 Web Profile
2.1. Contents
4.1. Default Configuration classes
4.2. JNDI Configuration classes
4.3. Annotation Configuration classes
6.1. Connector Configuration
8.1. Understanding Apache JspServlet Parameters
8.2. Understanding Glassfish JSP Parameters
10.1. Init Parameters
10.2. Default Values for Session Id Table
10.3. Default Values for Session Table
11.1. DataSource Declaration Conventions
14.1. ALPN vs. OpenJDK versions
15.1. HTTP/2 Configuration Properties
20.1. Slf4j Logging Grid
26.1. Bundle Name Mapping
26.2. Jars Required for JSP
26.3. Jars Required for Glassfish JSTL
26.4. Jars Required for Apache JSTL
26.5. Jars Required for Annotations
26.6. Extra Jars Required for Websocket
28.1. WebSocket connection states
32.1. Default System Classes
32.2. Default Server Classes
35.1. Resolved Issues

List of Examples

Client Example.
Server Example.
29.1. Send Binary Message (Blocking)
29.2. Send Text Message (Blocking)
29.3. Send Partial Binary Message (Blocking)
29.4. Send Partial Text Message (Blocking)
29.5. Send Ping Control Frame (Blocking)
29.6. Send Pong Control Frame (Blocking)
29.7. Send Binary Message (Async Simple)
29.8. Send Binary Message (Async, Wait Till Success)
29.9. Send Binary Message (Async, timeout of send)
29.10. Send Text Message (Async Simple)
29.11. Send Text Message (Async, Wait Till Success)
29.12. Send Text Message (Async, timeout of send)

See an error or something missing? Contribute to this documentation at Github!(Generated: 2015-11-30T01:01:54+00:00)