Top Banner
78

Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Dec 30, 2018

Download

Documents

buiquynh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Introduction aux servlets et JSP

M. Belguidoum

Université Mentouri de Constantine

Département Informatique

M. Belguidoum (UMC) Servlets et JSP 1 / 78

Page 2: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Plan

1 Introduction

2 Servlet et JSP

3 Quelques fonctionnalités

4 JavaBeans

5 Conclusion

M. Belguidoum (UMC) Servlets et JSP 2 / 78

Page 3: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Introduction

1 Introduction

2 Servlet et JSP

3 Quelques fonctionnalités

4 JavaBeans

5 Conclusion

M. Belguidoum (UMC) Servlets et JSP 3 / 78

Page 4: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Introduction

Application web

Une application web est une extension dynamique d'un serveur web ouapplicatif.Il y a deux types d'applications web :

les applications web orientées présentation qui génèrent des pages web(HTML, XML) dynamiquementles applications web orientées service : ce sont les web services

http:

//java.sun.com/javaee/5/docs/tutorial/doc/bnadr.html

Les servlets sont une des techniques utilisées pour construire desapplications web.

M. Belguidoum (UMC) Servlets et JSP 4 / 78

Page 5: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Introduction

Motivation et historique

Nécessité d'avoir des pages HTML dynamiques i.e. pages créées lorsde la requête (météo, cours de la bourse, vente aux enchères, etc.)Technologie des scripts CGI (Common Gateway Interface) : le serveurWeb demande à lancer un programme par le protocole CGI

principe : au lieu d'envoyer le contenu d'un �chier (page HTML,image...), un serveur HTTP utilisant une interface CGI exécute unprogramme puis retourne le contenu généré, comme s'il s'agissait d'uncontenu de �chier.CGI est le standard industriel qui indique comment transmettre larequête du serveur HTTP au programme et comment récupérer laréponse générée.CGI permet de passer des paramètres au programme, de telle manièrequ'il puisse en tenir compte pour générer les données. Exemple : unechaîne de caractères recherché auprès d'un moteur de recherche.

Inconvénient : une nouvelle copie du programme doit être lancée àchaque requête, surcharge rapideles serveurs

M. Belguidoum (UMC) Servlets et JSP 5 / 78

Page 6: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Introduction

Servlet et JSP

Les servlets constituent la réponse Java aux programmes CGI.

Exécutées sur un serveur d'applications

elles interceptent les requêtes des navigateurs web et génèrent desréponses (souvent en DHTML) construites dynamiquement à l'aide dulangage Java.Les JSP sont l'extension des servlets et se rapprochent du modèleJ2EE qui sépare :

Les contenus statiques et dynamiquesLa présentation et la logique métier, notamment grâce aux JavaBeans.

M. Belguidoum (UMC) Servlets et JSP 6 / 78

Page 7: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

1 Introduction

2 Servlet et JSP

3 Quelques fonctionnalités

4 JavaBeans

5 Conclusion

M. Belguidoum (UMC) Servlets et JSP 7 / 78

Page 8: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

JSP et Servlet

servlet :du code Java produisant une page HTMLprogramme autonome stocké dans un �chier .class sur le serveurexemple : out.println("<H1>titre niveau 1</H1>");

JSP :page HTML contenant du code Java qui sera exécuté pour produire lapageprogramme source Java embarqué dans une page .html

côté client côté serveur

.class autonome applet servletembarqué dans .html JavaScript JSP

M. Belguidoum (UMC) Servlets et JSP 8 / 78

Page 9: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Conteneur

Un conteneur est un composant logiciel système qui contrôle d'autrescomposants, dits métier

Tomcat est un exemple de conteneurLes servlets n'ont pas de méthode main(), ils sont contrôlés par leconteneur TomcatLes requêtes ne sont pas adressées aux servlets mais au conteneur danslequel ils sont déployésTous les conteneurs de servlets doivent supporter le protocole HTTP etpeuvent aussi supporter le protocole HTTPS.Un conteneur de JSP (JSP container) fournit les mêmes services qu'unconteneur de servlets.

M. Belguidoum (UMC) Servlets et JSP 9 / 78

Page 10: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Pourquoi un conteneur ?

Un conteneur fournit pour les ServletsUn support pour la communication : pas besoin de ServerSocket,Socket, Stream, ...La gestion du cycle de vieUn support pour le Multithreading : création automatique des ThreadsUn support pour la sécuritéUn support pour les JSP

M. Belguidoum (UMC) Servlets et JSP 10 / 78

Page 11: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Apache Tomcat

Tomcat est un conteneur libre de servlets Java 2 Enterprise Edition,issu du projet Jakarta.

Implémente les spéci�cations des servlets et des JSP du JavaCommunity Process.

Il est paramétrable par des �chiers XML et de propriétés, et inclut desoutils pour la con�guration et la gestion.

Il comporte également un serveur HTTP.

Tomcat est un serveur Web qui gère les servlets et les JSP.

le compilateur Jasper compile les pages JSP pour en faire des servlets.

