‘Six’ best web frameworks in Java

A web application framework is a software framework that is designed to support the development of dynamic websites, Web applications and Web services. The framework aims to alleviate the overhead associated with common activities used in Web development. Here is the list of SIX best web frameworks which we are using in Java. Each one has its own advantages.

1. Java Server Faces - JSF

  • From Sun Microsystems
  • Based on Component Centric approach
  • Best Feature : The most using web framework. Because of its component architecture, the developer doesn’t need to mess with writing HTML, JavaScript etc to get rich “AJAX” type of functionality. It also takes care of state and event management. It has very less configuration too.

JavaServer Faces (JSF) is a new standard Java framework for building Web applications. It simplifies development by providing a component-centric approach to developing Java Web user interfaces. JavaServer Faces also appeals to a diverse audience of Java/Web developers. “Corporate developers” and Web designers will find that JSF development can be as simple as dragging and dropping user interface (UI) components onto a page, while “systems developers” will find that the rich and robust JSF API offers them unsurpassed power and programming flexibility. JSF also ensures that applications are well designed with greater maintainability by integrating the well established Model-View-Controller (MVC) design pattern into it’s architecture. Finally, since JSF is a Java standard developed through Java Community Process (JCP), development tools vendors are fully empowered to provide easy to use, visual, and productive develop environments for JavaServer Faces.

2. GWT

  • From Google
  • Based on Widgets
  • Best Feature : Speed development. Easy to develop good, neat and “Browser independent” Ajax applications. Give more stress to pure browser independent ;).

Google Web Toolkit (GWT) is an open source Java software development framework that makes writing AJAX applications like Google Maps and Gmail easy for developers who don’t speak browser quirks as a second language. Writing dynamic web applications today is a tedious and error-prone process; you spend 90% of your time working around subtle incompatibilities between web browsers and platforms, and JavaScript’s lack of modularity makes sharing, testing, and reusing AJAX components difficult and fragile.GWT lets you avoid many of these headaches while offering your users the same dynamic, standards-compliant experience. You write your front end in the Java programming language, and the GWT compiler converts your Java classes to browser-compliant JavaScript and HTML.Project Home and More features

3. Stripes

  • From Mc4j
  • Based on MVC architecture
  • Best Feature: No Configurations ) . Annotation based programming makes coding more interesting and easy.

Stripes is a presentation framework for building web applications using the latest Java technologies. The main driver behind Stripes is that web application development in Java is just too much work! It seems like every existing framework requires gobs of configuration.Project Home and more features

4. Spring MVC

  • From SpringSource
  • Based on MVC architecture
  • Best Feature : Speed development. Now so many Annotations are also included (v2.5). Its from SpringSource and have a good support too. Being a person who likes and works with Spring framework.. I really encouraged by their good and really fast support.

Spring Web MVC is the own web framework of Spring Framework.The Spring MVC Framework’s architecture and design are in such a way that every piece of logic and functionality is highly configurable. Also Spring can integrate effortlessly with other popular Web Frameworks like Struts, WebWork, Java Server Faces and Tapestry. It means that you can even instruct Spring to use any one of the Web Frameworks. More than that Spring is not tightly coupled with Servlets or Jsp to render the View to the Clients. Integration with other View technologies like Velocity, Freemarker, Excel or Pdf is also possible

5. Struts2

  • From Apache
  • Based on MVC architecture
  • Best Feature : No more ActionForms! Use any JavaBean to capture form input or put properties directly on an Action class. Use both binary and String properties! and its enhanced and rich tags

Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applications. The framework is designed to streamline the full development cycle, from building, to deploying, to maintaining applications over time.Project Home and More Features

6. Wicket

  • From Apache
  • Based on Component Centric approach
  • Best Feature : Swing-like OO Component Model. This feature separates Wicket from all other frameworks

