JSF can use JSP as the view definition language.
From my understanding of what JSP does is: it generates a java class that implements the servlet interface. When this servlet is called it writes to the response object (that is send to the servlet client).
If it just writes to the response object then how is the UIViewRoot populated?
How about the render phase, what is left for it to do if the JSP had already write to the response?
<%="Hello World!" %>