Jakarta Server Pages

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.

The JSP Model 2 architecture.