Académique Documents
Professionnel Documents
Culture Documents
Javaserver Pages (JSP) : JSP Le Langage Java
Javaserver Pages (JSP) : JSP Le Langage Java
Javaserver Pages (JSP) : JSP Le Langage Java
Le langage Java
XVIII-1
JMF
JSP
Le langage Java
XVIII-2
JMF
JSP
Le langage Java
Motivation et historique
Ncessit d'avoir des pages HTML dynamiques i.e. pages cres lors de la requte (mto, cours de la bourse, vente aux enchres, etc.) Technologie des server side include (ssi) Des pages HTML contiennent du code excuter lors de la requte Traiter par le serveur Web car ayant un suffixe caractristique (.shtml, etc.)
XVIII-3 JMF
JSP
Le langage Java
ssi : la technique
Le serveur Web, lorsqu'une telle page est demande, passe la main au programme adquat qui traite la partie de la page le concernant. Ce programme gnre la partie dynamique en HTML La page HTML cre dans son ensemble est retourne au client Web.
XVIII-4 JMF
JSP
Le langage Java
JavaServer Pages
= JSP = la technique des ssi en Java = une page HTML contenant du code Java => meilleure division des tches :
prsentation gnrale par les graphistes cot dynamique par des programmeurs (Java)
XVIII-5
JMF
JSP
Le langage Java
Comment a marche ?
Concrtement :
toute la page HTML est convertie en une servlet cette servlet est traite par le moteur Java intgr au serveur Web (technologie des servlets) et retourne la page HTML construite
XVIII-6
JMF
JSP
Le langage Java
JSP
Le langage Java
XVIII-8
JMF
JSP
Le langage Java
JSP
Le langage Java
Voir java.sun.com/products/jsp
XVIII-10
JMF
JSP
Le langage Java
Tomcat
Dvelopp par la communaut qui implmente les spcifs servlets et JSP. Tlchargeable (en version d'utilisation lmentaire) gratuitement
http://jakarta.apache.org/downloads/bin index.html
Plug-in de Apache version 1.3 ou plus, Microsoft IIS version 4.0 ou plus, Netscape Enterprise Server version 3.0 ou plus
XVIII-11 JMF
JSP
Le langage Java
Tomcat (suite)
Peut tre utilis comme serveur Web (bien qu'industriellement dconseill) Existe pour plusieurs Unix et Win32 Pour Win32 un .zip ou .exe de 8 Mo Lire doc\readme (et les fichiers du rpertoire doc) Ncessite d'avoir un JRE 1.1 ou plus
XVIII-12 JMF
JSP
Le langage Java
Bidouilles Tomcat
Il faut aussi :
positionner la variable TOMCAT_HOME au rpertoire racine de la hirarchie d'installation de Tomcat. Exemple :
set TOMCAT_HOME=C:\jakarta-tomcat-3.2.3
XVIII-13
JMF
JSP
Le langage Java
Tomcat et JSP
Des exemples de JSP (code + liens pour l'excution) sont disponibles dans
REP_INSTALL_TOMCAT/webapps/examples/jsp /index.html
XVIII-14
JMF
JSP
Le langage Java
Excution de JSP
Il faut mettre les pages JSP dans un endroit particulier du serveur Web Cet endroit dpend du serveur Web et de sa configuration Pour tomcat en configuration standard,
http://serveurWeb/examples/jsp/date.jsp
~
REP_INSTAL_TOMCAT\webapps\examples\jsp\ date.jsp
XVIII-15 JMF
JSP
Le langage Java
JSP
Le langage Java
Cette phase est parfois appele la traduction de la JSP Puis a compil et excut la servlet
XVIII-17
JMF
JSP
La servlet construite
Le langage Java
package jsp; ... public class _0002fjsp_0002fjsp_0002fdate_0002ejspdate_jsp_1 extends HttpJspBase { ... public void _jspService(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ... _jspx_init(); ... pageContext = _jspxFactory.getPageContext(...); session = pageContext.getSession(); out = pageContext.getOut(); // HTML // begin [file="C:\\...\\examples\\jsp\\date.jsp";from=(0,0);to=(4,24)] out.write("<html><head><title>Obtenu par une JSP</title></head>\r\n <body>\r\n\r\n<h3>Bonjour de ma part</h3> < hr>\r\n La date courante est : "); // end //begin [file="C:\\...\\examples\\jsp\\date.jsp";from=(4,27)to=(4,49)] out.print( new java.util.Date() ); // end // HTML // begin [file="C:\\...\\examples\\jsp\\date.jsp";from=(4,51);to=(6,7)] out.write("\r\n</body>\r\n</html>"); // end ... } }
XVIII-18
JMF
JSP
Le langage Java
Oui
Conteneur de JSP
Charger la servlet
Non
Rponse au client
Excuter la servlet
XVIII-19
JMF
JSP
Le langage Java
XVIII-20
JMF
JSP
Le langage Java
Scriptlets <%
%>
contient du code Java insrer dans _jspservice() de la servlet, donc peut utiliser out, request, response, etc. Exemple :
<% String[] langages = {"Java", "C++", "Smalltalk", " Simula 67"}; out.println("<h3>Principaux langages orients objets : </h3>"); for (int i=0; i < langages.length; i++) { out.println("<p>" + langages[i] + "</p>"); } %> XVIII-21 JMF
JSP
Le langage Java
Dclarations <%!
%>
Sont des dclarations Java. Seront insres comme des membres de la servlet Permet de dfinir des mthodes ou des donnes membres Exemples :
<%! int random4() { return (int)(Math.random() * 4); } %> <%! int nombreFetiche = 2; %>
XVIII-22
JMF
JSP
Le langage Java
Expressions <%=
Un raccourci pour <% attention au ;
%>
JSP
Le langage Java
: le canal de sortie request (HttpServletRequest) : l'objet requte response (HttpServletResponse) : l'objet rponse
JSP
Le langage Java
Un exemple complet :
complet.jsp
<html><head><title>JSP complet</title></head> <body> <%! String[] langages = {"Java", "C++", "Smalltalk", "Simula 67"}; int random4() { return (int) (Math.random() * 4); } %> <p>Parmi tous les langages orients objets :</p> <ol> <% for (int i=0; i < langages.length; i++) { out.println("<li>" + langages[i] + "</li>"); } %> </ol> <p>Le prochain que j'apprends est <b><%= langages[random4()] %> </b></p> </body> </html> XVIII-25 JMF
JSP
Le langage Java
complet.jsp
XVIII-26
JMF
JSP
Le langage Java
JSP
Le langage Java
Si une exception est leve le traitement est drout vers la page erreur qui connat la rfrence exception qui repre l'exception
XVIII-28 JMF
JSP
Le langage Java
XVIII-29
JMF
JSP
Le langage Java
XVIII-30
JMF
JSP
Le langage Java
XVIII-31
JMF
JSP
Le langage Java
lanceForward.jsp
<% String repUtilisateur = request.getParameter("repTextField"); int rep = Integer.parseInt(repUtilisateur); if ((rep % 2) == 0) { %> <jsp:forward page="gagne.jsp"/> <% } else { %> <jsp:forward page="perdu.jsp"/> <% } %> On n'affiche jamais cela XVIII-32 JMF
JSP
Le langage Java
XVIII-33
JMF
JSP
Le langage Java
XVIII-34
JMF
JSP
Le langage Java
Le bean est alors utilisable par nomInstanceJavaBean balise sans corps donc utilisation de
<jsp:useBean />
XVIII-35 JMF
JSP
Le langage Java
l'attribut scope
Il indique la porte du bean.
valeur
request page session application
Description
Le bean est valide pour cette requte. Il est utilisable dans les pages de redirection de la requte (<jsp:forward>). Il est dtruit la fin de la requte. Similaire request, mais le bean n'est pas transmis aux pages de redirection <jsp:forward>. C'est la porte par dfaut Le bean est valide pour la session courante. S il n existe pas encore dans la session courante, il est cr et plac dans la session du client. Il est rutilis jusqu ce que la session soit invalide Le bean est valide pour l application courante. Il est cr une fois et partag par tous les clients des JSP.
XVIII-36
JMF
JSP
Le langage Java
XVIII-37
JMF
JSP
Le langage Java
XVIII-38
JMF
JSP
Le langage Java
XVIII-39
JMF
JSP
Le langage Java
Architecture MVC
modle = les donnes accdes par un code Java (JDBC, RMI, EJB, etc.) vues = JSP contrleur = servlets
XVIII-40
JMF
JSP
Le langage Java
Composants
Requte
XVIII-41
JMF
JSP
Le langage Java
// appelle les mthodes sur les objets mtiers ArrayList theList = // un objet passer // ajoute la requte request.setAttribute("nomDelObjet", theList);
ServletContext context = getServletContext(); RequestDispatcher dispatcher = context.getRequestDispatcher("/jspAAppeler.jsp"); dispatcher.forward(request, response); }
XVIII-42
JMF
JSP
Le langage Java
Bibliographie
JavaServer Pages. Hans Bergsten; ed O'Reilly. ISBN 1-56592-746-X Technologie Apache/Tomcat
http://jakarta.apache.org
XVIII-43
JMF