You can use JSF in a couple of fundamentally different ways: use the JSF API in pure Java code to generate the complete web page, or use JSF together with some sort of template that holds static markup for the overall page layout and place holders for JSF components that generate dynamic content. JavaServer Pages (JSP) fits the bill for the latter scenario and is supported out-of-the-box by all JSF implementations.
The JSP specification was created to allow all
) calls for adding HTML elements to the response that you
see in Example 4-1
to be moved from the
servlet code to a separate file. This file can be managed by someone
who knows HTML but is not a programmer, allowing programmers to focus
on developing the application business logic instead of changing
details in the user interface look every so often. Figure 4-6 illustrates this separation of concerns on
different application component types.
The servlet is still in charge of request processing, but it uses JSP pages to render the response. The business logic can also be forked off to separate JavaBeans components, typically created and populated with data by the servlet, and read by the JSP pages.
The result of this separation is a much more efficient development process. It also makes it possible to change different aspects of the application independently, such as changing the business rules without touching the user interface.