JavaServer Pages - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Exemple

Voici un exemple de code source JSP, suivi du code source de la Servlet Java qui pourrait être générée par un serveur (par exemple Apache Tomcat) et de la page HTML qui en résulterait. Le code Java et HTML de cette page est celui généré par Apache Tomcat 4.

Source

      <%-- Ceci est un commentaire JSP --%>      <%@page contentType="text/html"%>      <%@page errorPage="erreur.jsp"%>      <%-- Importation d'un paquetage (package) --%>      <%@page import="java.util.*"%>            Page JSP                  <%-- Déclaration d'une variable globale à la classe --%>      <%! int nombreVisites = 0; %>            <%-- Définition de code Java --%>      <% //Il est possible d'écrire du code Java ici          Date date = new Date();          // On peut incrémenter une variable globale pour compter le nombre          // d'affichage, par exemple.          nombreVisites++;      %>      

Exemple de page JSP

<%-- Impression de variables --%>

Au moment de l'exécution de ce script, nous sommes le <%= date %>.

Cette page a été affichée <%= nombreVisites %> fois!

Servlet Java générée par le compilateur

      package org.apache.jsp;             import javax.servlet.*;      import javax.servlet.http.*;      import javax.servlet.jsp.*;      import org.apache.jasper.runtime.*;      import java.util.*;             public class example_jsp extends HttpJspBase {              int nombreVisites = 0;         private static java.util.Vector _jspx_includes;               public java.util.List getIncludes() {          return _jspx_includes;        }               public void _jspService(HttpServletRequest request, HttpServletResponse response)              throws java.io.IOException, ServletException {                 JspFactory _jspxFactory = null;          javax.servlet.jsp.PageContext pageContext = null;          HttpSession session = null;          ServletContext application = null;          ServletConfig config = null;          JspWriter out = null;          Object page = this;          JspWriter _jspx_out = null;                        try {            _jspxFactory = JspFactory.getDefaultFactory();            response.setContentType("text/html;charset=ISO-8859-1");            pageContext = _jspxFactory.getPageContext(this, request, response,            			"erreur.jsp", true, 8192, true);            application = pageContext.getServletContext();            config = pageContext.getServletConfig();            session = pageContext.getSession();            out = pageContext.getOut();            _jspx_out = out;                          out.write("\n\n");            out.write("\n");            out.write("\n\n");            out.write("\n");       //Il est possible d'écrire du code Java ici          Date date = new Date();          // On peut incrémenter une variable globale pour compter le nombre          // d'affichage, par exemple.          nombreVisites++;            out.write("\n");            out.write("

Exemple de page JSP"); out.write("

\n"
); out.write("\n"); out.write("

Au moment de l'exécution de ce script, nous sommes le "); out.print( date ); out.write("."); out.write("

\n"
); out.write("

Cette page a été affichée "); out.print( nombreVisites ); out.write(" fois!"); out.write("

\n"
); out.write("\n"); out.write("\n"); } catch (Throwable t) { out = _jspx_out; if (out != null && out.getBufferSize() != 0) out.clearBuffer(); if (pageContext != null) pageContext.handlePageException(t); } finally { if (_jspxFactory != null) _jspxFactory.releasePageContext(pageContext); } } }

Code HTML généré par le serveur

      <html>      <head><title>Page JSP</title></head>      <body>             <h1>Exemple de page JSP</h1>             <p>Au moment de l'exécution de ce script, nous sommes le Mon Dec 16 19:31:28 EST 2002.</p>      <p>Cette page a été affichée 5 fois!</p>      </body>      </html>      
Page générée en 0.614 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise