2.3.6

Latest release in branch 2.3
Released 6 years ago (September 02, 2019)

Software JSP/Jakarta
Branch 2.3
First official release version 2.3.0
First official release date 13 years ago (January 12, 2013)
Source code https://github.com/jakartaee/pages/tree/2.3.6-RELEASE
Documentation https://javadoc.io/doc/jakarta.servlet.jsp/jakarta.servlet.jsp-api/2.3.6/index.html
Download https://mvnrepository.com/artifact/jakarta.servlet.jsp/jakarta.servlet.jsp-api/2.3.6
JSP/Jakarta 2.3 Releases View 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

Version Release date
2.3.6 6 years ago
(September 02, 2019)
2.3.5 7 years ago
(January 23, 2019)
2.3.4 7 years ago
(January 10, 2019)
2.3.3 7 years ago
(August 01, 2018)
2.3.2-b02 10 years ago
(September 11, 2015)
2.3.2-b01 11 years ago
(May 28, 2014)
2.3.1 13 years ago
(April 01, 2013)
2.3.0 13 years ago
(January 12, 2013)