JavaServer Faces (JSF) is a web application framework that is based in Java. Its main objective is to simplify development integration of user interfaces that are web based. It is a request driven Model View Controller based on component driven UI design model, which uses XML –view templates or Facelet views. Requests ran through the JSF are processed by the FacesServlet. This component loads the view template that is required, builds a component tree, processes events, and renders the response –which is usually in HTML.

JavaServer Pages (JSP) is a Java based technology specifically used to help software developers serve dynamically generated web pages (such as HTML and XML) as well as other document types suitable to the development of interactive web content. It was specifically created in order to provide developers the ability to program  Java web applications.

JSF is a web application that is used to simplify development integration of web based user interfaces.JSP is a Java based technology used specifically in order to help software developers create dynamic web pages.
JSF contains multiple core features, including, but not limited to, Managed Beans, a template based component system, and two XML based tag libraries.JSP must be compiled in Java bytecode in order to function properly.JSP must be compiled in Java bytecode in order to function properly.

JSF is a framework.

Model:backing bean



JSP  is not a request driven model view controller, but JSP is accessed by the  dynamically generated web pages like HTML or XML.
JSF supports validator and conversion,ajax.JSP does not.

The Different Architecture of MVC between JSF and JSP

MVC for JSP:


MVC for JSF: