"JSF technology is a user interface framework for building Java-based web applications that run on the server side, and render the user interface back to the client. " as found on http://java.sun.com/developer/technicalArticles/GUI/JavaServerFaces
. JSF helps a user build web applications around Model-View-Controller design pattern. FacesServlet acts as a controller (front controller) that delegates to JSF managed JavaBeans and dispatches requests to view JSP pages. Managed JavaBeans can act as application controllers that use model components from business layer (e.g. session beans) and provide the means to get/set model data. JSP pages format and render model data in the managed JavaBeans.
I'd consider Servlet, JPA and EJB to be APIs that can be used in various frameworks.