I just noticed this question by mrblah at Stack Overflow:

I want to learn, at least at a basic level, how to build java web applications (coming from a .net background).

Meaning, I would like to be able to build, deploy a simple cms type application from the ground up.

What exactly do I need to learn?

Tomcat seems to be a good web server for Java.

What options are there for the web? I know there is hibernate for an ORM.

Does java have MVC? what about JSP? can MVC and JSP be together? beans?

Maybe a book that covers all of these?

And an answer popped into my head:

I consider most of the traditional Java web development options to be pretty heavy-weight, and there some good alternatives:

  • Play is an MVC framework which is focused on being lightweight, straightforward, and enabling rapid development — while sticking with pure Java, as opposed to a more dynamic JVM-based language. It’s fairly new but already impressive, and a good community has built up around it quickly.

  • Grails is an MVC framework, inspired by Ruby on Rails, which is written in, and uses, Groovy, a Java-based scripting language. Grails is mature, robust, and widely respected, with a strong community. Groovy is basically a superset of Java, with better syntax and some great features such as closures, so learning it is a great way to learn Java.

  • If you need/want to build RESTful web sites/services/applications, Restlet is a fantastic framework — I’m a big fan. It’s simple, straightforward, and yet flexible. Great community too.

  • Google’s App Engine is an interesting option as well. It’s hosted, which may or may not be of interest, but it has a fairly simple API, and a good SDK.

I’m sure there are others, but these are the ones I can think of off the top of my head.

Good luck, and have fun!