Foreword
Before Struts existed I wrote an entire Java web application inside a single Servlet method because that is basically how I’d done things in Perl. Back then web apps were simple and the tools were immature. As the web evolved, dozens of Java web frameworks emerged which were all built on the same Servlet foundation. Being over 15 years old, the Servlet foundation is showing its age. The traditional Java web frameworks haven’t kept up with the modern needs for higher developer productivity and emerging web techniques like RESTful JSON services, WebSockets, asset compilers, and reactive architectures.
Play Framework was created to revolutionize Java web application development. Play is built for modern web needs and puts developer productivity at the core of the framework. I love that with Play I just hit Refresh in my browser and I instantly see my changes, whether they’re Java, JavaScript, or CSS. There is no container to redeploy into or restart. If there are compile errors I see them in a helpful way in my browser. Things like testing tools, persistence libraries, JSON support, and other commonly needed pieces come out-of-the-box with Play. By being RESTful by default, supporting push channels, and utilizing non-blocking connections, Play provides a solid foundation for scalable reactive applications.