When it comes to developing web applications using Java, writing all the code from scratch has its advantages if you’re trying to master a new technology, but for real life web applications, you have to go for a framework as many expert developers would agree. Otherwise you risk a great deal of failure because of having allocated too much time and too many resources by re-inventing the wheels.
[adsenseyu1]
There are some hardliners who still argue why there’s ever a need for a framework, since everything can be accomplished by Servlets, JSP and Filters. One of them is Bear Bibeault author of JQuery in Action.
-Adeel Ansari
The cost is an important factor—although « free » in most cases also means widespread usage, community support, and no dependence on a single vendor. It takes some time for developers to get used to a framework and be good at it. Therefore choosing a framework as a long-term strategy. You cannot be switching frameworks for every project. Sticking with one framework also helps as once the expertise in that framework builds up; customizing the framework also becomes a possibility.
A tempting option is for organizations to build their own framework to address needs specific to the kind of work the organization undertakes. Although it does seam seem to make sense on paper, for my money, this is a suicidal strategy. Thoroughly testing and maintaining a framework is a huge task that will need dedicated human resources. These few people would become critical and the only source of support for others using that framework. Also, with so many quality frameworks available for free, I seriously doubt it really is necessary.
As with many web frameworks emerging nowadays, the ever-increasing number of Java web application frameworks out there today is intimidating for many developers even to look into because of being presented with too many choices. However, matching the criteria of popularity, widespread usage and tooling support, I can list a few of the best Java web application frameworks here and in a descending order of my personal choice. Sorry if I haven’t listed your favorite Java web framework here, feel free to agree or disagree in the comments section.
- Struts (2)
- Wicket
- Spring
- JSF
- Seam
[adsenseyu1]
Struts 2
Struts 1.x was the first most popular and widely accepted web framework for Java, because of the way it handled the MVC model 2 paradigm and its action-based architecture. It was an elegant framework that handled the flow of application and a lot of other routine tasks. Another advantage of using Struts was an incredibly growing number of developers preferred it as a de-facto J2EE standard. Many of the popular Java IDEs also provided tools for Struts development, making life even easier for the programmers. Even today IDEs like NetBeans and JBoss Developer Studio have built-in support for Struts 1.
When it comes to developing web applications using Java, writing all the code from scratch has its advantages if you’re trying to master a new technology, but for real life web applications, you have to go for a framework as many expert developers would agree. Otherwise you risk a great deal of failure because of having allocated too much time and too many resources by re-inventing the wheels.
[adsenseyu1]
There are some hardliners who still argue why there’s ever a need for a framework, since everything can be accomplished by Servlets, JSP and Filters. One of them is Bear Bibeault author of JQuery in Action.
-Adeel Ansari
The cost is an important factor—although « free » in most cases also means widespread usage, community support, and no dependence on a single vendor. It takes some time for developers to get used to a framework and be good at it. Therefore choosing a framework as a long-term strategy. You cannot be switching frameworks for every project. Sticking with one framework also helps as once the expertise in that framework builds up; customizing the framework also becomes a possibility.
A tempting option is for organizations to build their own framework to address needs specific to the kind of work the organization undertakes. Although it does seam seem to make sense on paper, for my money, this is a suicidal strategy. Thoroughly testing and maintaining a framework is a huge task that will need dedicated human resources. These few people would become critical and the only source of support for others using that framework. Also, with so many quality frameworks available for free, I seriously doubt it really is necessary.
As with many web frameworks emerging nowadays, the ever-increasing number of Java web application frameworks out there today is intimidating for many developers even to look into because of being presented with too many choices. However, matching the criteria of popularity, widespread usage and tooling support, I can list a few of the best Java web application frameworks here and in a descending order of my personal choice. Sorry if I haven’t listed your favorite Java web framework here, feel free to agree or disagree in the comments section.
- Struts (2)
- Wicket
- Spring
- JSF
- Seam
[adsenseyu1]
Struts 2
Struts 1.x was the first most popular and widely accepted web framework for Java, because of the way it handled the MVC model 2 paradigm and its action-based architecture. It was an elegant framework that handled the flow of application and a lot of other routine tasks. Another advantage of using Struts was an incredibly growing number of developers preferred it as a de-facto J2EE standard. Many of the popular Java IDEs also provided tools for Struts development, making life even easier for the programmers. Even today IDEs like NetBeans and JBoss Developer Studio have built-in support for Struts 1.
Spring MVC
Struts (1 & 2)
Wicket
JSF
Seam


Can you please include Apache Click into this mix? It is an older project under active development, has excellent documentation, very mature, extremely fast and also a part of the Apache project.
Interesting list. I’m a little surprised that:
1. Seam made the list
2. JavaEE6 did not
Still, an overall good blog post! If you don’t mind, I would like to reference this blog post in my blog.
Java EE 6 itself is not a framework, but a platform, for your information. Many features of Java EE 6, notably JSF 2 were inspired from what was achieved in JBoss Seam.
The article was originally intended mainly for tech executives who need advice for making quick yet well fitting decisions without having to spend hours and days to make a choice for a framework from dozens of options (if not hundreds).
Popularity is a major criterion here, so that in the event of one or more developers suddenly quit a project, some valid replacements can be made without having to delay the project until the newcomers master the otherwise niche frameworks.
Consider Play! framework.
Yeah, I heard about the Play framework, too. I think Packt Publishing has recently released a book about it also.
After years of doing jsp/servlet development mostly using struts 1 and tiles, I ported most of my work to jsf and achieved high-quality products thanks to the wide-range of 3rd party components. Now for a major project, my client demands spring and much of my codebase now in jsf, I’m looking into seam-spring integration to make the best of two worlds.
A great deal of community support is available from both sides.
Spring was recently the most used keyword accompanying java in the search trends recorded by Google. Spring’s AOP and advanced security and Seam’s interoperability along with its compliance with the current Java EE standards can make a very powerful duo, indeed.
Which do you think is better? Spring with JSF or Spring MVC?
In my opinion Seam-Spring integration is the best way to go, but if there’s no choice but a Seam-less scenario, then go for Seam with JSF integration…
Sorry to say so. But as far as I understand the recent articles I read about seam, it is a dead project. At least, there is no more development to make the framework evolve.
I’m afraid you’re right.