Les servlets - PowerPoint PPT Presentation

1 / 18
About This Presentation
Title:

Les servlets

Description:

A.Obaid - UQAM ARCHITECTURES DES SYST MES R PARTIS (INF4481) Les servlets.2 ... Refresh: P riode de rafra chissement et de chargement automatique de pages. ... – PowerPoint PPT presentation

Number of Views:35
Avg rating:3.0/5.0
Slides: 19
Provided by: sss89
Category:

less

Transcript and Presenter's Notes

Title: Les servlets


1
Les servlets
  • Source http//www.apl.jhu.edu/7Ehall/java/Servle
    t-Tutorial/index.html

2
Les servlets
  • Les servlets sont l'équivalent pour Java de la
    programmation en CGI.
  • Extension dun serveur WEB Java.
  • Ils roulent sur un serveur web et construisent
    des pages web.
  • Les servlets sont acceptées par certains serveurs
    et pas d'autres
  • (voir http//java.sun.com/products/servlet/industr
    y.html)
  • On peut aussi utiliser le Java Server Web
    Development Kit (JSWDK).
  • Les servlets, comparées aux CGI sont
  • Efficaces Les CGI entraînaient le création d'un
    processus pour chaque requête. Avec des servlets,
    chaque demande est manipulée par un thread Java.
  • Pratiques On utilise Java et on n'a pas besoin
    d'autres langages (Perl, shell, ).
  • Puissantes Les servlets de Java permettent des
    fonctions que les CGI rendent difficiles (ex.
    parler à un serveur web).
  • Portables Par l'utilisation de Java.

3
Les autres technologies
  • Active Server Pages (ASP)
  • ASP est une technologie similaire faite par
    Microsoft.
  • Servlets pures
  • Il est préférable de modifier une page HTML de
    façon dynamique.
  • Server-Side Include (SSI)
  • Permet d'inclure des données externes et de les
    inclure dans une page HTML dynamique.
  • JavaScript
  • Pour améliorer l'interface cliente sans manipuler
    des donnes provenant du serveur

4
Structure d'une servlet
  • import java.io.
  • import javax.servlet.
  • import javax.servlet.http.
  • public class SomeServlet extends HttpServlet
  • public void doGet(HttpServletRequest request,
  • HttpServletResponse response)
  • throws ServletException, IOException ...
  • // Utiliser "request" pour lire les
    en-tetes HTTP (e.g. cookies)
  • // et les donnees des formulaires HTML.
  • // Utiliser "response" pour spécifier les
    réponses HTTP
  • PrintWriter out response.getWriter()
  • // Utilser "out" pour envoyer le contenu
    au navigateur.

5
Exemples de servlets
  • HelloWorld.java
  • package hall
  • import java.io.
  • import javax.servlet.
  • import javax.servlet.http.
  • public class HelloWorld extends HttpServlet
  • public void doGet(HttpServletRequest request,
  • HttpServletResponse response)
  • throws ServletException, IOException
  • PrintWriter out response.getWriter()
  • out.println("Hello World")
  • Execution Avec JWS, les servlets sont placées
    dans un répertoire principal du serveur et
    invoquées à l'aide de http//host/servlet/HelloW
    orld

6
Exemples de servlets
  • HelloWWW.java
  • package hall
  • import java.io.
  • import javax.servlet.
  • import javax.servlet.http.
  • public class HelloWWW extends HttpServlet
  • public void doGet(HttpServletRequest request,
    HttpServletResponse response)
  • throws ServletException, IOException
  • response.setContentType("text/html")
  • PrintWriter out response.getWriter()
  • out.println( "ltHTMLgt\n" "ltBODYgt\n"
    "ltH1gtHello WWWlt/H1gt\n"
  • "lt/BODYgtlt/HTMLgt")

7
Les servlets et les formulaires
  • Les servlets permet l'extraction de données des
    formulaires de façon automatique.
  • La méthode getParameter et getParameterValue de
    HttpServletRequest permettent d'extraire la
    (les) valeur(s) d'un paramètre donné.
  • La méthode getParameterNames permet d'extraire
    les noms des paramètres d'une requête donnée.

8
Les URL
  • Les URLs des requêtes ont la forme
  • http//host/path?userMartyHalloriginbwides
    tlax
  • Ils permettent de passer les données du
    formulaire au serveur Web (Méthodes GET et
    POST).
  • Avec la méthode GET il faut utiliser la variable
    QUERY_STRING pour séparer les attributs de leurs
    valeurs
  • userMartyHalloriginbwidestlax
  • Il faut également décoder les URL avant de les
    utiliser
  • Les espaces sont encodés par
  • Les caractères spéciaux sont codes XX (en
    ASCII ou ISO-Latin-1)
  • Exemple "usershall, gates, and mcnealy"
    est codé
  • " users7Ehall2C7Egates2Cand7Emcnealy"
    .

