Sean Kelly, from NASA's Jet Propulsion Laboratory (no, not Sean Kelly of cycling fame), has a funny screencast comparing web application frameworks. While there is a clear bias toward Python and Zope (the JPL used Plone for the Mars Rover Site), it is good entertainment mixed in with some very valid points. So, if you like Python, or if you like Java and have thick skin, it is worth a look. It reminds me of my days back in college trying (fruitlessly) to make the case for IBM PC DOS over my roommate's Mac 512. Hearing myself say "C Colon Backslash Data Backslash ... Backslash ... Backslash," I knew that every "Backslash" was a another hole in my argument.
Similarly, Java is not as efficient as many of the newer frameworks. Moving most of the code into XML configuration files has not really solved the problem, just moved it. Sean calls all the XML work that you need to do with Java nowadays "XML Situps." I am not a total Java basher. But I do think that Sean raises an excellent point: if you want fast turn around in your development cycle (code, review, fix), which is what is good for web application development, an interpreted scripting language gives you an edge over a compiled language.
Noticeably absent from this comparison is anything from the PHP world. Sean just reviews J2EE, Ruby on Rails, Zope (Plone), Django, and TurboGears. We have a couple of project teams using the Symfony framework and they love it.