JavaServer Pages

JavaServer Pages ir servera puses Java tehnoloģija, kas ļauj izveidot dinamiski ģenerētas tīmekļa lapas HTML, XML vai citā formātā. Arhitektoniski JSP var skatīt kā Java servleta augsta līmeņa abstrakciju. Tehnoloģiju izstrādājusi Sun Microsystems 1990. gadu beigās.

JSP ļauj statiskā tīmekļa lapā iekļaut Java kodu vai EL formātā rakstītus fragmentus. Kad tīmekļa klients pieprasa lapu, to JSP Servlet Engine apstrādā un izveido servleta pirmkodu, kas ir Java klase. Tad to kompilē Java baitkodā, kuru izpilda Java Virtual Machine. Nākamreiz, kad lietotājs pieprasa šo pašu lapu, tiek palaists iepriekš nokompilētais kods. Tādējādi pirmoreiz lapa veras lēnāk, bet nākamās reizes ātrāk. Ja pirmkods tiek mainīts, tad to no jauna kompilē. JSP pirmkods var arī tikt uzreiz interpretēts, netērējot laiku kompilēšanai, kas ir izdevīgi izstrādes laikā.

Piemērs 
JSP pirmkoda fragments:
 <%@ page errorPage="myerror.jsp" %>
 <%@ page import="com.foo.bar" %>
 
 <html>
 <head>
 <%! int serverInstanceVariable = 1;%>
 
 <% int localStackBasedVariable = 1; %>
 <table>
 <tr><td><%= toStringOrBlank( "expanded inline data " + 1 ) %></td></tr>

Izveidotais servlets:
 package jsp_servlet;
 import java.util.*;
 import java.io.*;
 import javax.servlet.*;
 import javax.servlet.http.*;
 import javax.servlet.jsp.*;
 import javax.servlet.jsp.tagext.*;

 import com.foo.bar; // Imported as a result of <%@ page import="com.foo.bar" %>
 import …

 class _myservlet implements javax.servlet.Servlet, javax.servlet.jsp.HttpJspPage {
    // Inserted as a
    // result of <%! int serverInstanceVariable = 1;%>
    int serverInstanceVariable = 1;
    …

    public void _jspService( javax.servlet.http.HttpServletRequest request,
    javax.servlet.http.HttpServletResponse response )
    throws javax.servlet.ServletException,
    java.io.IOException
    {
        javax.servlet.ServletConfig config = …; // Get the servlet config
        Object page = this;
        PageContext pageContext = …;            // Get the page context for this request
        javax.servlet.jsp.JspWriter out = pageContext.getOut();
        HttpSession session = request.getSession( true );
        try {
            out.print( "<html>\r\n" );
            out.print( "<head>\r\n" );
            …
            // From <% int localStackBasedVariable = 1; %>
            int localStackBasedVariable = 1;
            …
            out.print( "<table>\r\n" );
            out.print( " <tr><td>" );
            // From <%= toStringOrBlank( "expanded inline data " + 1 ) %>
            out.print( toStringOrBlank( "expanded inline data " + 1 ) );
            out.print( " </td></tr>\r\n" );
            …
        } catch ( Exception _exception ) {
            // Clean up and redirect to error page in <%@ page errorPage="myerror.jsp" %>
        }
    }
 }

Ārējās saites 

 Sun's JSP product description
 Learn JSP Tutorial - step by step
 JSR 245 (JSP 2.1)
 JSR 152 (JSP 2.0)
 JSR 53 (JSP 1.2)
 JSP 1.1 and 1.0
 JSP tutorials with source code 
 Quick JSP tutorial
 JSP training courses  Public courses co-sponsored by Johns Hopkins University, or customized onsite versions
 Beginners JSP tutorial
 Core Servlets and JavaServer Pages 

Dinamisku tīmekļa lapu programmēšanas vides
Java platforma