Apache Click is a web application framework for Java language usage. It’s a page- and component-oriented tool that is open-source and built on top of the Java Servlet API. Click runs on any JDK installation from 1.5 onwards and is distributed under the Apache license.
The Apache Software Foundation took on Tapestry as a top-level project around a decade ago, and since then it has become an open-source and component-oriented framework which is somewhat similar to Apache Wicket and JavaServer Faces. This Java web app framework eliminates all XML configuration, fitting in which the “convention over configuration” paradigm, and focuses on being simple, easy to use, and productive.
Wicket is another component-based web application framework that works for the Java programming language, although this framework is more lightweight than many others. Conceptually, it is relatively similar to Tapestry and JavaServer Faces.
JavaServer Faces (JSF)
JSF is a Java specification that allows developers to build component-oriented user interfaces for web apps. It was formalized as a standard through the Java Community Process. JSF is an MVC web framework which makes the construction of user interfaces for server-based applications simpler by developing, and later using, reusable user interface components in an application, over single or multiple pages.
Apache Tiles allows for a consistent look and feel that runs throughout an application as a whole. It does this by allowing authors to define page fragments which can turn into complete pages at runtime. These page fragments (otherwise known as “tiles”) can be used to reduce the duplication of repetitive page elements and can be embedded within other tiles to develop reusable templates.
OpenSymphony is no longer in operation, but their Java web application development framework SiteMesh is still out there. SiteMesh is a webpage decoration and layout framework which also works as a web app integration framework. It allows for the creation of consistent, sleek sites with clear layout and navigation systems.
Thymeleaf is a great system for HTML5 JVM web development. The server-side Java template engine works in web and standalone environments and offers good-looking, highly functional templates. Its HTML can be displayed accurately in browsers and work statically as prototypes, making it easy for development teams to work within Thymeleaf. It also has modules for Spring Framework, the ability to plug in your own customized functionality, and easy integrations for many of your favorite tools.
Apache Struts 2 functions as a web application framework for the development of Java EE apps. By using the Java Servlet API, Struts makes it easy to developers to use model-view-controller architectures and maintain separation of concerns so that enhancement of application later stages is clean and rapid. There’s also the WebWork framework, a spin-off of Struts that provides refinement and enhancement within the essential architecture of Struts’ original model. On top of all that, it’s also open-source.
As an open-source application framework and inversion of control container, Spring’s main features can be used on any Java application. However, it also has extensions for building web applications on top of the Java EE. Spring doesn’t impose a particular programming language and is popular in the Java community as an addition to (and sometimes replacement for) the Enterprise JavaBeans model.