For web frameworks, I think it depends on whether you want to do component-based development or request-based development. For component-based development, I'd choose Tapestry over JSF. It's learning curve is a bit steeper b/c you don't get to re-use your JSP knowledge, but it's a API seems cleaner and more intuitive. For request-based development, I'd choose WebWork because it's simple, yet powerful. Spring MVC would be a secondary choice.
For the middle-tier/backend, I'd use Spring and Hibernate or iBATIS. iBATIS works well when you're integrating with an existing database with lots of tables that need to be joined.
Spring Live's Chapter 12 has a web framework comparison between Struts, Spring MVC, WebWork, Tapestry and JSF - as well as explicit examples of how to develop an app with each. ;-)
Originally posted by Matt Raible: For component-based development, I'd choose Tapestry over JSF...For the middle-tier/backend, I'd use Spring and Hibernate or iBATIS.
I have to fully agree with Matt on this one. I'm in the middle of developing my 3rd app with Tapestry in the front, Spring in the middle, and Hibernate in the backend...and it's been nothing but a pleasure.
For grins, I'm about to port one of my smaller Tapestry/Spring/Hibernate apps to have JSF in the front...for educations-sake. But from what I've already done with JSF, I don't anticipate having quite as much fun.
Originally posted by John Freshman: I have heard that Hibernate is known to really bog down e-commerce types sites that have a high volume of users hitting the db. Does anybody have a source reference for benchmarking its performance?
You might want start a brand new topic in the ORM forum instead of drudging up and then hijacking older threads.
Originally posted by Emman lopez: ... standard way to figure out what is the best frameworks combination
This is a great question deserving of more attention in general. It would be nice if there were an ISO, W3, or WS-I guideline for accumulating, assessing and communicating experiential inforation on the frameworks by defining a base infoset and process for ease of collaborative exchange.