Anything .NET can suck at Java can suck at worse
I am not a big fan of .NET Web Forms, and as a Java developer I am fortunate to never be forced to work with it. Well this was true until I was asked to make code changes to a JSF application at work. JSF and Web Forms are both event driven web frameworks that store user state on the page. When a click on the page occurs it submits the users previous state and calls the event mapped to the click that was made on the page. The idea of both are to create a web page that interacts like a native desktop application, with the exception of the lengthy and obvious page refresh between clicks. The idea behind Web Forms when it was released was to take the large pool of Microsoft desktop developers and easily transition to web developers. From what I have read about JSF, it was modeled after component architecture of AWT. The only difference is that I would say there is not as large of a pool of Java GUI developers as Microsoft had. Most of the time you will hear me talk up Java and its frameworks in comparison to Microsoft; when comparing event driven frameworks I am going to say that Microsoft wins simply for the development experience. This most likely has a lot to do with Visual Studio and the framework being developed together as a pair where Java develops these items as isolated projects.