JavaServer Pages (JSP) is an innovation that enables programming designers to make powerfully created site pages in view of HTML, XML, or other archive writes. Discharged in 1999 by Sun Microsystems,JSP is like PHP and ASP, yet it utilizes the Java programming dialect.

To send and run JavaServer Pages, a good web server with a servlet holder, for example, Apache Tomcat or Jetty, is required.

Structurally, JSP might be seen as an abnormal state deliberation of Java servlets. JSPs are converted into servlets at runtime, in this manner JSP is a Servlet; each JSP servlet is stored and re-utilized until the first JSP is adjusted.

JSP can be utilized autonomously or as the view segment of a server-side model– view– controller plan, typically with JavaBeans as the model and Java servlets (or a structure, for example, Apache Struts) as the controller. This is a kind of Model 2 engineering.

JSP permits Java code and certain pre-characterized activities to be interleaved with static web markup content, for example, HTML, with the subsequent page being gathered and executed on the server to convey a report. The arranged pages, and in addition any needy Java libraries, contain Java bytecode as opposed to machine code. Like some other Java program, they should be executed inside a Java virtual machine (JVM) that interfaces with the server’s host working framework to give a dynamic, stage impartial condition.

JSPs are normally used to convey HTML and XML reports, however using OutputStream, they can convey different sorts of information too.

The Web holder makes JSP certain items like demand, reaction, session, application, config, page, pageContext, out and special case. JSP Engine makes these items amid interpretation stage.


JSP pages utilize a few delimiters for scripting capacities. The most essential is <% … %>, which encases a JSP scriptlet. A scriptlet is a part of Java code that is run when the client asks for the page. Other basic delimiters incorporate <%= … %> for articulations, where the scriptlet and delimiters are supplanted with the aftereffect of assessing the articulation, and mandates, indicated with <%@ … %>.

Java code isn’t required to be finished or independent inside a solitary scriptlet piece. It can straddle markup content, gave that the page in general is linguistically right. For instance, any Java if/for/while squares opened in one scriptlet must be effectively shut in a later scriptlet for the page to effectively assemble.

Content that falls inside a split piece of Java code (crossing various scriptlets) is liable to that code. Content inside an if square will just show up in the yield when the if condition assesses to genuine. In like manner, content inside a circle develop may seem various circumstances in the yield, contingent on how often the circle body runs.

The following would be a valid for loop in a JSP page:

<p>Counting to three:</p>
<% for (int i=1; i<4; i++) { %>
    <p>This number is <%= i %>.</p>
<% } %>

The output displayed in the user’s web browser would be:

Counting to three:

This number is 1.

This number is 2.

This number is 3.


Expression Language

Rendition 2.0 of the JSP determination included help for the Expression Language (EL), used to get to information and capacities in Java objects. In JSP 2.1, it was collapsed into the Unified Expression Language, which is likewise utilized as a part of JavaServer Faces.

An example of EL Syntax:

The value of "variable" in the object "javabean" is ${javabean.variable}.

Additional tags

The JSP sentence structure include extra labels, called JSP activities, to summon worked in functionality. Additionally, the innovation takes into consideration the formation of custom JSP label libraries that go about as augmentations to the standard JSP syntax. One such library is the JSTL, with help for basic assignments, for example, cycle and conditionals (the likeness “for” and “if” explanations in Java.)


A JavaServer Pages compiler is a program that parses JSPs, and changes them into executable Java Servlets. A program of this write is typically installed into the application server and run naturally the first run through a JSP is gotten to, yet pages may likewise be precompiled for better execution, or assembled as a piece of the manufacture procedure to test for errors.

Some JSP holders bolster arranging how frequently the compartment checks JSP record timestamps to see whether the page has changed. Commonly, this timestamp would be set to a short interim (maybe seconds) amid programming improvement, and a more extended interim (maybe minutes, or even never) for a sent Web application.


In 2000, Jason Hunter, creator of “Java Servlet Programming”, reprimanded JSP for either enticing or requiring the software engineer to blend Java code and HTML markup, in spite of the fact that he recognized it would “wean individuals off” of Microsoft’s Active Server Pages. Afterward, he added a note to his site saying that JSP had enhanced since 2000, yet additionally refered to its rivals, Apache Velocity and Tea (format dialect).

Servlet containers
  • GlassFish
  • Oracle iPlanet Web Server
  • WebSphere Application Server
Java-based template alternatives
  • Adobe ColdFusion
  • FreeMarker
  • Thymeleaf