JSF vs Facelets vs JSP [duplicate]

Solution 1:

  • JSF is a standardized Java framework for web UIs based on an MVC pattern
  • JSPs are a (much older) standard for generating web pages from templates - these can be used as the View in a JSF application, but also separately from JSF.
  • Facelets are an alternative view technology based on pure XML templates (no scriptlets) which was introduced with Version 2 of the JSF standard. They can only be used in a JSF application.

In the light of that, let's take a look at your conflicting statements:

That JSF is a replacement for JSP; and

Not quite true, since JSF can use JSPs for its view (and had to, prior to JSF 2). However, JSF apps using Facelets can be seen as a replacement for JSP-based technologies.

JSF and JSP form different parts of the View in Java's web-tier MVC paradigm

Completely wrong - JSF covers the entire MVC pattern (though it can overlap with EJBs, since both are based on annotations that can be mixed in the same class).

Solution 2:

From Wikipedia article(JSF)

JSF is a request-driven MVC web framework based on component driven UI design model, using XML files called view templates or Facelets views.

JSF is web framework and Facelet is a view template for JSF

From Wikipedia article(JSP)

JavaServer Pages (JSP) is a Java technology that helps software developers serve dynamically generated web pages based on HTML, XML,

Also look at this topic Difference between jsf and jsp