StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. Application & Data
  3. Platform as a Service
  4. Web Servers
  5. Jetty vs Undertow

Jetty vs Undertow

OverviewComparisonAlternatives

Overview

Jetty
Jetty
Stacks510
Followers311
Votes47
Undertow
Undertow
Stacks49
Followers94
Votes5

Jetty vs Undertow: What are the differences?

Introduction

Jetty and Undertow are both web servers and servlet containers that are commonly used in Java web applications. While they serve similar functions, there are some key differences between the two.

  1. 1. Performance and Resource Usage: Jetty and Undertow differ in terms of performance and resource usage. Jetty is known for its faster throughput and lower latency, making it a suitable choice for high-performance applications. On the other hand, Undertow is designed to be lightweight and efficient, consuming less memory and CPU resources. This makes Undertow ideal for resource-constrained environments or deployments with limited resources.

  2. 2. Configuration and Embeddability: Jetty and Undertow offer different approaches to configuration and embeddability. Jetty has a centralized XML configuration file that allows fine-grained control over various settings. It is highly configurable and supports a wide range of extensions and modules. Undertow, on the other hand, follows a programmatic configuration approach, making it easier to embed and configure within applications. This makes Undertow a good choice for microservices-based architectures where embedding the server within the application is desirable.

  3. 3. WebSocket Support: Both Jetty and Undertow provide support for WebSockets, but there are some differences in their implementations. Jetty's WebSocket implementation is based on the JSR 356 standard, providing a high-level API and various useful features out-of-the-box. Undertow, on the other hand, uses its own WebSocket implementation, which is known for its scalability and low overhead. The choice between Jetty and Undertow in terms of WebSocket support depends on specific use cases and requirements.

  4. 4. Servlet API Compatibility: Jetty and Undertow have different levels of compatibility with the Servlet API. Jetty has a long history and robust support for the Servlet API, making it compatible with a wide range of Java EE specifications. It offers comprehensive support for servlets, filters, listeners, and other servlet-related features. Undertow, although fully compliant with the Servlet API, focuses more on the core functionalities and might not provide all the advanced features and extensions that Jetty offers.

  5. 5. Community and Ecosystem: Jetty and Undertow have distinct communities and ecosystems surrounding them. Jetty has been around for a longer time and has a larger and more mature ecosystem, with a wide range of extensions, plugins, and community support available. It has a well-established user base and is widely adopted in various industries. Undertow, being relatively newer, has a smaller but growing community. However, it benefits from being part of the larger JBoss and Wildfly ecosystem, which provides additional libraries and components.

  6. 6. Documentation and Learning Curve: The availability of documentation and the learning curve can also differ between Jetty and Undertow. Jetty has comprehensive and well-documented guides, tutorials, and examples, making it easier for developers to get started and find solutions to common problems. Undertow, while having good documentation, might not have the same breadth of resources as Jetty. However, its simpler configuration and embeddability approach can make the learning curve less steep for developers new to web server configurations.

In summary, Jetty and Undertow differ in terms of their performance, resource usage, configuration, embeddability, WebSocket support, Servlet API compatibility, community and ecosystem, as well as documentation and learning curve. The choice between the two depends on specific use cases, requirements, and familiarity with the respective technologies.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Detailed Comparison

Jetty
Jetty
Undertow
Undertow

Jetty is used in a wide variety of projects and products, both in development and production. Jetty can be easily embedded in devices, tools, frameworks, application servers, and clusters. See the Jetty Powered page for more uses of Jetty.

It is a flexible performant web server written in java, providing both blocking and non-blocking API’s based on NIO. It has a composition based architecture that allows you to build a web server by combining small single purpose handlers. The gives you the flexibility to choose between a full Java EE servlet 4.0 container, or a low level non-blocking handler, to anything in between.

Full-featured and standards-based; Open source and commercially usable; Flexible and extensible; Small footprint; Embeddable; Asynchronous; Enterprise scalable; Dual licensed under Apache and Eclipse
Flexible Web Server; composition based architecture
Statistics
Stacks
510
Stacks
49
Followers
311
Followers
94
Votes
47
Votes
5
Pros & Cons
Pros
  • 15
    Lightweight
  • 10
    Very fast
  • 10
    Embeddable
  • 6
    Scalable
  • 6
    Very thin
Cons
  • 0
    Student
Pros
  • 4
    Performance
  • 1
    Lower footprint
Cons
  • 1
    Smaller community
  • 1
    Less known
Integrations
No integrations available
Spring Boot
Spring Boot
Wildfly
Wildfly

What are some alternatives to Jetty, Undertow?

NGINX

NGINX

nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev. According to Netcraft nginx served or proxied 30.46% of the top million busiest sites in Jan 2018.

Apache HTTP Server

Apache HTTP Server

The Apache HTTP Server is a powerful and flexible HTTP/1.1 compliant web server. Originally designed as a replacement for the NCSA HTTP Server, it has grown to be the most popular web server on the Internet.

Unicorn

Unicorn

Unicorn is an HTTP server for Rack applications designed to only serve fast clients on low-latency, high-bandwidth connections and take advantage of features in Unix/Unix-like kernels. Slow clients should only be served by placing a reverse proxy capable of fully buffering both the the request and response in between Unicorn and slow clients.

Microsoft IIS

Microsoft IIS

Internet Information Services (IIS) for Windows Server is a flexible, secure and manageable Web server for hosting anything on the Web. From media streaming to web applications, IIS's scalable and open architecture is ready to handle the most demanding tasks.

Apache Tomcat

Apache Tomcat

Apache Tomcat powers numerous large-scale, mission-critical web applications across a diverse range of industries and organizations.

Passenger

Passenger

Phusion Passenger is a web server and application server, designed to be fast, robust and lightweight. It takes a lot of complexity out of deploying web apps, adds powerful enterprise-grade features that are useful in production, and makes administration much easier and less complex.

Gunicorn

Gunicorn

Gunicorn is a pre-fork worker model ported from Ruby's Unicorn project. The Gunicorn server is broadly compatible with various web frameworks, simply implemented, light on server resources, and fairly speedy.

lighttpd

lighttpd

lighttpd has a very low memory footprint compared to other webservers and takes care of cpu-load. Its advanced feature-set (FastCGI, CGI, Auth, Output-Compression, URL-Rewriting and many more) make lighttpd the perfect webserver-software for every server that suffers load problems.

Swoole

Swoole

It is an open source high-performance network framework using an event-driven, asynchronous, non-blocking I/O model which makes it scalable and efficient.

Puma

Puma

Unlike other Ruby Webservers, Puma was built for speed and parallelism. Puma is a small library that provides a very fast and concurrent HTTP 1.1 server for Ruby web applications.

Related Comparisons

Bootstrap
Materialize

Bootstrap vs Materialize

Laravel
Django

Django vs Laravel vs Node.js

Bootstrap
Foundation

Bootstrap vs Foundation vs Material UI

Node.js
Spring Boot

Node.js vs Spring-Boot

Liquibase
Flyway

Flyway vs Liquibase