La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet

Présentations similaires


Présentation au sujet: "LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet"— Transcription de la présentation:

1 LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Philippe Salvan

2 Architecture 3-niveaux Servlets/JSP
HTTP Serveur SQL JDBC, ODBC, SQL Net Serveur HTTP JSP/Servlets Beans Pool DB

3 Servlets : Généralités
Qu’est-ce qu’une servlet ? Un composant (programme) d’un serveur Serveur Web Serveur d’Application Une class Java gérée par un Conteneur de Servlet Chargé dynamiquement par le serveur Générant dynamiquement des pages HTML/XML… Interagissant avec un client HTTP dans un mode requête/réponse Equivalent à cgi-bin NS API, ISAPI Modules Apache

4 Servlets : Généralités
Conteneur de Servlet Elément d’un serveur Web ou J2EE Partie du serveur (module) Plug-in ajouté au serveur Le serveur en personne ! Protocoles supportés HTTP1.1, HTTPS

5 Servlets : Généralités
WEB Browser (client) HTTP WEB Server request response Servlet Container cgi-bin Servlet API jvm jsp MyServlet

6 The javax.servlet Package
L’interface Servlet Abstraction pour toute implémentation de servlet Déclare toutes les méthodes permettant de gérer une servlet et de communiquer avec le client Web Les méthodes sont implémentées par le développeur dans la classe HttpServlet (ou une sous-classe)

7 L’interface Servlet Servlet GenericServlet HttpServlet MaServlet class
doGet(HttpServletRequest req, HttpServletResponse resp) doPost(…, …) HttpServlet class doGet( HttpServletRequest req, HttpServletResponse resp) doPost(…, …) MaServlet

8 Communication avec le Client Web
Lors de la communication avec le client Web, la Servlet reçoit deux objets au travers d’une méthode parmi deux Un objet ServletRequest qui encapsule la communication en provenance du client (requête) Un objet ServletResponse qui encapsule la communication vers le client (réponse)

9 Communication avec le Client Web
Pour récupérer les requêtes de type GET Cas où le client envoie Un paramètre au travers d’une URL Un formulaire avec l’attribut METHOD positionné à GET <FORM ACTION=" METHOD="GET" > Méthode à utiliser : doGet(HttpRequest req, HttpRequest resp)

10 Communication avec le Client Web
Pour récupérer les requêtes de type POST Cas où le client envoie Un formulaire avec l’attribut METHOD positionné à POST <FORM ACTION=" METHOD=« POST" > Méthode à utiliser : doPost(HttpRequest req, HttpRequest resp)

