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

JAVA EE 5 Q.R. C’est quoi une servlets?

Présentations similaires


Présentation au sujet: "JAVA EE 5 Q.R. C’est quoi une servlets?"— Transcription de la présentation:

1 A.ELGH@ZI JAVA EE 5 Q.R

2 C’est quoi une servlets?

3 sont des applications côté serveur, sont des classes Java qui sont chargées et exécutées par un conteneur de servlets pouvant fonctionner de façon autonome ou comme un composant d'un serveur Web ou d'un serveur JEE sont conçues comme des extensions des serveurs auxquels elles ajoutent des fonctionnalités. Les servlets sont chronologiquement le deuxième élément JEE apparu, après JDBC.

4 CITEZ LES MÉTHODES DES REQUÊTES HTTP

5 les méthodes des requêtes http sont: GET POST HEAD PUT DELETE TRACE OPTIONS

6 QUELLE EST LA DIFFÉRENCE ENTRE UNE REQUÊTE PUT ET UNE REQUÊTE POST?

7 PUT - Cette méthode permet d'envoyer au serveur des données qui doivent être stockées à l' URI spécifiée. La différence avec la méthode POST est que le serveur ne doit pas traiter les données, mais seulement les Stocker

8 C’EST QUOI LE RÔLE DE LA REQUÊTE OPTIONS ?

9 OPTIONS - Cette requête permet de demander au serveur des informations sur une ressource particulière ou sur ses propres capacités.

10 C’ EST QUOI UNE URI ET QUELLE EST LA DIFFÉRENCE ENTRE UNE URI ET UNE URL ?

11 Dans une requête GET le client envoie au serveur une chaîne de caractère, respectant une syntaxe particulière, et le serveur retourne les données identifiées par cette chaîne. Cette chaîne est appelée URI (Uniform Resource Identifier- identificateur de ressource uniforme). Un type particulier d' URI est constitué d'une chaîne identifiant une ressource en relation avec le serveur Ce type d' URI est appelé URL (Uniform Ressource Locator - localisateur de ressource uniforme). La ressource peut être une page Web Statique ou le résultat produit par une application Web.

12 COMMENT UNE REQUÊTE GET PEUT ÊTRE PRODUITE ?

13 Une requête GET est: généralement produite lorsqu'un utilisateur clique sur un lien dans une page Web ou tape une adresse dans la zone d’adresse de son navigateur.

14 COMMENT ON PEUT ENVOYER DES PARAMÈTRES DANS UNE REQUÊTE GET ?

15 Lors de l'envoi d'une requête GET, des informations complémentaires peuvent être passées au serveur, le plus souvent sous forme de paramètres qui sont ajoutés à la fin de l'URL. Les paramètres sont séparés du reste de la requête par un point d'interrogation (?). Chaque paramètre est représenté par un pair nom=valeur, et les paires sont séparées par le caractère &. Ce format est appelé encodage d'URL. Une autre façon de passer des paramètres consiste à les ajouter au chemin d'accès. Les données ainsi ajoutées semblent prolonger l’URL, mais l'application Web les interprète comme des paramètres.

16 COMMENT LES REQUÊTES POST SONT ENVOYÉES ?

17 Le plus souvent, les requêtes POST sont envoyées par des formulaires affichés dans des navigateurs Web.

18 C’ EST QUOI UN CONTENEUR DE SERVLETS ?

19 Le conteneur de servlets est le programme responsable du chargement, de l'initialisation, de l'appel et de la destruction des instances de servlets.

20 QUE FAIT UN CONTENEUR DE SERVLET LORSQU’IL REÇOIS UNE REQUÊTE ?

21 Lorsqu’il reçoit la requête, il en analyse l' URI, les en- têtes et le corps et stocke toutes les données dans un objet implémentant l'interface, javax.servlet.ServletRequest. Il crée une instance d'un objet implémentant l'interface javax.servlet.ServletResponse. Cet objet encapsule la réponse qui sera envoyée au client. Le conteneur appelle ensuite une méthode de la classe de la servlet, en lui passant les objets requête et réponse. La servlet traite la requête et renvoie la réponse au client.

22 QUELLE EST LA CLASSE DE BASE DE L'API SERVLET POUR LE TRAITEMENT DES REQUÊTES HTTP?