Le moteur de servlet Tomcat est souvent employé en combinaisonavec un serveur Web Apache ou d'autres serveurs Web.

Tomcat a été écrit en langage Java, il s'exécuter via la machinevirtuelle Java sur n'importe quel système d'exploitation la supportant.

M. Belguidoum (UMC) Servlets et JSP 11 / 78

Page 12: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Organisation des repertoires de Tomcat

M. Belguidoum (UMC) Servlets et JSP 12 / 78

Page 13: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Application web avec un conteneur

M. Belguidoum (UMC) Servlets et JSP 13 / 78

Page 14: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Principe de fonctionnement JSP-Servlet

M. Belguidoum (UMC) Servlets et JSP 14 / 78

Page 15: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Algorithme d'exécution de la JSP

M. Belguidoum (UMC) Servlets et JSP 15 / 78

Page 16: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Quel code dans une JSP ?

scriptlet : entre <% et %>

code Java inséré dans _jspservice() de la servlet : utilisation deout, request, response.

<\%

String [] langages = {"Java", "C++", "Smalltalk", "Simula 67"};

out.println("<h3>Principaux langages orientés objets : </h3>");

for (int i=0; i < langages.length; i++) {

out.println("<p>" + langages[i] + " </p>");

}

\%>

expressions : entre <%= et %> : retourne une String qui est passée àout.println dans _jspService : <%= SALUT %> équivalent <%out.println(SALUT) ; %>

déclarations : entre <% ! et %> : déclaration de variables et deméthodes d'instances.

M. Belguidoum (UMC) Servlets et JSP 16 / 78

Page 17: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Une page jsp est traitée par le serveur (tomcat par exemple) crée lecode d'une classe java associée.

Par exemple, pour une page jsp nommée helloworld.jsp, tomcatcrée uneclasse helloworld$jsp.java.

À chaque page jsp correspond donc une classe java.

Le code html et une partie du code jsp sont utilisés par le serveur pourproduire la méthode _jspService appelée à l'exécution de jsp pourcréer la page résultat.

M. Belguidoum (UMC) Servlets et JSP 17 / 78

Page 18: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Génération de servlet à partir de JSP

M. Belguidoum (UMC) Servlets et JSP 18 / 78

Page 19: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Servlets

L'API pour les servlets constituée de deux packages :

javax.servlet

javax.servlet.http

JSDK (Java Servlet Development Kit) téléchargeable àhttp://java.sun.com/products/servlet

M. Belguidoum (UMC) Servlets et JSP 19 / 78

Page 20: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Variable JSP prédé�nies

Nom de la

variable

Classe Description

application javax.servlet.ServletContext l'application Web de la page JSP

config javax.servlet.ServletConfig informations d'initialisation de la

servlet JSP

exception java.lang.Throwable accessible seulement depuis les pages

d'erreur

out javax.servlet.jsp.JspWriter le �ot de sortie

page java.lang.Object l'instance de la servlet JSP

pageContext javax.servlet.jsp.PageContext les composants web en rapport avec

une requête

request javax.servlet.ServletRequest la requête courante

response javax.servlet.ServletResponse la réponse

session javax.servlet.http.HttpSession la session courante

M. Belguidoum (UMC) Servlets et JSP 20 / 78

Page 21: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Utilisation d'une servlet

Une servlet doit implémenter l'interface javax.servlet.Servletsoit directement,soit en dérivant d'une classe qui implémente déjà cette interface(comme GenericServlet ou HttpServlet)

L'interface javax.servlet.Servlet possède les méthodes pour :initialiser la servlet : init()recevoir et répondre aux requêtes des clients : service()

Contient deux paramètres :

protected void service(HttpServletRequest req ,

HttpServletResponse resp)

throws ServletException , java.io.IOException

Cette méthode écrite dans HttpServlet redirige la requête suivant sontype http.Méthode HTTP GET => doGet(...)

Méthode HTTP POST => doPost(...)

détruire la servlet et ses ressources : destroy()

M. Belguidoum (UMC) Servlets et JSP 21 / 78

Page 22: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

doGet(...), doPost(...)

Ont les mêmes paramètres que service(...) de HttpServlet :

public void doXXX(HttpServletRequest request ,

HttpServletResponse response)

throws ServletException ,java.io.IOException

En général on spécialise l'une des deux méthodes et la seconde appellela première.

M. Belguidoum (UMC) Servlets et JSP 22 / 78

Page 23: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

ServletsHTTP

M. Belguidoum (UMC) Servlets et JSP 23 / 78

Page 24: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Requêtes et réponses HTTP

M. Belguidoum (UMC) Servlets et JSP 24 / 78

Page 25: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Récupérer des paramètres de la requête

La requête envoie ses données par httpSouvent des champs d'un formulaireOn récupère ces données à travers l'objet request en utilisant laméthode String getParameter(String

nomComposantFormulaire) qui cherche la valeur d'un paramètre d'unformulaireExemple : <% String MotDePasse=

request.getParameter("MotDePasse">)

