Stable Release in branch 2.3
2.3.6
Released 02 Sep 2019
(6 years ago)
SoftwareJSP/Jakarta Pages
Version2.3
RequirementServlet 3.1
Java EE 7 / Jakarta EE 8
Initial release2.3.0
12 Jan 2013
(13 years ago)
Latest release2.3.6
02 Sep 2019
(6 years ago)
Source codehttps://github.com/jakartaee/pages/tree/2.3.6-RELEASE
Documentationhttps://javadoc.io/doc/jakarta.servlet.jsp/jakarta.servlet.jsp-api/2.3.6/index.html
Downloadhttps://mvnrepository.com/artifact/jakarta.servlet.jsp/jakarta.servlet.jsp-api/2.3.6
JSP/Jakarta Pages 2.3 ReleasesView full list

What Is New in JSP 2.3

JSP 2.3 is a maintenance release that aligns with the Java EE 8 platform. It focuses on minor specification clarifications and introduces a small set of new features to support the evolving web ecosystem.

Category Key Changes
New Features Support for CDI in Expression Language, JSP in WAR files without web.xml
Improvements Clarifications on error handling, JSP document validation
API Updates Alignment with Servlet 4.0 and EL 3.0 APIs
Deprecated No new deprecations in this release

How does JSP 2.3 integrate with CDI?

The biggest change is the formal integration of CDI (Contexts and Dependency Injection) with the JSP Expression Language. This allows you to directly inject CDI-managed beans into your JSP pages using EL.

In practice, this means you can reference @Named beans without any extra configuration. It bridges the gap between the older JSP world and modern Java EE dependency injection patterns, making code cleaner.

Example Usage

<%-- Using a CDI bean in EL --%>
Welcome, ${userManager.currentUser.name}

What changed with deployment descriptors?

JSP 2.3 supports the Servlet 4.0 feature that allows web applications to be deployed entirely without a web.xml deployment descriptor. Metadata-complete is no longer required for this.

This simplifies deployment. You can rely on annotations and default behaviors, reducing boilerplate XML configuration. It's a step towards more modern, annotation-driven development.

Were there any clarifications on error handling?

Yes, the specification provides clearer definitions on how error handling should work, particularly for JSP documents (XML syntax). The rules for what constitutes a fatal translation error versus a recoverable error were tightened up.

This matters because it leads to more consistent behavior across different containers. Developers get more predictable error reporting during the page translation phase, which saves debugging time.

FAQ

Is JSP 2.3 a major rewrite of the technology?
No, it's a maintenance release. The core syntax and lifecycle remain unchanged. The updates are focused on alignment with other Java EE 8 specs and adding minor features like CDI integration.

Do I need to change my existing JSP 2.2 code to work with 2.3?
No, JSP 2.3 maintains full backward compatibility. Your existing pages will continue to work without any modifications. This release is about addition, not breaking change.

What is the practical benefit of CDI in EL?
It allows for direct injection and use of managed beans in your JSPs, reducing the need for scriptlets or custom taglibs to access application logic. It makes the pages cleaner and more maintainable.

Does this mean I can finally stop using web.xml?
For many applications, yes. If your configuration relies on annotations and defaults, JSP 2.3 and Servlet 4.0 allow you to deploy a WAR file without a web.xml descriptor.

Where can I find the official specification document?
The complete Jakarta Server Pages 2.3 Specification is available for reference at the Jakarta EE website.

Releases In Branch 2.3

VersionRelease date
2.3.602 Sep 2019
(6 years ago)
2.3.523 Jan 2019
(7 years ago)
2.3.410 Jan 2019
(7 years ago)
2.3.301 Aug 2018
(8 years ago)
2.3.2-b0211 Sep 2015
(10 years ago)
2.3.2-b0128 May 2014
(12 years ago)
2.3.101 Apr 2013
(13 years ago)
2.3.012 Jan 2013
(13 years ago)