This document summarizes the current implementation state of the new features of the Servlet 2.3 draft specification in Catalina. To give a quick synopsis of the completion state of each new feature, we're using a "how would you like your steak" metaphor. Apologies to all the vegetarians out there!
You can now register event listeners in the web.xml file that receive notification when the following events occur:
Application listener functionality has been added to Catalina, and seems to work fairly well. There are two listeners in the "examples" web application that simply log things with ServletContext.log() to show that they were reached.
You can now register Filters in the web.xml file that are the application level analogue to Valves in the Catalina core. Filters have the following general features:
Related to this, servlets can now do the same sort of wrapping when they pass arguments to a RequestDispatcher. Previously, you were required to pass the original request and response objects received from the container.
Servlet filter functionality has been added to Catalina, and lightly tested, although wrapping has not been thoroughly tested yet. There is a filter in the "examples" application that is set up as both path mapped and servlet mapped to the invoker servlet ("/servlet/*"), which stores a request attribute that is passed on to the servlet that is ultimately executed.
Web applications, or the JAR files in the WEB-INF/lib directory, can now declare their dependence on particular versions of external libraries that may be provided by the container as shared extensions. No work has been done to implement this capability in Catalina yet.
Catalina now supports mapping Locales to character sets, and the new setCharacterEncoding() method on ServletRequest. Much more testing and enhancement is needed in this area.
Section 9.6.2 of the Servlet Spec draft describes requirements and suggestions related to the classloader provided to a web application. These requirments are currently followed in Catalina.
An unofficial version of the DTD for parsing web.xml files is included in Catalina (in the source repository it is at "catalina/src/conf/web_23.dtd"). It will be replaced by the official version when published.