Servlet 3.0: I'm just not that into you
The JC"P" has cleaned up the Servlet 3.0 spec, and there are definitely some improvements and some neat things. The problem is, the Servlet spec well has been poisoned.
The fact of the matter is JSR-311 (JAX-RS) is what "Servlet" should have turned into a long time ago. The "Servlet" concept lost its focus when it ceased to be a protocol agnostic [filter chain|endpoint processor] specification. The fact of the matter is, the "real" servlet specification is now living in Apache Mina, which is... wait for it... a protocol agnostic filter chain and endpoint processor. The mingling of the HTTP Servlet and Servlet specs has just led to general ugliness for years now. I will say, JAX-RS + JPA + Insert templating system of choice is RoR for Java.
The new Servlet spec includes some great stuff -- config snippets (which I was actually just now implementing as a build time option for GWT-Maven), AsyncContext, new Classpath handling (shut up OSGi people), and guess what, annotations. The thing is, all of this, with the possible exception of Async, is moot at this point. Servlet 3.0 is no EJB 3.0, and the interesting work is still happening in the outlier specs and stuff like the Atmosphere API.







