Playing with Google Apps templates and Eclipse led me to usage of Java Server Pages instead of servlets for output. For the first time, in Eclipse, when I used a wizard for creation of JSP page, I saw a few more options, which included Java Server Faces (JSF) pages. Wondering what that might be, I read the article JavaServer Faces - Wikipedia, the free encyclopedia which was a bit mind-boggling, after working with Microsoft technologies.
JSF is a framework that should simplify development of user interfaces for Java EE applications. It uses UI components and saves their state after a user. The state is restored when a user activates the interface again. It can use JSP as a display technology but it can also use other technologies, like XUL. This combines into a powerful combination. JSP contain custom tag libraries which enable customization.
This technology is meant to compete with Microsoft ASP.Net, being a component-based framework.