Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Java Web Frameworks Comparison

DZone's Guide to

Java Web Frameworks Comparison

· Java Zone
Free Resource

Microservices! They are everywhere, or at least, the term is. When should you use a microservice architecture? What factors should be considered when making that decision? Do the benefits outweigh the costs? Why is everyone so excited about them, anyway?  Brought to you in partnership with IBM.

As a part of ongoing effort of comparing Java web frameworks I added JSF to the list on http://jtomato.sourceforge.net.

 The following chart shows the amount of code necessary for 4 different applications:

  • empty - an empty XHTML 1.0 page with the title "Test" should be generated
  • helloWorld - a page with the content "Hello, world!" should be generated
  • helloUser - a page with an input field for a user's name is displayed. Post redirects to another page which shows the message "Hello, <userName>!"
  • linkEditor - a simple editor for a tree of links


I also used my prototype JTomato as the base line. 

My conclusions are:

  • whether Struts nor JSF scale in terms of amount of code
  • JSF is even more verbose than Struts

I admit that that the choosed applications may be not big enough to prove which framework is better, but do you really expect these lines on the chart below to cross somewhere? How big should a project become for JSF to be better than Struts? 

Code size

 

The next framework I will test will be probably GWT. I am really curious how good it is. 

Discover how the Watson team is further developing SDKs in Java, Node.js, Python, iOS, and Android to access these services and make programming easy. Brought to you in partnership with IBM.

Topics:

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}