Ceci est une ancienne révision du document !
Table des matières
Une page JSP
utilise du code HTML
dans lequel est mis du code Java
. Le code généré par les appels aux fonctions JSP
est du HTML 4.01
.
<note>Tous les exemples ci-dessous utilisent le BeanPersonne.</note>
Cycle de vie
Création du projet
Exemple 1 - La base
- indexjsp.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <p> <% if (15 % 2 == 0) { out.print ("15 est un nombre pair."); } else { out.print ("15 est un nombre impair."); } %> <br /> <% switch (16 % 2) { case 0: out.print ("16 est un nombre pair."); break; default: out.print ("16 est un nombre impair."); break; } %> </p> </body> </html>
Rendu :
15 est un nombre impair. 16 est un nombre pair.
Exemple 2 - Utilisation d'un Bean
- indexjsp2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <jsp:useBean id="perso1" scope="session" class="com.llgc.BeanPersonne"> <jsp:setProperty property="taille" name="perso1" value="170" /> </jsp:useBean> <jsp:setProperty property="yeuxBleus" name="perso1" value="true" /> <jsp:useBean id="perso2" scope="session" class="com.llgc.BeanPersonne"> <jsp:setProperty property="taille" name="perso2" value="160" /> </jsp:useBean> <jsp:setProperty property="yeuxBleus" name="perso2" value="false" /> <p> La personne 1 possède une taille de ${sessionScope.perso1.taille} cm et <% if (!perso1.isYeuxBleus ()) { out.print ("n'a pas"); } else { out.print ("a"); } %> les yeux bleus.<br /> La personne 2 possède une taille de <jsp:getProperty property="taille" name="perso2"/> cm et <% if (!perso2.isYeuxBleus ()) { out.print ("n'a pas"); } else { out.print ("a"); } %> les yeux bleus. </p> </body> </html>
Rendu :
La personne 1 possède une taille de 170 cm et a les yeux bleus. La personne 2 possède une taille de 160 cm et n'a pas les yeux bleus.
Exemple 3 - Formulaire avec Bean global et session
- index3.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <jsp:useBean id="persoloc" scope="session" class="com.llgc.BeanPersonne" /> <jsp:setProperty name="persoloc" property="*" /> <jsp:useBean id="perso" scope="application" class="com.llgc.BeanPersonne" /> Valeur par défaut du bean application : ${perso.taille}.<br /> Valeur en cours du bean session : ${persoloc.taille} <br /> <form method="post" action="index3.jsp"> Taille : <input name="taille" type="text" /> <input type="submit" value="Submit" /> </form> </body> </html>
Exemple 3b - avec validation des données
Dans le cas d'un JSP
, la vérification des données se fait après la modification des propriétés des Beans, lors de l'appel d'une méthode dédiée. Le Javascript
peut être utilisé en pré-traitement.
Méthode à ajouter au Bean :
- BeanPersonne.java
public boolean validate () { if (taille < 30 || taille > 250) { return false; } return true; }
- index3b.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <jsp:useBean id="persoloc" scope="session" class="com.llgc.BeanPersonne" /> <jsp:setProperty name="persoloc" property="*" /> <% if (!persoloc.validate ()) { %> <jsp:forward page="index3b-fail.jsp" /> <% } %> <br /> <form method="post" action="index3b.jsp"> Taille : <input name="taille" type="text" /> <input type="submit" value="Submit" /> </form> </body> </html>
Exemple 4 - context-param et init-param
Ajout de :
- un
servlet
et sonservlet-mapping
s'appliquant àindexjsp4.jsp
, - trois
context-param
,
- web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>EL</display-name> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> </servlet> <servlet> <servlet-name>JSP</servlet-name> <jsp-file>/indexjsp4.jsp</jsp-file> <init-param> <param-name>user2</param-name> <param-value>utilisateurServlet</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>JSP</servlet-name> <url-pattern>/indexjsp4.jsp</url-pattern> </servlet-mapping> <context-param> <param-name>user</param-name> <param-value>utilisateur</param-value> </context-param> <context-param> <param-name>password</param-name> <param-value>mot de passe</param-value> </context-param> <context-param> <param-name>driver</param-name> <param-value>com.mysql.jdbc.Driver</param-value> </context-param> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping> … </web-app>
- indexjsp4.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <p> <% out.println ("nom : " + getServletContext ().getInitParameter ("user") + "<br />"); out.println ("pass : " + getServletContext ().getInitParameter ("password") + "<br />"); out.println ("driver : " + getServletContext ().getInitParameter ("driver") + "<br />"); out.println ("nom2 : " + getServletConfig().getInitParameter ("user2")); %> </p> </body> </html>
Rendu :
nom : utilisateur pass : mot de passe driver : com.mysql.jdbc.Driver nom2 : utilisateurServlet
Exemple 5 - Cookies
- indexjsp5.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <p> <% Cookie[] cookies = null; int compteur = 0; // Get an array of Cookies associated with this domain cookies = request.getCookies (); if (cookies != null) { int i; for (i = 0; i < cookies.length; i++) { if (cookies[i].getName ().compareTo ("compteur") == 0) { compteur = Integer.parseInt (cookies[i].getValue ()); out.println ("compteur : " + compteur); break; } } if (i == cookies.length) { out.println ("Pas de cookie, allez cuisiner !!!"); } } else { out.println ("Pas de cookie, allez cuisiner !!!"); } compteur++; Cookie c = new Cookie ("compteur", "" + compteur); c.setMaxAge (3600); response.addCookie (c); %> </p> </body> </html>
Rendu 1 :
Pas de cookie, allez cuisiner !!!
Rendu 2 :
compteur : 1
Exemple 6 - Affichage d'une liste dans un tableau
La liste est générée par une classe Java Liste6 et affiche un type BeanPersonne.
- indexjsp6.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.List, com.llgc.BeanPersonne, com.llgc.Liste6"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <table border="1"> <tr> <td>Taille</td> <td>Yeux bleus</td> </tr> <% List <BeanPersonne> liste = Liste6.getListePersonne (); for (BeanPersonne beanPersonne : liste) { out.println (" <tr>"); out.println (" <td>" + beanPersonne.getTaille () + "</td>"); out.println (" <td>" + beanPersonne.isYeuxBleus () + "</td>"); out.println (" </tr>"); } %> </table> </body> </html>
Exemple 7 - Erreur - Page non dynamique
Même si c'est possible, il n'est pas vraiment utile d'avoir des pages statiques dans un projet exploitant les JSP (ou autres).
- maPage.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <p>Ma première page HTML.</p> </body> </html>
Puis consultez la page à http://localhost:8080/nomProjet/maPage.html
Exemple 8 - Erreur - JSP + Servlet
<note warning>NON. PAS DE SERVLET AVEC DU JSP !!!!! Il devrait être possible de s'en passer.</note>