la méthode : getParameterValues() est utilisée pour récupérer unparamètre avec une valeur multiple, elle renvoie un tableau de chaînede caractères.Exemple : String[] sportsFavoris =

request.getParameterValues("sport");

Les paramètres peuvent être indiqués directement dans l'URL de larequête (réécriture d'URL) :http://serveur/servlet?param1=valeur1&param2=valeur2

M. Belguidoum (UMC) Servlets et JSP 25 / 78

Page 26: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Envoyer une réponse

On positionne le type MIME par : void setContentType(String

type)

On récupère le canal de sortie texte par : PrintWriter getWriter()

//le résultat est en HTML

response.setContentType( "text/html" );

// récupère un flux pour générer le résultat

PrintWriter out = response.getWriter ();

quelques types MIME courantstext/htmlimage/gifvideo/mpegaudio/mp3application/pdf

M. Belguidoum (UMC) Servlets et JSP 26 / 78

Page 27: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Correspondance JSP/Servlet

JSP d'origine

<h1 >Un nombre aléatoire </h1 >

<%= Math.random () %>

Code du servlet résultant de la traduction

public void _jspService (HttpServletRequest request ,

HttpServletResponse response )

throws ServletException , IOException {

response.setContentType(" text/html");

HttpSession session = request.getSession ();

JspWriter out= response.getWriter ();

out.println("<h1>Un nombre aléatoire </h1 >" );

out.println(Math.random ());

...

}

M. Belguidoum (UMC) Servlets et JSP 27 / 78

Page 28: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Cycle de vie d'une servlet

M. Belguidoum (UMC) Servlets et JSP 28 / 78

Page 29: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Exemple servlet

import java.io.*;

import javax.servlet .*;

import javax.servlet.http .*;

public class HelloServlet extends HttpServlet {

public void doGet(HttpServletRequest request ,

HttpServletResponse response)

throws ServletException , IOException {

//1. Spécifier le type MIME du contenu de la réponse

response.setContentType("text/html");

//2. Récupère le PrintWriter pour envoyer des données au client

PrintWriter out = response.getWriter ();

//3. Envoyer l'information au client

out.println("<html >");

out.println("<head ><title >Bonjour </title ></head >");

out.println("<body >");

out.println("<h1> Bonjour à tous </h1>");

out.println("</body ></html >");

}

public void doPost(HttpServletRequest request ,

HttpServletResponse response)

throws ServletException , IOException {

doGet(request , response );}

}M. Belguidoum (UMC) Servlets et JSP 29 / 78

Page 30: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Notion de module Web (.war)

Un servlet ne peut pas être déployé directement dans un conteneur, ildoit faire partie d'un module Web

Un module Web est un ensemble de librairies, de �chiers decon�gurations, de code Java (bytecode des servlets), JavaServerPages, servlets, classes Java, �chiers XML, et des pages web statiques(HTML, Javascript, ...)

le tout constituant une application web.Le module Web (�chier WAR, pour Web Application ARchive, estutilisé pour déployer une application web sur un serveur d'application(Tomcat ou GlassFish)

WEB-INF/

web.xmllib/Classes/

M. Belguidoum (UMC) Servlets et JSP 30 / 78

Page 31: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Notion de module Web (.war)

M. Belguidoum (UMC) Servlets et JSP 31 / 78

Page 32: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Notion de module Web (.war)

web.xml

Est un �chier XML dé�nissant la structure et le paramétrage del'application web qui a une syntaxe précisePar exemple : il contient le nom de la Classe (implémentant l'interfaceServlet) à utiliser pour tel ou tel chemin d'une URL WebSi l'application est fondée uniquement sur des �chiers JSP, alorsweb.xml peut être omis.Si l'application est fondée sur des servlets, alors web.xml indiquequelles sont les URL associées à chaque servlet.

Lib/ : contient tous les .jar dont notre programme a besoin

Classes/ : contient toutes les .class que lon produit

Le serveur d'applications va savoir, pour chaque application qu'ilhéberge, lire le web.xml et créer automatiquement un classpathspéci�que à l'application à partir des répertoires lib et classes

M. Belguidoum (UMC) Servlets et JSP 32 / 78

Page 33: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Notion de module Web (.war)

Problématique : comment di�user une application à base de servlets ?

souvent plusieurs servlet (�chiers .class)

des ressources additionnelles (.gif, .jpeg, .html, .xml, ...)

Solution

�chier .war qui représente une archive pour les applications web

di�usion d'un seul �chier prêt à l'emploi�chiers .war se manipulent (création, extraction, ...) avec lacommande jar

création : jar cvf app.war app

a�che le contenu : jar tf app.war

extraction : jar xvf app.war

M. Belguidoum (UMC) Servlets et JSP 33 / 78

Page 34: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Descripteur de déploiement web.xml

Chaque archive .war doit être accompagnée d'un �chier web.xmldécrivant les servlets inclues dans l'archive

2 balises principales : <servlet> et <servlet-mapping>

<web -app>

<servlet >

