My current mode of working with Java is very much as a desktop application programming language. When I need to develop a web application I tend to think PHP with a cool framework (like Qcodo) to keep it well designed and organized. But I long for one platform that can do it all, and while I know that Java can fill that void, I have always found Java to be cumbersome as a web application language.
In my research I have heard a lot of buzz about the stack of Java with Hibernate, Spring and Struts, but I cannot honestly say I understand each framework's role in implementing a web app. Could someone please help me clarify the role of Struts in web applications?