Java EE 6 released, including Servlet 3.0

Java EE 6 released, including Servlet 3.0

Today marks the release of Java EE 6. The reference implementation (Glassfish V3) has been released and the specifications are going into their final state very soon.

About two years ago, while I was attending the JavaOne conference, I first heard about the Servlet 3.0 ideas. As a web developer I’ve worked a lot with these Servlets so I was curious about the ideas. But what I saw wasn’t what I hoped for. On the contrary, what I saw was a huge mistake in my opinion!

So I decided to contact the guys behind this JSR, to ask for some more information and share my views. Some time passed but I never got a reply… My next move was just to write about it, first on my own blog, then on DZone (05/30/2008) and on The Server Side a half year later, december 2008.

The only ‘reply’ I got from the people of the JSR was in the days following my (re-)post on The Server Side. Glassfish has a short re-cap on what happened here.

Now that the release is final I’m actually glad with the result. All the issues I raised from the early draft have been fixed. This is what a simple servlet would have looked like in the early draft:

@Servlet(urlMappings={"/foo", "/bar"})
public class MyServlet {
     @GET
     public void handleGet(HttpServletRequest req, HttpServletResponse res) {
          //Handle the GET

     }
}

And this was my suggestion on how to improve it (see second article/link):

@ServletMapping(name="myServlet", mapping={"/foo", "/bar"})
public class MyServlet extends HttpServlet {

     @Override //keep strong typing!

     public void doGet(HttpServletRequest req, HttpServletResponse res) {
          ...
     }
}

And this is from the final release:

@WebServlet(name="myServlet", urlPatterns={"/foo","/bar"})
public class MyServlet extends HttpServlet {

     @Override //keep strong typing!

     public void doGet(HttpServletRequest req, HttpServletResponse res) {
          ...
     }
}

That’s very similair, maybe a little too similair..? But anyway, I’m pleased about the result. It’ll be a lot easier in the future to write Servlets and Filters and a lot of cool new features have been added too.

I love the spec, despite the lack of feedback and replies from the expert group, ignoring all positive feedback and constructive advice. If I now look at the way the annotations turned out its almost identical to my first sketch after their JavaOne presentation in March 2008.