<servlet -name>HelloServlet </servlet -name>

<servlet -class >mypackage.MaPremiereServlet </servlet -class>

</servlet >

<servlet -mapping >

<servlet -name>HelloServlet </servlet -name>

<url -pattern >/version/beta/Hello</url -pattern >

</servlet -mapping >

</web -app>

M. Belguidoum (UMC) Servlets et JSP 34 / 78

Page 35: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Descripteur de déploiement web.xml

une balise <servlet> par servletun nom et une classe par servletle �chier .class de la servlet doit être stockés dans WEB-INF/classeséventuellement sous-répertoires correspondant aux packages :WEB-INF/classes/mypackage/HelloServlet.class

une balise <servlet-mapping> par servletun nom (doit correspondre à une balise <servlet> existante)une URL relative permettant d'accéder à la servlet

plusieurs autres balises peuvent être utilisées voirhttp://java.sun.com/j2ee/dtds/web-app_2_2.dtd

M. Belguidoum (UMC) Servlets et JSP 35 / 78

Page 36: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Installation d'une archive .war dans Tomcat

dans le répertoire <tomcat_root>/webapps

webapps

|-> myapp.war

|-> myapp

|-> index.html

|-> WEB-INF

|-> web.xml

|-> classes

|-> mypackage

|-> HelloServlet.class

URL pour accéder à la servlet :http://machine.com:8080/myapp/version/beta/Hello

dépend <url-pattern> fournit dans web.xml

M. Belguidoum (UMC) Servlets et JSP 36 / 78

Page 37: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Servlet et JSP

Descripteur de déploiement web.xml

Paramètres d'initialisationpossibilité d'inclure des paramètres d'initialisation de la servlet dansweb.xml

avantage : peuvent être changés sans avoir à recompiler

<servlet >

<servlet -name >HelloServlet </servlet -name >

<servlet -class >mypackage.HelloServlet </servlet -class >

<init -param >

<param -name > nom </param -name >

<param -value > valeur </param -value >

</init -param >

</servlet >

Dans le code de la servlet (par ex. méthode init)String valeur = getInitParameter("nom");

M. Belguidoum (UMC) Servlets et JSP 37 / 78

Page 38: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités

1 Introduction

2 Servlet et JSP

3 Quelques fonctionnalités

4 JavaBeans

5 Conclusion

M. Belguidoum (UMC) Servlets et JSP 38 / 78

Page 39: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités Session

Session

le web n'o�re par défaut aucun suivi de session.

Cette fonctionnalité est supportée par les servlets à l'aide de l'objetHttpSession obtenu à l'aide de request.getSession()

Objectif : être capable de "suivre" l'activité du client sur plusieurspages

HttpSession session = request.getSession(true) : retourne lasession courante pour cet utilisateur ou une nouvelle session

HttpSession session = request.getSession(false) : retournela session courante pour cet utilisateur ou null

Les méthodes public void putValue(String name, Object

value) et public Object getValue(String name) permettentrespectivement d'attribuer (i.e. modi�er) et consulter une valeur desession identi�ée par son nom.

M. Belguidoum (UMC) Servlets et JSP 39 / 78

Page 40: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités Session

Session

Méthodes d'un objet de type HttpSession

void setAttribute(String name, Object value) : ajoute uncouple (name, value) pour cette session

Object getAttribute(String name) : retourne l'objet associé à laclé name ou null

void removeAttribute(String name) : enlève le couple de cléname

java.util.Enumeration getAttributeNames() : retourne tous lesnoms d'attributs associés à la session

void setMaxIntervalTime(int seconds) : spéci�e la durée de viemaximum d'une session

long getCreationTime() / long getLastAccessedTime() :retourne la date de création / de dernier accès de la session en msdepuis le 1/1/1970, 00h00 GMT new Date(long)

M. Belguidoum (UMC) Servlets et JSP 40 / 78

Page 41: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités Session

Session : exemple

Suivi de session pour un compteur

public class HttpSessionServlet extends HttpServlet {

protected void doGet(HttpServletRequest req , HttpServletResponse res)

throws ServletException , IOException {

res.setContentType("text/plain"); PrintWriter out = res.getWriter ();

HttpSession session = req.getSession ();

Integer count = (Integer)session.getAttribute("count");

if (count == null)

count = new Integer (1);

else

count = new Integer(count.intValue () + 1);

session.setAttribute("count", count );

out.println("Vous avez visité cette page " + count + " fois.");

}

}

M. Belguidoum (UMC) Servlets et JSP 41 / 78

Page 42: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités Cookies

Les cookies

Permettent à un serveur Web de stocker de l'information chez un client

Un cookie est une information envoyée au navigateur (client) par unserveur WEB qui peut ensuite être relue par le client

Lorsqu'un client reçoit un cookie, il le sauve et le renvoie ensuite auserveur chaque fois qu'il accède à une page sur ce serveur

Le client a la possibilité d'interdire leur dépôt dans son navigateur

La valeur d'un cookie pouvant identi�er de façon unique un client, ilssont souvent utilisés pour le suivi de session

