Spring MVC - Java Web Framework
After more than 10 years since its first release, Spring MVC framework is still ahead of the competition. With the passage of time, it expanded to embrace a complete MVC framework and kept evolving to turn into a full-scale Java framework. Designed as a layered J2EE/Java framework which integrates specially applied sciences, the framework is widely accredited in offering the software engineers a complete toolkit for web application configuration, application development and for security projects. Known for its well-developed ecosystem, it offers a number of add-ons to choose from, right from SOAP web services, REST APIs to security encryption and authorization.
Lightweight container with enhanced modularity
Can be deployed across various platforms
Flexible Dependency Injection use
3-way Configuration including XML, Java and annotation config
Eased injection to test data via POJO’s
Comes with a steep learning curve
Bit difficult to implement for a novice
Spring applications take the time to deploy than JEE applications.
JSF - Java Web Framework
Oracle supported JSF is a net utility Java framework intended to ease development integration of the web based UI. Although this framework is not the best in the world in terms of quick Java development it is easy to utilize as the documentation is offered by Oracle. It is a standardized display technology that boasts of rich tools and libraries which let you pave through even in the high complexity of an application. JSF specification lets you enable reuse and extension of the standard user interface components. It reduces the pains to create and maintain applications that run on the Java application server and renders application UI on a target client. Not only this, it offers easy data transfers and provides reusable UI components.
More productive and consistent thanks to its ability to create reusable components
Great vendors (IBM, Oracle, JBoss, etc.) backing the JSF implementation like EJB
Ready to use components like Apache, Infragistics, Richfaces, etc.
Convenient for developers, especially those who use the IDE software
Disadvantages of JSF
Steep learning curve
Bookmarking facility is not considered
Primitive Ajax support
Broad to comprehend without prior Java web development experience and skills
Google Web Toolkit - Java Web Framework
Easier to learn
Built in IDE support to refactor Java code
Let’s you build responsive web applications with heavy lifting on the client-side and reduced chattiness with the server-side
Smooth migration from a typical web application to a GWT application iteratively
Comes with built-in browser back button support even while using AJAX
Advantageous only for the Java developers. Developers with PHP or .NET background have nothing new to learn
With a number of versions around, hard to get all functions and interfaces, thanks to fast evolving GWT
Slow compilation and requires the use of proprietary method to define structure
Grails - Java Web Framework
Grails is an Open Source Java Web Framework meant to multiply the productivity of the developer with opinionated, sensible defaults and Convention-over-Configuration APIs. It smoothly integrates with the Java Virtual Machine (JVM) enabling you to be immediately productive whilst offering powerful features that include Compile-time meta-programming, asynchronous programming, and domain-specific languages. Grails come updated with powerful view technology, integrated NoSQL / ORM support, plugins and Spring-powered dependency injection. You can easily integrate and interoperate Java, Java EE, and JVM containers.
Grails offer a quick development cycle
Ideal for small-size and medium project dealings
Variety of plugins to choose from
Easy and impressive documentation
Change configuration without restarting your server
Might get a hard time working with runtime language
GORM might turn problematic if you are working on a multi threaded app
Complicated Integration process
Delayed runtime due to interpreted languages
Struts 2 - Java Web Framework
Apache’s Struts is an open source, free, MVC framework for developing modern Java web applications. It comprises a set of classes and interfaces that work together to develop a base of a web application. It is functional with a net frame for a number of Java applications and is the result of mixed efforts from a number of support communities.
To amplify even more on the Struts Java framework, I thought of sharing the insights about the successor of Struts 1, Struts 2. This framework is best suited for the engineers working to develop contemporary Java EE web apps. With Struts 2, the Apache Software Foundation has enabled the developers with an amazing tool for developing web-facing, enterprise-ready applications and optimizing the entire development process from beginning to the end and even the after go-live maintenance. If you work tirelessly hard over high-load systems like broadcasting portals, this is a perfect choice for you.
No thread-safety issues
Dependency Injection leads to simpler testing
It can use "Object Graph Navigation Language" (OGNL)
Servlet contexts of Struts 2 framework are represented as simple Maps
It supports manual validation via the validate method and also contain the Sub Framework validation
Difficult to perform migration as it is completely different from Struts 1
Struts 2 comes with a very limited documentation
New users might find it little difficult due to it’s poorly managed documentation