Released in 1999 by Sun Microsystems,[2] JSP is similar to PHP and ASP, but uses the Java programming language.
[3] Jakarta Server Pages can be used independently or as the view component of a server-side model–view–controller design, normally with JavaBeans as the model and Java servlets (or a framework such as Apache Struts) as the controller.
[4] JSP allows Java code and certain predefined actions to be interleaved with static web markup content, such as HTML.
[5] The Web container creates JSP implicit objects like request, response, session, application, config, page, pageContext, out and exception.
[10] Version 2.0 of the JSP specification added support for the Expression Language (EL), used to access data and functions in Java objects.
[11] The JSP Expression Language uses a compact syntax which enables the developer to get attributes and JavaBean properties from a given request object.
[14] Jakarta Standard Tag Library (JSTL) supports common tasks that must be performed in JSPs.
A JavaServer Pages compiler is a program that parses JSPs and transforms them into executable Java Servlets.
A program of this type is usually embedded into the application server and run automatically the first time a JSP is accessed, but pages may also be precompiled for better performance, or compiled as a part of the build process to test for errors.
[20] A better approach would be to migrate the back-end logic embedded in the JSP to the Java code in the Servlet.
In 2000, Jason Hunter, author of "Java Servlet Programming" described a number of "problems" with JavaServer Pages.
Later, he added a note to his site saying that JSP had improved since 2000, but also cited its competitors, Apache Velocity and Tea (template language).
[21] Today, several alternatives and a number of JSP-oriented pages in larger web apps are considered to be technical debt.