เจเอสพี (อังกฤษ: JavaServer Pages: JSP) เป็นเทคโนโลยีจาวาที่เปิดช่องทางให้ผู้พัฒนาซอฟต์แวร์สร้าง HTML, XML หรือไฟล์เอกสารในประเภทนี้ตามความต้องการของเครื่องลูกข่ายร้องขอ ซึ่งเทคโนโลยีนี้เปิดให้ใช้ภาษาจาวาในการสร้างและกรทำการใด ๆ เพื่อให้หน้าเว็บเพจธรรมดากลายเป็นหน้าเว็บเพจที่สามารถตอบสนองได้ โดยเจเอสพีจะถูกโปรแกรมเว็บเซิร์ฟเวอร์ที่สนับสนุนเจเอสพี เช่น อะแพชี ทอมแคต, GlassFish แปลให้เป็นจาวา คลาส ที่เรียกว่าเซิร์ฟเลต ซึ่งพร้อมที่จะประมวลผลด้วยจาวาและแสดงผลออกเป็น HTML

ตัวอย่าง

แก้

ซอร์สโค้ดในเจเอสพี

 <%@ page errorPage="myerror.jsp" %>
 <%@ page import="com.foo.bar" %>

 <html>
 <head>
 <%! int serverInstanceVariable = 1;%>
 ...
 <% int localStackBasedVariable = 1; %>
 <table>
 <tr><td><%= "expanded inline data " + 1 %></td></tr>
 ...

เซิร์ฟเลตที่ได้จากการประมวลผลเจเอสพี

 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>" ) ;
             //note, toStringOrBlank () converts the expression into a string or if
             // the expression is null, it uses the empty string.
             //from <%= "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" %>
         }
    }
 }

ดูเพิ่ม

แก้

แหล่งข้อมูลอื่น

แก้