11 Communication avec le Client Web
Les deux méthodes peuvent exister simultanément public void doGet( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException { … } public void doPost( HttpServletRequest req, doGet(req, resp); }

12 Communication avec le Client Web
Renvoi du type MIME approprié public void doGet( HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.println("<html>"); out.println("<body>"); out.println("<head>"); out.println("<title>Page1</title>"); out.println("</head>"); out.println("<body>"); out.println("<h3>ESSAI1 </h3> <br> Hi"); out.println("</body>"); out.println("</html>"); }

13 L’interface HttpServletResponse
Implémentation par le moteur de servlet public void setContentType(java.lang.String type) Permet de typer l’objet de réponse adressé au client en précisant le type MIME du document généré : "text/html", …. public java.io.PrintWriter getWriter() throws java.io.IOException Fournit un objet stream permettant de renseigner le document de sortie à générer public void addCookie( Cookie cookie) Ajoute un cookie à la réponse public void sendRedirect(java.lang.String URLlocation) Pour rediriger la réponse (la nouvelle URL est renvoyée au client)

14 L’interface HttpServletRequest
Implémentation par le moteur de servlet Permet de typer l’objet de requête et d’obtenir des informations sur le client public java.lang.String getParameter(java.lang.String name) Récupère un paramètre par son nom (null si inexistant) public java.lang.String [] getParameterValues( java.lang.String name) Pour récupérer un tableau de valeurs, pour un paramètre multi-valué public java.lang.Enumeration getParameterNames() Pour récupérer tous les noms de paramètres adressés par le client public Cookie [] getCookies() Pour récupérer tous les cookies accessibles dans le navigateur du client; null si aucun cookies

15 L’interface HttpServletRequest
public HttpSession getSession() Récupère la session courante sous forme d’objet transient contenant les données de session; crée la session si non encore existante public HttpSession getSession(boolean create) Si create == true : Crée la session si non encore existante Si create == false : Renvoie null si l’objet de session n’existe pas

16 L’interface HttpSession
Implémentation par le moteur de servlet Type d’un objet de session transient Permet de sauvegarder des données transientes tout au long des communciations avec une même instance de navigateur client Les objets ainsi stockés son appelés « valeurs » L’implémentation utilise un ID de session, sauvegardé sur le poste client sous la forme d’un cookie public void putValue( java.lang.String name, java.lang.Object value) Ajoute le couple (name, value) aux informations de session; remplace l’ancienne valeur le cas échéant public void removeValue(java.lang.String name) Supprime le couple (name, value) des informations de session public java.lang.Object getValue(java.lang.String name) Obtient la veleur d’une information de session repérée par son nom Renvoie null si aucune information de ce nom

17 JSP : Généralités Extension de HTML/XML à l’aide de Tags propriétaires
Permet d’ajouter du code Java et/ou Javascript directement dans du HTML, et ainsi d’étendre des pages HTML statiques en pages dynamiques Basé sur la technologie des Servlets Java Le moteur de JSP est lui-même un servlet qui tranforme tout xxx.jsp en un servlet _xxx.java, puis le compile en un fichier _xxx.class

18 JSP : Commentaires Commentaires HTML (envoyés au client) Syntaxe JSP
<!-- comment [ <%= JavaExpression %> ] --> Exemple <% page language="java" %> <HTML> <HEAD><TITLE> Page 1 </TITLE></HEAD> <BODY> <H2> Essais de commentaires No 1 </H2> <!–- Author: P.Salvan, Date : <%=(new java.util.Date()).toLocaleString()%> --> ……… </BODY>

19 JSP : Commentaires Commentaires JSP (non envoyés au client)
Syntaxe JSP <%-- JSP comment --%> Exemple <% page language="java" %> <HTML> <HEAD><TITLE> Page 2 </TITLE></HEAD> <BODY> <H2> Comment 2 </H2> <%–- Auteur: P.Salvan, 28 oct %> ……… </BODY>

20 JSP : Déclarations Déclarations Java (non adressées au client) = attributs de classe du servlet Syntaxe JSP <%! déclarations %> Exemple 1 <% page language="java" %> <%! Int n=3; %> <%! String user; %> <HTML> <HEAD><TITLE> Page de commentaires 1 </TITLE></HEAD> <BODY> <H2> Essais de commentaires No 1 </H2> <% user= "richard" %> ……… Alors que <%= user %> était pour la <%=n%> eme fois ……. </BODY>

21 JSP : Declarations Résultats <HTML>
<HEAD><TITLE> Page de commentaires 1 </TITLE></HEAD> <BODY> <H2> Essais de commentaires No 1 </H2> ……… Alors que richard était pour la 3eme fois …… …… </BODY>

22 JSP : Directives Permet de contrôler le traitement d’une page JSP
Syntaxe JSP : directive [ attribute= value] %> Exemple include file= "path" %> Permet d’insérer une page dans la page JSP courante avant d’être traitée (path désigne une URL relative)

23 JSP : directives de page
page language = "java" %> Spécifie le langage page import = "java.sql" %> Importe une librairie page errorPage = "path" %> Renvoie une certaine page en cas d’erreur (exception non traitée). La page renvoyée peut être une page JSP. La variable exception permet une gestion dynamique des exceptions page isErroPage= "true" %> Simule une exception. page buffer = "none" %> Le flux de sortie est renvoyé au fur et à mesure à ServletResponse page buffer = « 12kb" %> Le flux de sortie est bufferisé avant d’être renvoyé à ServletResponse

24 JSP : Actions Expressions : Scriptlets Exemple Redirection
L’expression est évaluée et insérée dans le flux HTML produit Equivalent à : out.print(expression) Scriptlets <% javacode %> Le code java est exécuté; toute instruction du type out.print(expression) insère du texte dans le flux de sortie HTML. Exemple <% String name =request.getParameter("hisname"); …. out.print(name) %> Redirection <jsp:forward page="path"/> Le contrôle de mla génération est transféré à une autre page; l’éventuel document en cours de génération est perdu.

25 JSP : Création d’objets transients
<jsp:useBean id='objectname' class= 'classname' scope= [page|request|session|application]> body </jsp:useBean> Un objet transient est créé s’il n’existait pas déjà. Cet objet est accessible par son nom au sein du ‘scope’ choisi Une variable java nommée ‘objectname’ est déclarée dans la classe et assignée à cette valeur.

26 JSP : Accès aux objets transients
<jsp:getProperty name='objectname' property= 'attributname' /> Permet d’ajouter un nouvel attribut <jsp:setProperty name= 'objectname' value= value Met à jour la valeur de l’attribut

27 JSP : Objets prédéfinis
HttpServletRequest request Représente la requête. Permet l’accès aux paramètres passés par le client. HttpServletResponse response Représente la réponse qui sera envoyée au client HttpSession session Objet transient, géré par utilisation d’un cookie. ServletContext application Objet transient, représente l’application qui contient la page JSP. JspWriter out Permet d’écrire des informations dans la page HTML générée qui sera adressée au client


Télécharger ppt "LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet"

Présentations similaires


Annonces Google