JSP and JSF are not competing names for the same technology. JSP is a server-side page technology; JSF—now named Jakarta Faces—is a component-oriented web UI framework and specification. Earlier Faces releases allowed JSP pages to serve as views, which is why older applications may contain both. For current Faces views, use Facelets: JSP support as a Faces view was removed in Jakarta Faces 4.0.
What JSP did in a JSF application
JSP (Jakarta Server Pages, formerly JavaServer Pages) generates server-side web pages. JSF, now called Jakarta Faces, is its successor name, is a framework and specification for building component-based web interfaces. In older applications, Faces could use JSP as its view declaration language: developers wrote pages with JSP and Faces tags, and Faces used those pages as the views for its UI components.
That integration did not make JSP and JSF interchangeable. A JSP page could be a Faces view, but JSP itself was not the Faces framework. Apache MyFaces’ migration documentation records that JSF 2.0 supported both JSP and Facelets files (MyFaces migration documentation).
Why Faces moved to Facelets
Facelets is the view declaration language designed for Jakarta Faces. It works with Faces’ component and view lifecycle, including Faces-aware templates and expression-language behavior. JSP’s page-processing model can behave differently from the Faces view lifecycle, which creates compatibility issues in areas such as expression handling and component-tree construction. The Jakarta Faces 3.0 specification discusses these differences in its comparison of JSP and Facelets (Jakarta Faces 3.0 specification).
Free tools Windows power users keep installed
One-click scans. No signup required.
The Jakarta EE Tutorial describes Facelets as “the view declaration language for Jakarta Faces technology” and says JSP “is considered to be a deprecated presentation technology for Jakarta Faces” (Jakarta EE Tutorial: Introduction to Facelets). In practice, Facelets is the path to use for Faces views in current applications.
When JSP support changed
- Faces 2.0: JSP support as a view declaration language was deprecated, though legacy applications could still use it.
- Jakarta Faces 4.0: JSP support as a Faces view was removed. The Jakarta Faces 4.0 specification and its Eclipse Foundation release review document the removal and preceding deprecation.
This change is specific to JSP used as a Faces view. JSP remains a separate page technology; the change does not mean that every JSP page in a Java web application must be rewritten.
Rank #2
How to assess an older application
- Check the Faces version and runtime. Establish which Faces implementation and version the application actually uses, then compare that with the runtime’s support. Jakarta Faces 4.0 no longer supports JSP views.
- Classify the JSP pages. Identify which pages are Faces views and which are ordinary JSP endpoints that do not use Faces as their view technology. The latter are not automatically in scope for this change.
- Inventory Faces and JSP features in the views. Note tag libraries, expressions, includes, templates, component-tree behavior, and view state. These details affect conversion and runtime behavior.
- Convert the Faces views to Facelets.**** Adapt the views to Facelets templates and syntax rather than treating a JSP file as a drop-in replacement. Red Hat’s JBoss EAP 8.0 Migration Guide identifies Facelets as the modification path for applications whose Faces views use JSP (Red Hat JBoss EAP 8.0 Migration Guide).
- Test the converted views. Verify rendered output, tag-library behavior, expression evaluation, includes, component construction, and state across the interactions the page supports.
Why an IDE may start with JSP
A project wizard that creates a JSP page has selected a page technology; it has not necessarily created a Faces view or configured a Faces application. A community question phrased this confusion as a project “starts with JSP instead of JSF” (Java community question). To determine what the project actually uses, inspect its Faces dependencies and configuration as well as the page content. For a new Faces view, choose Facelets rather than assuming that creating a JSP page turns it into a Faces page.
Quick Recap
Best Value
Rank #4
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

