This is a single archived entry from Stefan Tilkov’s blog. For more up-to-date content, check out my author page at INNOQ, which has more information about me and also contains a list of published talks, podcasts, and articles. Or you can check out the full archive.

Java Web Frameworks

Stefan Tilkov,

Dan Diephouse is looking for a Java Web Framework; there’s an excellent list in Brian McCallister’s answer. I’d add Echo2, which is cool if you’re not really looking for a Web framework, but rather for something to build applications that are tunneled through it (it’s an all JavaScript engine, so “View Source” will essentially show you nothing).

Personally, though, I believe I’d skip using a framework altogether, and go with JSPs and one or more hand-coded Servlets — I’ve not seen Java Web Frameworks yet that do not attempt to hide the Web from me.

On August 15, 2007 8:41 AM, Mikael Gueck said:

Hey, if you evaluate frameworks based on how you “like” them instead of listing long-term business requirements, you deserve everything you get.

On August 15, 2007 10:50 AM, Stefan Tilkov said:

Mikael, I agree in principle … though I have to point out that, having done my share of evaluations in the past, they’re often not worth much more than a decision based on personal taste when you look at them half a year later.

On August 15, 2007 11:16 AM, dementian said:

What do you mean by “hiding the web” ?

On August 15, 2007 3:16 PM, Stefan Tilkov said:

Dementian, good question. What I meant is that the goal of most Web frameworks seems to be to ensure that the developer doesn’t have to care about HTML and CSS, URIs, HTTP requests and responses, etc. They try to make Web development appear more or less like stand-alone client application development, e.g. by implementing a session concept. I don’t want a session concept :-)

I want to have to care about those concepts. I’m comfortable with the Web’s abstractions, I just want a framework that exposes them to me in a convenient fashion. The Servlet API doesn’t do a great job, but I don’t see things like Struts or Tapestry improve according to my requirements.

Of course it’s quite likely there’s a Java Web framework out there that I don’t know about that does exactly this - expose HTTP and other Web standards in a convenient manner to Java programmer. If so, I’m happy to learn …

On August 15, 2007 3:35 PM, Pete Lacey said:


I know you know about Restlet because you’ve interviewed Jerome. Why isn’t that the answer here?

On August 15, 2007 4:26 PM, Stefan Tilkov said:

Indeed the Restlet framework is a good candidate, as is any JSR 311 implementation, such as Jersey. I did not single out Restlet because frankly, I still haven’t become familiar enough with it to recommend it; and it’s still too early for JSR 311/Jersey.

Did you implement a non-trivial Web app based on Restlet yet, or know of someone who did? Most of the Web app development in recent times (if it can be called non-trivial, which is questionable) has been done using Rails.

On August 15, 2007 5:34 PM, Mittal said:

well, we have implemented few restlet based web service & webapp’s as clients to those restlet based web services - let me know if you have any questions on those. Though I believe restlet should answer your concern but I dont understand why cant servlet and whatever client that access your servlet addresses your concerns ?

On August 15, 2007 7:48 PM, hughw said:

Hey Stefan — here’s how I do it:

On August 15, 2007 11:25 PM, Keyur Shah said:

I had questioned usage of web frameworks (albeit for RESTful applications) before:

I have continued down the road of servlets + jsps ever since and it has worked out wonderfully well for me.