23 La classe javax.servlet.http.HttpServlet est la classe de base de l'API Servlet pour le traitement des requêtes HTTP. Cette classe étend elle-même la classe Javax.servlet.GenericServlet, qui fournit les fonctionnalités fondamentales.

24 D ONNEZ LES MÉTHODES DE L ’ INTERFACE S ERVLET :

25 init(config : ServletConfig) getServletConfig() service(req :ServletRequest, res :ServletResponse) getServletInfo() destroy ()

26 D ONNEZ LES MÉTHODES DE L ’ INTERFACE S ERVLET C ONFIG :

27 getServletContext () getInitParameter () getInitParameterNames () getServletName()

28 D ONNEZ LES MÉTHODES DE LA CLASSE G ENERIC S ERVLET :

29 void destroy() String getInitParameter(String name) Enumeration getInitParameterNames() ServletConfig getServletConfig() ServletContext getServletContext() String getServletInfo() String getServletName() void init() void init(ServletConfig config) void log(String msg) void log(String message, Throwable t) void service(ServletRequest req, ServletResponse res)

30 D ONNEZ LES MÉTHODES DE LA CLASSE H TTP S ERVLET :

31 protected void doDelete(HttpServletRequest req, HttpServletResponse resp) protected void doGet(HttpServletRequest req, HttpServletResponse resp) protected void doHead(HttpServletRequest req, HttpServletResponse resp) protected void doOptions(HttpServletRequest req, HttpServletResponse resp) protected void doPost(HttpServletRequest req, HttpServletResponse resp) protected void doPut(HttpServletRequest req, HttpServletResponse resp) protected void doTrace(HttpServletRequest req, HttpServletResponse resp) protected long getLastModified(HttpServletRequest req) protected void service(HttpServletRequest req, HttpServletResponse resp) void service(ServletRequest req, ServletResponse res)

32 QUEL EST LE RÔLE DE LA MÉTHODE SERVICE():?

33 La méthode sevice() appelle l’une des méthodes doXXX() de la servlet selon le type de la requête http selon le shéma suivant : Le contenaire de servlet appelle la method service(ServletRequest, ServletResponse) de HttpServlet. La méthode service(ServletRequest, ServletResponse) de HttpServlet appelle la méthode service(HttpServletRequest, HttpServletResponse) de la même classe. La méthode service(HttpServletRequest, HttpServletResponse) de HttpServlet analyse la requête pour trouver la méthode HTTP utilisée. En fonction de la méthode HTTP, elle appelle la méthode doXXX() correspondante. Par exemple, si la demande emploie la méthode POST, elle appelle la méthode doPost () de la servlet.

34 D ONNEZ L A SIGNATURE DES MÉTHODES DO X XX () EST LA SUIVANTE :

35 public void doXxx(HttpServletRequest request. HttpServletResponse response) Chaque méthode ( doPost (), doGet (), etc.) prend deux paramètres. L'objet HttpServlet Request encapsule la requête envoyée au serveur. Il contient toutes les données de la requête, ainsi que certains en-têtes. Les méthodes de l'objet request permettent d'accéder à ces données. L'objet HttpResponse encapsule la réponse au client.

36 Q U ' EST - CE QU ' UN DESCRIPTEUR DE DÉPLOIEMENT ?

37 Le descripteur de déploiement est un fichier nommé web.xml et situé dans le répertoire WEB-INF du (répertoire racine) de l'application web. Il contient les caractéristiques et paramètres de l'application. Cela inclut la description des servlets utilisées, ou les différents paramètres d'initialisation..

38 D ONNER L ’ ARCHITECTURE DU FICHIER WEB. XML :

39 ...

40 C OMMENT ON PEUT SPÉCIFIER DES PARAMÈTRES D ' INITIALISATION POUR UNE SERVLET ?

41 Comment on peut spécifier des paramètres d'initialisation pour une servlet ?

42 Les paramètres d'initialisation sont des paramètres chargés en même temps que la servlet, et qu'elle peut récupérer, par exemple le nom d'une classe dont la servlet aura besoin. Ce genre de paramètre se déclare au sein de balises init-param. La balise param-name permet alors de définir le nom du paramètre, sa valeur étant spécifiée dans la balise param-value.