Les cookies ont été introduits par la première fois dans NetscapeNavigator

M. Belguidoum (UMC) Servlets et JSP 42 / 78

Page 43: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités Cookies

Les cookies

L'API Servlet fournit la classe javax.servlet.http.Cookie pourtravailler avec les Cookies :

Cookie(String name, String value) : construit un cookieString getName() : retourne le nom du cookieString getValue() : retourne la valeur du cookiesetValue(String new_value) : donne une nouvelle valeur au cookiesetMaxAge(int expiry) : spéci�e l'âge maximum du cookie

Pour la création d'un nouveau cookie, il faut l'ajouter à la réponse(HttpServletResponse)addCookie(Cookie mon_cook) : ajoute à la réponse un cookie

La Servlet récupère les cookies du client en exploitant la réponse(HttpServletRequest)Cookie[] getCookies() : récupère l'ensemble des cookies du site

M. Belguidoum (UMC) Servlets et JSP 43 / 78

Page 44: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités Cookies

Les cookies : exemples

Code pour créer un cookie et l'ajouter au client

Cookie cookie = new Cookie("Id", "123");

res.addCookie(cookie );

Code pour récupérer les cookies

Cookie [] cookies = req.getCookies ();

if (cookies != null) {

for (int i = 0; i < cookies.length; i++) {

String name = cookies[i]. getName ();

String value = cookies[i]. getValue ();

}

}

M. Belguidoum (UMC) Servlets et JSP 44 / 78

Page 45: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités Cookies

Les cookies

Le plus gros problème des cookies est que les navigateurs ne lesacceptent pas toujours

L'utilisateur peut con�gurer son navigateur pour qu'il refuse ou pas lescookies

Les navigateurs n'acceptent que 20 cookies par site, 300 par utilisateuret la taille d'un cookie peut être limitée à 4096 octets

M. Belguidoum (UMC) Servlets et JSP 45 / 78

Page 46: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités Upload

Upload

Par exemple dans le cas de récupération de �chiers uploadés à partird'un fomulaire

Dé�nition des formulaires avec upload

<HTML > <BODY >

<FORM ACTION="url servlet traitement du formulaire" METHOD=POST

ENCTYPE="multipart/form -data">

Sélectionner un fichier <INPUT TYPE=FILE NAME="fichier">

<INPUT TYPE=SUBMIT VALUE="Envoi">

<INPUT TYPE=RESET VALUE="Remise à zéro"> <P>

</FORM >

</BODY > </HTML >

M. Belguidoum (UMC) Servlets et JSP 46 / 78

Page 47: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités Upload

Upload

M. Belguidoum (UMC) Servlets et JSP 47 / 78

Page 48: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités Upload

Upload

Récupération des �chiers uploadés à partir d'un formulaire

récupération du �ux binaire, programmer le décodage /

librairie existante Commons FileUpload :http://jakarta.apache.org/commons/fileupload/

le upload est traité dans la méthode service d'une servlet

import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.FileUploadBase;

FileUploadBase fub = new FileUploadBase ();

List files = fub.parseRequest(request );

for( Iterator i = files.iterator () ; i.hasNext () ; ) {

FileItem fi = (FileItem) i.next ();

File monFichier = new File("...");

fi.write(monFichier );

}

M. Belguidoum (UMC) Servlets et JSP 48 / 78

Page 49: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités Chaînage et collaboration des servlets

Chaînage et collaboration des servlets

Les Servlets s'exécutant dans le même serveur peuvent dialoguer entreellesDeux principaux styles de collaboration :

Partage d'information : un état ou une ressource.Exemple : un magasin en ligne pourrait partager les informations sur lestock des produits ou une connexion à une base de donnéesPartage du contrôle : une requête. Réception d'une requête par uneServlet et laisser l'autre Servlet une partie ou toute la responsabilité dutraitement

M. Belguidoum (UMC) Servlets et JSP 49 / 78

Page 50: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités Chaînage et collaboration des servlets

Partage d'information

La collaboration est obtenue par l'interface ServletContext

L'utilisation de ServletContext permet aux applications web dedisposer de son propre conteneur d'informations unique

Une Servlet retrouve le ServletContext de son application web parun appel à getServletContext()

Exemples de méthodesvoid setAttribute(String name, Object o) : lie un objet sous lenom indiquéObject getAttribute(String name) : retrouve l'objet sous le nomindiquéEnumeration getAttributeNames() : retourne l'ensemble des nomsde tous les attributs liésvoid removeAttribute(String name) : supprime l'objet lié sous lenom indiqué

M. Belguidoum (UMC) Servlets et JSP 50 / 78

Page 51: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités Chaînage et collaboration des servlets

Exemple : partage d'information

public class PizzasAdmin extends HttpServlet {

protected void doGet(HttpServletRequest req ,HttpServletResponse res)

throws ServletException , IOException {

res.setContentType("text/plain");

PrintWriter out = res.getWriter ();

ServletContext context = this.getServletContext ();

context.setAttribute("Specialite", "4 Fromage");

context.setAttribute("Date", new Date ());

out.println("La pizza du jour a été définie.");}}

