This article helps you understand all major versions of Java Servlet technology with important changes in each version.

Java Servlet is a technology that allows programmers to create dynamic websites using Java programming language. A servlet is a server-side component that can receive requests from clients, interact with other business components, and send responses back to the clients.

Since its first announcement in 1996, Java Servlet has become the foundational technology of Java web application development stack. The following table provides an overview of the history of Java Servlet in terms of Java Servlet API specification versions and the corresponding Java EE platform.

 

Java Servlet Version History:

 

 

Java Servlet Version

 

 

Release Time

 

 

Java EE Platform

 

 

Java Servlet 1.0

 

 

December 1996

 

 

 

Java Servlet 2.0

 

 

December 1997

 

 

 

Java Servlet 2.1

 

 

November 1998

 

 

 

Java Servlet 2.2

 

 

August 1999

 

 

J2EE 1.2

 

 

Java Servlet 2.3

 

 

August 2001

 

 

J2EE 1.3

 

 

Java Servlet 2.4

 

 

November 2003

 

 

J2EE 1.4

 

 

Java Servlet 2.5

 

 

September 2005

 

 

Java EE 5

 

 

Java Servlet 3.0

 

 

December 2009

 

 

Java EE 6

 

 

Java Servlet 3.1

 

 

May 2013

 

 

Java EE 7

 

 

Java Servlet 4.0

 

 

September 2017

 

 

Java EE 8

 

 

Java Servlet is part of Java EE. And since Oracle donated the Java EE platform to the Eclipse Foundation at the end of 2017, Java Servlet has been renamed Jakarta Servlet.

 

Notable Changes in Each Release of Java Servlet:

Throughout its history, each release of Java Servlet technology brought significant performance improvements, security updates, and feature enhancements designed to make Java Servlets more powerful and easier to integrate with other enterprise technologies. The following summary gives you



 

Java Servlet 2.0 (December 1997):

  • Introduction: First official release of Java Servlets as part of the Java Enterprise Edition (Java EE).
  • Key Features: Basic request and response handling with GET and POST methods.
 

Java Servlet 2.1 (November 1998):

  • Session Management: Introduction of sessions for user-tracking between requests.
  • Filters: Allowed servlets to be chained for pre-processing of requests and post-processing of responses.
  • Web Application Archive (WAR): Introduced the WAR packaging format for easy deployment of web applications.
 

Java Servlet 2.2 (August 1999):

  • Web Applications: Formalized the concept of a web application as a collection of servlets, HTML pages, and other resources, with a structured directory layout.
  • Security Enhancements: Added declarative security via web.xml descriptor for URL patterns, roles, and HTTP methods.
 

Java Servlet 2.3 (August 2001):

  • Filters: Extended with more flexible request filtering mechanisms, including pre-processing and post-processing of requests and responses.
  • ServletContext Listeners: Introduced the concept of listeners to respond to lifecycle events like session creation and destruction.
  • Asynchronous Request Processing: Limited support for asynchronous request handling was added.
 

Java Servlet 2.4 (November 2003):

  • Alignment with JSP 2.0 and EL 2.0: Improved integration with JSP and Expression Language (EL) technologies.
  • Updated web.xml Schema: Moved to XML Schema-based configuration for web applications, making it easier to validate deployment descriptors.
 

Java Servlet 2.5 (May 2006):

  • Annotations Support: Support for annotations like @WebServlet, @WebFilter, and @WebListener was introduced, reducing reliance on web.xml for configuration.
  • Dependency Injection: Integrated basic dependency injection capabilities from Java EE 5.
  • Enhanced Error Handling: Improved error reporting for servlets and filters.
 

Java Servlet 3.0 (December 2009):

  • Asynchronous Processing: Full support for asynchronous request processing, enabling more scalable handling of long-running operations.
  • Pluggability: Introduced the concept of pluggability for web fragments to simplify modular web application development.
  • Annotations: Extended annotations support, reducing or eliminating the need for configuration in web.xml.
 

Java Servlet 3.1 (May 2013):

  • Non-Blocking I/O: Added support for non-blocking input and output handling via the ServletInputStream and ServletOutputStream classes.
  • Protocol Upgrades: Introduced support for HTTP protocol upgrades, allowing for switching from HTTP/1.1 to WebSockets or other protocols.
 

Java Servlet 4.0 (September 2017):

  • HTTP/2 Support: Introduced support for the HTTP/2 protocol, improving web application performance with multiplexing, server push, and header compression.
  • PushBuilder API: Allows server-side applications to push resources to the client before they are requested, enhancing performance.
  • Servlet Mapping Updates: Improved handling of servlet mappings to support more flexible routing.
 

Learn more about Java Servlet:


About the Author:

is certified Java programmer (SCJP and SCWCD). He began programming with Java back in the days of Java 1.4 and has been passionate about it ever since. You can connect with him on Facebook and watch his Java videos on YouTube.



Add comment