Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.
If this question can be reworded to fit the rules in the help center, please edit the question.

I've had surprising success using Drupal as a web app framework. It's highly extensible - pretty much every default behaviour can be overridden easily via modules, and it's a pretty blank slate to start with as well.

I have been using Struts from Jakarta (Apache group) for java, and it's really good. Good separation of the layers, which allows you use any othe library/framework in any layer, for example Hibernate for object-relational mapping or even any template framework like Velocity in the view layer.

ASP.NET MVC will probably be the de facto standard on the .NET platform. Also, MonoRail has been around for quite a while and still doesn't support caching. It seems like a very difficult thing to do, and is a major drawback if you ask me.

If we're talking "Best" I'm throwing in Sinatra for Ruby and Nancy for .Net. Based 100% on my subjective opinion and personal preferences. They are my best based on their ease of use and "happiness factor".