43 C OMMENT ON PEUT OBLIGER LE SERVEUR DE CHARGER UNE SERVLET AU DÉMARRAGE ?

44 La balise load-on-startup demande que la servlet soit chargée dès le démarrage du serveur.

45 D ONNER LE CODE H TML D ’ UN FICHIER INDEX. HTML QUI VA PERMETTRE DE SAISIR LE NOM DE L ' UTILISATEUR AINSI QUE SON MOT DE PASSE, ET UN BOUTON E NREGISTRER QUI RENVOIE LE NOM ET LE MOT DE PASSER A UNE SERVLET L OGIN

46 Index.html Enregistrement Veuillez entrer votre nom d'utilisateur et votre mot de passe

47 Q UELLE EST LA MÉTHODE QU ’ ON DOIT UTILISER DANS LA SERVLET L OGIN POUR TRAITER LES INFORMATIONS DU FORMULAIRE PRÉCÉDENT ?

48 la méthode qu’on doit utiliser dans la servlet Login pour traiter les informations du formulaire précédent est: doPost

49 Q UEL OBJET ENCAPSULE LES INFORMATION DU FORMULAIRE ?

50 HttpServletRequest request

51 C OMMENT ON PEUT EXTRAIRE LES INFORMATIONS DE L ’ OBJET REQUEST ?

52 La méthode getParameter

53 Comment la méthode doPost () lit elle les paramètres de la requête ?

54 en appelant la méthode getParameter(String) de l'objet HttpServlet Request. String username = request.getParameter("username”); Le nom utilisé comme argument de la méthode getParameter() est le même que celui employé dans le formulaire :

55 Comment la servlet fait pour renvoyer la réponse au client ?

56 Elle utilise l'objet HttpServletResponse response. Elle commence par déterminer le type de contenu de la réponse en donnant à l'en-tête-ContentType la valeur "text/html" ; response.setContentType("text/html")

57 C RÉER UNE SERVLET L OGIN QUI VA PERMETTRE D ' AUTHENTIFIER LA PERSONNE DÉSIREUSE D ' ACCÉDER AUX RESSOURCES DE L ' APPLICATION W EB.

58 La Servlet import java.io.*; import javax.servlet.ServletException; import javax.servlet.http. HttpServlet ; import javax.servlet.http. HttpServlet Request; import javax.servlet.http. HttpServlet Response; public class Login extends HttpServlet { public Login() { super (); } protected void doPost ( HttpServlet Request request, HttpServlet Response response) throws ServletException, IOException { // TODO Auto-generated method stub String username = request.getParameter("username"); try { response.setContentType("text/html"); PrintWriter writer = response.getWriter(); writer.println(" "); writer.println("Merci, " + username + ". Vous êtes maintenant enregistré dans le système."); writer.println(" ") ; writer.close() ; } catch (Exception e){ e.printStackTrace();

59 On considère le formulaire suivant : Technology : State : New Jersey New York Kansas California Texas Donner le code la méthode doPost pour extraire les valeurs envoyées par le formulaire

60 Solution : public void doPost(HttpServletRequest req, HttpServletResponse res) { String searchString = req.getParameter("searchstring"); String[] stateList = req.getParameterValues("state"); //code }

61 Comment on peut obtenir le Protocol employé pas une requête.

62 public String getProtocol()

63 Comment on peut obtenir L'adresse IP du client qui a envoyé la requête ?

64 public String getRemoteAddr()

65 Donner un programme qui affiche tous les headers présent dans une requête

66 public void service(HttpServletRequest req, HttpServletResponse res) { Enumeration headers = req.getHeaderNames(); while (headers.hasMoreElements()) { String header = (String) headers.nextElement(); String value = req.getHeader(header); System.out.println(header+" = "+value); }

67 Comment une servlet arrive à lire la valeur de l'en-tête Last- Modified

68 En appelant la méthode getDateHeader("Last-Modified").

69 dans le cas de l'URI http://localhost/Vinci/Login/extra/path/info que retournera getPathInfo()http://localhost/Vinci/Login/extra/path/info

70 "/extra/path/info


Télécharger ppt "JAVA EE 5 Q.R. C’est quoi une servlets?"

Présentations similaires


Annonces Google