9
Manipulation des en-têtes HTTP
  • La méthode de getHeader de HttpServletRequest
    renvoie la valeur d'un en-tète si celui-ci a été
    donné.
  • La méthode getHeaderNames permet d'obtenir tous
    les noms d'en-tête reçus dans un requête.
  • La méthode de getMethod renvoie la méthode
    utilisée dans la requête de demande (GET, POST,
    HEAD, )
  • La méthode de getRequestURL retourne l'URL (la
    partie du URL qui suit le host et le port mais
    avant les données du formulaire).

10
Les réponses HTTP
  • Quand un serveur web répond à une requête la
    réponse se compose typiquement d'une ligne
    d'état, de quelques en-têtes de réponse, d'une
    interligne, et du document
  • HTTP/1.1 200 OK
  • Content-Type text/plain
  • Hello World
  • Les réponses sont précédées de valeurs de retour
  • 100 Continue pour requête partielle. ( HTTP
    1.1)
  • 200 OK
  • 201 Created
  • 202 Accepted
  • ...

11
Les variables du CGI
  • Les variables CGI et leurs méthodes Servlets
    associées sont
  • AUTH_TYPE
  • request.getAuthType
  • CONTENT_LENGTH
  • String.valueOf(request.getContentLength())
  • request.getContentLength
  • CONTENT_TYPE
  • request.getContentType()
  • DOCUMENT_ROOT
  • getServletContext().getRealPath("/")

12
Les variables du CGI
  • HTTP_XXX_YYY
  • request.getHeader("Xxx-Yyy")
  • PATH_INFO
  • request.getPathInfo()
  • QUERY_STRING
  • request.getParameter
  • request.getQueryString()
  • REMOTE_ADDR
  • request.getRemoteAddr()
  • REMOTE_HOST
  • request.getRemoteHost()

13
Les variables du CGI
  • REQUEST_METHOD
  • request.getMethod()
  • SCRIPT_NAME
  • request.getServletPath()
  • SERVER_NAME
  • request.getServerName()
  • SERVER_PORT
  • String.valueOf(request.getServerPort
  • request.getServerPort()
  • SERVER_PROTOCOL
  • request.getProtocol()

14
Les en-têtes des réponses HTTP
  • Allow Les méthodes offertes par le serveur
    (GET, POST, ...)
  • Content-Encoding
  • Content-Length
  • Content-Type
  • Date
  • Expires
  • Last-Modified
  • Location
  • Refresh Période de rafraîchissement et de
    chargement automatique de pages.
  • Server
  • Set-Cookie Cookies associées avec la page.

15
Les cookies
  • Information textuelle qu'un serveur web envoie au
    navigateur et que celui-ci renvoie au serveur
    lorsque celui-ci visite le même site web.
  • Buts des cookies
  • Identifier les données intermédiaires d'une
    transaction (ex. panier de provisions dans le
    e-commerce).
  • Stocker des données d'usagers pour
    identifications ultérieures.
  • Personnaliser les pages web en fonction de
    l'usager qui navigue
  • Les navigateur généralement acceptent 20 cookies
    par site et 300 cookies au total. Chaque cookie
    est limité à 4KB.
  • Certains navigateurs permettent d'interdire
    l'utilisation des cookies.

16
Manipulation des cookies
  • La méthode Cookie() permet de créer un cookie
  • Cookie (String name, String Value)
  • On ajoute les cookies en les associant à
    l'en-tête Set-Cookie dans une réponse HTTP
  • Cookie userCookie new Cookie("user",
    "uid1234")
  • response.addCookie(userCookie)
  • On lit les cookies émis par un client à l'aide de
    getCookies

17
Exemple de manipulation de cookies
  • Affichage de contenus de cookies reçues par le
    serveur
  • public static String getCookieValue (
  • Cookie cookies, String cookieName, String
    defaultValue)
  • for(int i0 iltcookies.length i)
  • Cookie cookie cookiesi
  • if (cookieName.equals(cookie.getName()))
  • return(cookie.getValue())
  • return(defaultValue)

18
Méthode associées aux cookies
  • getDomain/setDomain
  • Domaine pour lequel le cookie s'applique.
  • getMaxAge/setMaxAge
  • Durée de vie du cookie.
  • getName/setName
  • Nom du cookie
  • getPath/setPath
  • Chemin d'accès pour lequel le cookie s'applique.
  • getSecure/setSecure
  • Le cookie requiert SSL
  • getValue/setValue
  • Valeur associée au cookie.
Write a Comment
User Comments (0)
About PowerShow.com