With proper mark-up/logic separation, a POJO data model, and a refreshing lack of XML, Apache Wicket makes developing web-apps simple and enjoyable again. Swap the boilerplate, complex debugging and brittle code for powerful, reusable components written with plain Java and HTML.Project Home and More Features here…

Please put your Suggestions and Ratings here and the frameworks which you are used and known as great ones. That will be more helpful to all of us to get the real idea. As we all know the selection is entirely related with the requirement, learning time and the using situation, this post is gives you an idea about the frameworks using nowadays. Its not at all easy to “rate” the Java frameworks and here I am putting this as per my knowledge and the current trends only. I expect your positive and negative suggestions through valuable comments. All the SIX frameworks noted here are excellent ones and do NOT consider the order as a RANK given to them.

Technorati Tags: , , , , , , , ,

35 Responses to “‘Six’ best web frameworks in Java”


  1. 1 Anonymous November 29, 2007 at 8:40 pm

    Your site is not correctly rendered in FF.

  2. 2 Saptarshi November 30, 2007 at 6:14 am

    I would have put that list in the exact same order. Those are my favorite and most used web frameworks as well… Well written!

  3. 3 Lijin November 30, 2007 at 6:22 am

    Thanks Saptarshi..

  4. 4 THANUJ November 30, 2007 at 6:33 am

    You use a Sales Receipt if your customers pay in full at the time they receive your service or product.You don’t have to track how much they owe you.But you will be able to track each sale, calculate its sales tax, and print a receipt for the sale. If customers pay in advance, either in part or in full, you should use a invoice and payment from customer.

    Click on the button “New Receipt” on the main form or button “New” on the Sales Receipts list form.

    In the field Number enter the Receipt number or use the default. This field is a alphanumeric field.

    Each Sales Receipt has the unique number.

    If necessary enter the customer name or job.

    Select a Template

    In the detail area, enter the line items.

    Click on the button “Save” and then print Sales Receipt using button “Print”

    I WANT JAVA CODE FOR THIS ONE.

  5. 5 Unimportant November 30, 2007 at 6:46 am

    Wow, are you seriously suggesting the JSF is the number one Java ‘web framework’!?!?! You seriously have to be joking!? Is this the same JSF that has been a complete nightmare to use without an IDE, and even then the support was so pathetic that no one used it?

    Where are Grails and Tapestry!? How about listing frameworks that don’t try to force you doing things the way their designers assume is best and are simply tools for you to solve problems with?

    I’ll give this one a -1 out of 10.

  6. 6 EG November 30, 2007 at 6:52 am

    For those who don’t know JSF:

    1. JSF is all HTTP POST. Even anchor tags are POST. That’s a deal breaker.
    2. JSF tags generate unwanted/unnecessary HTML tags. You cannot do anything about this. Imagine all of your radio buttons wrapped in TABLE, TR, and TD tags. Another deal breaker.
    3. JSF tags generate unwanted JavaScript. Anchor tags are POST due to the JavaScript. Deal breaker.
    4. JSF tags take away control from you. Deal breaker.
    5. JSF breaks the Back button. Deal breaker.
    6. JSF breaks the Refresh button. Deal breaker.
    7. JSF does not work with query strings due to it being all POST. Deal breaker.
    8. JSF is anti-K.I.S.S. principle. “Hey, let’s use a technology that makes something simple less simple.” Deal breaker. (K.I.S.S. == “Keep it simple, stupid.” ;)
    9. JSF may break your custom JavaScript. Love this.
    10. JSF may break your CSS. You gotta see the HTML ID attributes–they’re ridiculous. Love this one too.
    11. JSF does not work with JSTL. This sucks.

    I could go on. I just finished a nine-month contract using JSF. I will never use JSF again. What a nightmare!

    Java developers who are proponents of JSF are not Web developers. They probably don’t have Web designers on their team. The senior Web designer with whom I worked on that contract complained and complained about the points above. Why would you do that to your Web designer(s)? Why?

    JSF sucks.

  7. 7 Lijin November 30, 2007 at 7:02 am

    Thanks for the comments guys. Lets see what all will be the comments of others :)

  8. 8 Alex November 30, 2007 at 7:19 am

    I would be completely agree if you would reverse the list. For me, wicket is on the first place. Since I’ve started to use it (3-4 projects already), I cannot imagine a simpler and better way to develop web applications. It has many other features, any other framework lacks.

  9. 9 nitinpai November 30, 2007 at 7:26 am

    In my opinion, the term BEST FRAMEWORK cannot be applied for these frameworks. All the above frameworks span different categories. It might be good if you compare frameworks falling within a single category. For example for MVC you can compare Spring MVC and Struts2 but these cannot be compared to GWT since it is an AJAX framework.

    In the end all it depends on what requirement you are facing. The framework which meets all your requirements is the best framework for you. You simply don’t use a framework just because your friend uses it.

  10. 10 Lijin November 30, 2007 at 7:43 am

    @ Alex

    Yea you are right in that matter Alex. I agree that wicket has lots of features that others dont have. If you are a person who likes to code in Pure java, then Wicket is the Best one. Being a person who used this framework [before being an Apache project itself] I know the real advantage of this one… Its really started to increase its popularity too. But here I considered the current popularity also frnd. Thank you very much for your comment

  11. 11 Lijin November 30, 2007 at 7:47 am

    @ NitinPai

    You are right friend. Its all depending on the requirement. Being a Software Developer we know the final decision will be entirely depended on our requirement. Through this post I just want to give the SIX best used featured and used frameworks. If we compare deeply then MVC and Component separation will be good.

    Thanks for your valuable comment frnd.

  12. 12 raveman November 30, 2007 at 7:54 am

    i agree with EG, people that think that JSF is the best have not use it much. I think Spring MVC is the best, because you can control everything and everything is very simple, that is very nice thing after using JSF.

  13. 13 Mateusz November 30, 2007 at 8:45 am

    Hmm nice list but You realy think that Spring MVC is better then lets say Tapestry? Also have You try to use Wicked and then compare it to Tapestry ? Sorry but I just think You put on the list all known frameworks to You and add them some ratings thats all. I do not agree with the list. :(

  14. 14 dabar November 30, 2007 at 9:04 am

    Please post Wicket to the top, because right here on my workstation, with wicket and jetty, i write web applications like swing projects. and even without a drag and drop palette feature in NB, i chunk out more projects than JSF visual in NB. Am on my 3 - 4 project already with wicket. it justs fits in like a glove and stays 100% out of your way in HTML designing

  15. 15 Lijin November 30, 2007 at 9:53 am

    @ Dabar

    Please find the UPDATE part of the blog friend. I know friend, a person who used Wicket once will really like it. After all we all likes to code more in JAVA than mixing up so many things and make it confusing and difficult to understand to others ;)

  16. 16 Kenneth November 30, 2007 at 9:54 am

    I must admit I have not use all but I agree with JSF. Many do complains
    but my team are using it without too much headache.

    We were mainly using Spring and when we got our first order requiring a JEE base application we choose JSF. From our experience it is not so bad and actually we are enjoying using this framework.

  17. 17 Lijin November 30, 2007 at 9:57 am

    @ Kenneth
    Thanks Kenneth.. thats for putting JSF is not bad as some comments says…

  18. 18 Alex November 30, 2007 at 10:13 am

    @Lijin

    “a person who likes to code in Pure java, then Wicket is the Best one”

    - it is the best not only for the person who likes to code pure java. My opinion is that wicket gives you the freedom to integrate easy your application with any third party js libraries:
    For instance, adding a YUI calendar date picker is as simple as:

    DateTextField txtDate = new DateTextField(”date”);
    txtDate.add(new DatePicker());
    add(txtDate);

    It is also great for people who are not afraid of coding javascript (GWT is exactly the opposite). I must say that I love javascript, it is exceptional language, and the combination of Wicket + JS is all I need.

  19. 19 Lijin November 30, 2007 at 10:16 am

    @ Alex :) Thanks for more information frnd

  20. 20 dabar November 30, 2007 at 1:08 pm

    I am not saying JSF is not a good framework. it surely looks promising. My problem with JSF till date is I still dont like the slow response of the JSF Visual builder in Netbeans. It still feels slow. the time Netbeans is spending thinking about how to generate page code, beans and classes to render one Button component that i dragged, i would have written 5 textfields and 2 submits buttons in Wicket by hand and wired them to the appropriate bean :). The day a fully supported Visual drag and drop tool exists for Wicket like JSF today, am sure nobody who has tasted wicket will use JSF again :)

  21. 21 Lijin November 30, 2007 at 1:17 pm

    Correct Dabar. Fully agrees with you. 100% :)

  22. 22 Gregg Bolinger November 30, 2007 at 3:37 pm

    Glad to see Stripes making a list of ‘best web frameworks’!!

  23. 23 zzz November 30, 2007 at 7:11 pm

    “get rich “AJAX” type of functionality”?
    I really don’t think so, It is very hard to wire SUN JSF implementation with AJAX.

  24. 24 Mitch November 30, 2007 at 9:25 pm

    “the time Netbeans is spending thinking about how to generate page code, beans and classes to render one Button component that i dragged, i would have written 5 textfields and 2 submits buttons in Wicket by hand and wired them to the appropriate bean :).”

    Sure, and the time it takes you to write 5 textfields and 2 submit buttons in Wicket by hand and wire them to the appropriate bean, I would have written 10 text fields and 4 submit buttons in Stripes. (Notice the missing wiring of beans).

  25. 25 Nic December 2, 2007 at 3:13 pm

    Nice to see stripes getting some recognition here. If you haven’t tried it, you really should. I think its the best kept secret out there and it really shouldn’t be.

  26. 26 PhilS December 3, 2007 at 11:00 am

    I’ve spent a fair amount of time using/trialling the various Java web frameworks and I can say without a doubt that Stripes is way ahead for the job in hand. Zero/minimal configuration, everything in the right place, enjoyable to use, light-weight and doesn’t tie you down.

  27. 27 Lijin December 3, 2007 at 11:07 am

    Stripes is powerful in the case of binding comes. Its autobinding is very useful for any programmer and also very interesting

  28. 28 raveman December 3, 2007 at 12:35 pm

    I think that some of you dont understand how web framework world works, I for example was very happy with Struts and i felt no need to change it, but in new company we are using SpringMVC. Maybe im wierd, but it all looks the same.

    I think that using/talking/learning about web frameworks that are not popular and might never be used at work is pointless. I only use web frameworks because i get pay for it, at home i prefer to use plain old java. Plus why learn something you might never use? On the list i see only JSF, SpringMVC and Struts2.

    I really hope that Struts2 dies, because i really dont want to learn it and from what i heard its not Struts anymore. I was offered job in ADF, but i turned it down, because i think that ADF will never make it, plus using this framework was too IDE-driven.

    The important question is why we need so many web frameworks? Some people are STILL using Velocity, because they got used to it, can we do the same thing here? i really believe in SpringMVC and i hope it will be the standard soon.

  29. 29 Jacob Pays December 5, 2007 at 12:58 am

    EG needs a little help with anger management.

    1. True, but so what. Why is this preventing you from doing work?

    2. True, it does not necessarily generate a optimally minimal HTML. If the HTML RenderKit or a single component of it is your issue, rewrite it and submit it to MyFaces or the JSF RI. Again, Why is this preventing you from doing work?

    3. True, unwanted is not optimal. But is it innocuous? Again, state a specific case where this is preventing you from doing work?

    4. Maybe. I find that this issue is a plus. Why do you need to have absolute control of every single line of software that you use? Programmers that have this problem usually end up refactoring there code till the end of time.

    5. Fixed in JSF 1.2. You do do technology updates don’t you Or are you still using Java 1.4?

    6. False. I use a Page model taken from the Woodstock components. If you use the default RI you get what you get.

    7. True, but meaningless. Have you used f:param or f:attribute?
    I use these both statically and dynamically.

    8. What is simpler? ASP.NET is similar and so is Adobe Flex2. Though those have so far provided a richer set of components. Use an interactive design tool. I’ve used Eclipse with WTP (not mature), Netbeans with VWP, Dreamweaver with JSFToolBox, and Oracle JDesigner. All have pluses and minuses. Don’t think generating web pages via a tool is professional? Thousands of web designers using Dreamweaver will disagree with you.

    9. Maybe. If your careless about how you write Javascript. Is it only JSF tags that break your Javascript?

    10. Maybe, but so may any other tag library. I know of no standard that defines names for CSS styles. If I call a style “jim” and some other tag calls a style “jim”, then yeah, somethings going to have to give.

    11. Fixed in JSF 1.2. We use it everyday.

    “Finished” a 9 month contract. I find it odd that someone could so quickly arrive at such a negative opionion of a technology. Sounds like you have a dysfunction.

    I use four eight different JSF component sets on a commercial web site. Yes, there are places where development with JSF could be improved. If you take some time and look at those other technolgies that I’ve mentioned, you’ll see a similar approach.

  30. 30 tiziano December 8, 2007 at 10:41 am

    Why in your list it does not consider JBoss Seam. I use with JBoss Tools in Eclipse. You can give me of yours reasons.

  31. 31 Mark December 17, 2007 at 7:52 pm

    Are there any guidelines for where the various frameworks are best suited? We have an existing high traffic public site running on Struts 1 and we are looking to migrate to a better framework. Are some of the frameworks more logical than others? I’ve heard several comments about JSF applications not being good for high traffic sites due to memory overhead.

    I’m sure some of the new frameworks are great and “some” of their adoption rates will grow but what if from a corporate standpoint you need to pick something that will have strong industry support and will continue to evolve for a number of years? Would it be JSF, Struts 2, Spring MVC or what?

  32. 32 Yaakov December 19, 2007 at 5:01 pm

    Jacob Pays says

    “EG needs a little help with anger management.”
    and
    “Sounds like you have a dysfunction.”

    Sounds to me that EG was voicing his (strong) opinions about a technology, while Jacob Pays was making a personal attack. Where is the anger management really needed?

  33. 33 Rene Pawlitzek January 11, 2008 at 5:21 pm

    Have you looked at Hamlets? It’s easy-to-use and easy-to-understand. Ideal for smaller web-applications. Simple and fast.
    http://hamlets.sourceforge.net

  34. 34 Yee March 3, 2008 at 7:23 am

    I did 18 months solid of JSF - and I swear I will never touch that monster again.

    I picked up Stripes after the JSF nightmare. I thought I was just going to evaluate the framework, but before I knew it I had 4 projects started on it.

    Currently I am maintaining a project built using SpringMVC, and I am missing Stripes every day.

    Stripes is every nice. Simple Elegance is how I would describe it. It is very easy to learn and extremely productive.

    Even if you don’t plan to use it - at least use it as a yardstick to evaluate other frameworks.

  1. 1 ‘Six’ best web frameworks in Java « FlashColony Blog Trackback on November 30, 2007 at 6:45 pm

Leave a Reply




View Lijin Joseji's profile on LinkedIn

Disclaimer

The information on this site is for informational purposes only. The use of any Trademark or Copyrighted material is not intended to infringe Copyright. This blog is intended to be used under a policy of personal and non commercial use.

Adds

Add to Google

Blog Stats

  • 109,204 hits

Categories