The next version for servlet technology is Servlet 3.0,
which is planned to be released with JEE 6.0 in the last quarter of 2008.
After the release of servlet 2.5 in spetember 2005, this is the new version
with many new features included. Servlet 2.5 is released with JEE 5.0.
Servlet 3.0 is maintained by the JSR 315.
It is already submitted to the sun and started working on completing the specification.
Expected to be released in the later part of 2008.
There is many site already discussing about the new features will be introduced in the servlet 3.0 specification.
This tips will give you an basic idea on list of features in the specification. We will not lookinto details of
the each feature. Used JSR 315 as the reference documentation to write this tips. The following are the
list of new features in servlet 3.0 specification request.
Web framework pluggability
- Almost all of the Java based web frameworks build on top of servlets. Most web frameworks today plugin either through servlets or through web.xml. Annotations to define some of the servlets, listeners, filters will help in making this possible. Programatic access to web.xml and dynamic changes to configuration of a webapp are desired features. This JSR will aim to provide the ability to seamlessly plugin different web frameworks into web appplications
- Annotations – use of annotations for the declarative style of programming
- As part of the EoD effort the goal is to have zero configuration for web applications. The deployment descriptors would be used to override configuration
- Generics – Use generics in the API where possible
- Use of other language enhancements where possible to improve the usability of the API
Async and Comet support
- Non-blocking input – The ability to receive data from a client without blocking if the data is slow arriving
- Non-blocking output – The ability to send data to a client without blocking if the client or network is slow
- Delay request handling – The comet style of Ajax web application can require that a request handling is delayed until either a timeout or an event has occurred. Delaying request handling is also useful if a remote/slow resource must be obtained before servicing the request or if access to a specific resource needs to be throttled to prevent too many simultaneous accesses
- Delay response close – The comet style of Ajax web application can require that a response is held open to allow additional data to be sent when asynchronous events occur
- Blocking – Non-blocking notification – The ability to notify push blocking or non-blocking events. Channels concept – The ability to subscribe to a channel and get asyncronous events from that channel. This implies being able to create, subscribe, unsubscribe and also apply some security restriction on who can join and who cannot
- Ability to login / logout
- Self registration
- Alignment / requirements from REST JSR (JSR 311)
- Alignment / requirements from JSF 2.0 JSR
- Better welcome file support
- ServletContextListener ordering
- Container wide definition for init params
- File upload – progress listener – where to store interim and final file
- Clarifications of thread-safety issues