public class PizzasClient extends HttpServlet {

protected void doGet(HttpServletRequest req ,HttpServletResponse res)

throws ServletException , IOException { ...

ServletContext context = this.getServletContext ();

String pizza_spec = (String)context.getAttribute("Specialite");

Date day = (Date)context.getAttribute("Date");

DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM );

String today = df.format(day);

out.println("Aujourd 'hui (" + today + "),

notre specialite est : " + pizza_spec );}}

M. Belguidoum (UMC) Servlets et JSP 51 / 78

Page 52: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités Chaînage et collaboration des servlets

Partage du contrôle

Les Servlets peuvent partager ou distribuer le contrôle de la requêteDeux types de distribution

Distribuer un renvoi : une Servlet peut renvoyer une requête entièreDistribuer une inclusion : une Servlet peut inclure du contenu généré

Les avantages sont :aggrégation des résultats fournis par plusieurs servlets : meilleuremodularité et meilleure réutilisationLa délégation de compétencesUne meilleure abstraction et une plus grande souplesseArchitecture logicielle MVC (Servlet = contrôle et JSP = présentation)

M. Belguidoum (UMC) Servlets et JSP 52 / 78

Page 53: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités Chaînage et collaboration des servlets

Partage de contrôle

Utilisation d'un RequestDispatcher obtenu via un objet requestRequestDispatcher rd =

request.getRequestDispatcher(String path);

path est un chemin relatif ou absolu ne pouvant pas sortir du contexte

Inclusion du résultat d'une autre servlet :rd.include(request, response);

Délégation du traitement à une autre servlet :rd.forward(request, response);

sendRedirect() est utilisée pour les redirections externes e�ectuéespar le client car aucune recherche getContext() n'est nécessairePour distribuer en dehors du contexte courant il faut :

Identi�er le contexte extérieur (utilisation de getContext())Utiliser la méthode getRequestDispatcher(String path)

Le chemin est uniquement en absolu

M. Belguidoum (UMC) Servlets et JSP 53 / 78

Page 54: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités Concurrence

Gestion de la concurrence

Par défaut les servlets sont exécutées de façon multi-threadée

Si une servlet doit être exécutée en exclusion mutuelle (ex. : accès àdes ressources partagées critiques) implantation de l'interfacemarqueur SingleThreadModel

public class CompteurServlet

extends HttpServlet

implements SingleThreadModel {

public void service( ServletRequest request ,

ServletResponse response )

throws ServletException , IOException {

/** Du code en exclusion mutuelle avec lui -même */

} }

Autre solution : dé�nir du code synchronized dans la servlet

M. Belguidoum (UMC) Servlets et JSP 54 / 78

Page 55: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités sécurité

Sécurité : authenti�cation

Conserver les informations sensibles dans les mains des utilisateursNous distinguons plusieurs types d'autorisation :

BASIC : fournit par le protocole HTTP basé sur un modèle simple dedemande/réponse (codage Base64)FORM : authenti�cation ne reposant pas celle du protocole HTTP

M. Belguidoum (UMC) Servlets et JSP 55 / 78

Page 56: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités sécurité

Sécurité : authenti�cation

BASIC

FORM

M. Belguidoum (UMC) Servlets et JSP 56 / 78

Page 57: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités sécurité

Sécurité : identi�cation par les Servlets

Gérée par le conteneur de Servlets (Ident 1) :Spéci�cation d'un domaine de sécurité dans le �chier de con�gurationweb.xml

Les utilisateurs sont gérés (l'utilisateur existe-il, le mot de passe est-ilcorrect, etc.) uniquement par le conteneur de ServletsBasée sur les rôles (BASIC) ou à base de formulaire (FORM)

E�ectuée à l'intérieur des Servlets (Ident 2) :Les utilisateurs sont stockés dans une base de données, un �chier, etc.La véri�cation est e�ectuée dans les Servlets (besoin d'un codage)Personnalisée (BASIC) ou personnalisée à base de formulaire (FORM)

M. Belguidoum (UMC) Servlets et JSP 57 / 78

Page 58: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités sécurité

Authenti�cation basée sur les rôles : Ident 1

Exemple : Servlet qui après identi�cation a�che un ensemble d'informations

M. Belguidoum (UMC) Servlets et JSP 58 / 78

Page 59: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités sécurité

Authenti�cation basée sur les rôles : Ident 1

Besoin de modi�cation du �chier de con�guration web.xml de l'applicationWEB considérée

M. Belguidoum (UMC) Servlets et JSP 59 / 78

Page 60: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités sécurité

Authenti�cation personnalisée à base de formulaire : Ident 2

Exemple : Servlet qui traite les autorisations de type FORM

M. Belguidoum (UMC) Servlets et JSP 60 / 78

Page 61: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Quelques fonctionnalités Accès aux bases de données

Exemple : connexion à une base de données

public class DataBaseServlet extends HttpServlet {

protected void doGet(HttpServletRequest req , HttpServletResponse res)

throws ServletException , IOException {

res.setContentType("text/html");

PrintWriter out = res.getWriter ();

try {

Class.forName("com.mysql.jdbc.Driver");

Connection ma_connexion =

DriverManager.getConnection(" jdbc:mysql :// localhost :1527/ PersonDB");

Statement mon_statement = ma_connexion.createStatement ();

ResultSet mon_resultat = mon_statement.executeQuery("SELECT NAME ,

FIRSTNAME , OLDYEAR FROM PERSON");

while (mon_resultat.next ()) {

out.print("Nom : " + mon_resultat.getString (1));

out.print(" Prénom : " + mon_resultat.getString (2));

out.println(" Age : " + mon_resultat.getInt (3));

out.println("<br>");

}

} catch(SQLException e) {

...

}

}

M. Belguidoum (UMC) Servlets et JSP 61 / 78

Page 62: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

JavaBeans

1 Introduction

2 Servlet et JSP

3 Quelques fonctionnalités

4 JavaBeans

5 Conclusion

M. Belguidoum (UMC) Servlets et JSP 62 / 78

Page 63: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

JavaBeans

JSP et Java beans : motivation

Les protocoles web classiques ne gèrent pas de session : pas deconservation sur le serveur des informations sur l'utilisateur, comme unmot de passe utilisé pour interroger une base de données, etc.

L'architecture JSP/Servlets propose une solution simple et élégante lesjavabeans.

avoir le moins de code Java possible dans une page JSP (HTML)

Sous-traiter le code à un Java bean

M. Belguidoum (UMC) Servlets et JSP 63 / 78

Page 64: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

JavaBeans

JSP et Java beans : motivation

Un javabean est un objet java, identi�é par un nom (une chaîne decaractères), dont la durée de vie peut dépasser la simple requête http.

Les beans sont utilisables à partir des jsp : <jsp:useBean>Pour qu'un objet java puisse être utilisé comme bean sa classe doit :

implémenter java.io.Serializable ;disposer d'un constructeur par défaut (i.e. sans argument) ;avoir des accesseurs nommés setXX et getXX, où XX est le nom d'unchamp.la classe doit être explicitement située dans un package.

M. Belguidoum (UMC) Servlets et JSP 64 / 78

Page 65: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

JavaBeans

Exemple de bean : le bean Compteur

package test;

public class Compteur implements java.io.Serializable {

private int valeur;

public Compteur(int v) {

valeur= v;

}

public Compteur () {

valeur= 0;

}

public void incremente () {

valeur ++;

}

public int getValeur () {

return this.valeur;

}

public void setValeur(int argValeur) {

this.valeur = argValeur;

}

}

M. Belguidoum (UMC) Servlets et JSP 65 / 78

Page 66: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

JavaBeans

Accès aux beans depuis les jsp

Les balises spéci�ques au beans sont :<jsp:useBean ... /> : déclarer un bean avec un nom (id), unedurée de vie (scope) et le nom de la classe utilisée pour implémenterle bean (class) de la forme nompackage.NomClasse

la durée peut être �xée à : page, request, session ou application.request : le bean est détruit lorsque le client demande une nouvellepage. Le passage des paramètres de suivi de session doit ainsi êtreréalisé manuellement.page : rarement employée, cette portée est limitée à la page en cours(aucune information de session ne peut être récupérée) : ce bean estaccessible à n'importe quel endroit de la page.session : commence à la connexion, et se termine quand l'utilisateurarrête son navigateur, ou après un temps d'inactivité paramétrable(�xable par la méthode setMaxInactiveInterval(int interval)

de la classe HttpSession. Chaque utilisateur connecté aura sa propreversion d'un bean session.application signi�e que le bean existe pour toute la durée de vie duserveur tomcat ; le bean est alors unique pour tous les utilisateurs.

M. Belguidoum (UMC) Servlets et JSP 66 / 78

Page 67: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

JavaBeans

Accès aux beans depuis les jsp

Les balises spéci�ques au beans sont :<jsp:getProperty ... /> permet de remplir les valeurs des champsdu bean :

name : nom du bean (id="...")property : nom de la propriété, qui doit être un des champs dé�nis parle bean.

<jsp:setProperty ... /> permet de �xer la valeur d'un champ dubean :

name : nom du bean ;property : nom du champ ;value : valeur à donner au champ.

M. Belguidoum (UMC) Servlets et JSP 67 / 78

Page 68: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

JavaBeans

Accès aux beans depuis les jsp

<!doctype html PUBLIC ' -//W3C//DTD HTML 3.2//EN'>

<html >

<head >

<title >test Beans 1</title >

</head >

<body >

<!-- déclaration du bean -->

<jsp:useBean id="cpt" scope="application" class="test.Compteur"/>

<!-- utilisation du bean -->

Le compteur vaut : <jsp:getProperty name="cpt" property="valeur"/>

Quand on fixe la valeur , on utilise en plus l'attribut <tt >param </tt >.

<%

// Utilisation du bean par du code java :

cpt.incremente ();

%>

</body >

</html >

M. Belguidoum (UMC) Servlets et JSP 68 / 78

Page 69: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

JavaBeans

accès aux beans depuis les servlets

La création et la lecture des beans depuis des servlets di�èrent selon laportée (scope) du bean : session et application.

session : On doit procéder en deux temps.

Il faut d'abord récupérer un objet de classe HttpSession :HttpSession session= request.getSession(true);

On peut ensuite récupérer ou donner une valeur d'un bean en utilisant :les méthodes getAttribute et setAttribute

application : la méthode getServletContext() de la classeGenericServlet (dont hérite toute servlet) renvoie un objet de classeServletContext, qui représente l'application. Cet objet dispose luiaussi de méthodes setAttribute et getAttribute.

M. Belguidoum (UMC) Servlets et JSP 69 / 78

Page 70: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

JavaBeans

Architecture JSP : modèle 1

M. Belguidoum (UMC) Servlets et JSP 70 / 78

Page 71: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

JavaBeans

Architecture JSP : modèle 2

M. Belguidoum (UMC) Servlets et JSP 71 / 78

Page 72: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

JavaBeans

Architecture MVC

modèle = les données accédées par un code Java (JDBC, RMI, EJB,etc.)

vues = JSP

contrôleur = servlets

M. Belguidoum (UMC) Servlets et JSP 72 / 78

Page 73: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

JavaBeans

Architecture MVC : principe de fonctionnement

1 Par le biais d'une page web, l'utilisateur émet une requête HTTP auserveur web en cliquant sur un lien ou sur un bouton. Cette requêteest prise en charge par le contrôleur (servlet).

2 Le contrôleur exécute les traitements nécessaires (appelle un EJBStateless par exemple) et récupère le modèle, c'est-à-dire les entitybeans.

3 Le contrôleur sélectionne alors la JSP qui sera en charge de laconstruction de la réponse et lui transmet les entity beans contenantles données à a�cher.

4 La JSP construit la réponse en faisant appel aux accesseurs des entitybeans.

5 La réponse HTTP est transmise au navigateur qui l'a�che sous formede page web.

M. Belguidoum (UMC) Servlets et JSP 73 / 78

Page 74: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

JavaBeans

Architecture MVC

Syntaxe dans la servlet pour lancer la JSP :

public void doPost(HttpServletRequest request ,

HttpServletResponse response ){

// héritée de GenericServlet

ServletContext context = getServletContext ();

RequestDispatcher dispatcher =

context.getRequestDispatcher("/maPageMiseEnForme.jsp");

dispatcher.forward(request , response );

}

La JSP extrait les objets de request grâce à getAttribute()

<% ArrayList theList = (ArrayList)

request.getAttribute("nomDelObjet");

// maintenant , utiliser l'ArrayList

%>

M. Belguidoum (UMC) Servlets et JSP 74 / 78

Page 75: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

JavaBeans

Architecture MVC

La servlet peut passer des valeurs à la JSP appelé grâce àsetAttribute()

public void doPost(HttpServletRequest request ,

HttpServletResponse response) {

ArrayList theList = // un objet à passer

// ajoute à la requête

request.setAttribute("nomDelObjet", theList );

ServletContext context = getServletContext ();

RequestDispatcher dispatcher =

context.getRequestDispatcher("/jspAAppeler.jsp");

dispatcher.forward(request , response );

}

M. Belguidoum (UMC) Servlets et JSP 75 / 78

Page 76: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Conclusion

1 Introduction

2 Servlet et JSP

3 Quelques fonctionnalités

4 JavaBeans

5 Conclusion

M. Belguidoum (UMC) Servlets et JSP 76 / 78

Page 77: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Conclusion

Conclusion

les Servlets permettent de développer des applications Web en JavaPlusieurs fonctionnalités

traitement des données fournies par les utilisateursgestion de sessiongestion de cookiesCollabiration et partage d'information et de contrôleformat d'archivage .war

servlet : représente la partie contrôle de l'architecture MVC d'uneapplication web

intéraction avec JSP et java beans

M. Belguidoum (UMC) Servlets et JSP 77 / 78

Page 78: Introduction aux servlets et JSP - files.gl3.webnode.frfiles.gl3.webnode.fr/200000133-6b5066c4a4/05-Java-ServletJSP.pdf · Introduction Servlet et JSP Les servlets constituent la

Conclusion

Références

JSP et servlets e�caces : production de sites dynamiques, caspratiques, Jean Luc Deleage

Documentation :http://java.sun.com/javaee/5/docs/api/index.html

Tutorial à : http://java.sun.com/javaee/5/docs/tutorial/doc/bnafd.html

http://java.sun.com/products/servlet/index.html

basé sur les cours de : Lionel Seinturier, Mickaël BARON, GaëlThomas, etc.

M. Belguidoum (UMC) Servlets et JSP 78 / 78