J2ee servlet , Study notes of Advanced Computer Programming

java jee servlet

Typology: Study notes

2015/2016

Uploaded on 10/08/2016

Zakaria.BENLAFQIH
Zakaria.BENLAFQIH 🇲🇦

4.5

(2)

1 document

1 / 30

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
06/06/2014
1
Benlahmar El habib
Partie trois
Une servlet est un programme qui s'exécute
côté serveur en tant qu'extension du serveur.
La technique des CGI en Java, MAIS
Sans créer de processus + toute la puissance de
Java (accès aux divers domaines de l'informatique:
BD, multimédia, réseau, objets distribués,
composants, etc.)
+ indépendance de la plate-forme et du serveur
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e

Partial preview of the text

Download J2ee servlet and more Study notes Advanced Computer Programming in PDF only on Docsity!

Benlahmar El habib

Partie trois

 Une servlet est un programme qui s'exécute

côté serveur en tant qu'extension du serveur.

 La technique des CGI en Java, MAIS

 Sans créer de processus + toute la puissance de

Java (accès aux divers domaines de l'informatique:

BD, multimédia, réseau, objets distribués,

composants, etc.)

 + indépendance de la plate-forme et du serveur

 Servlets

 Scripts serveur écrit en Java

 Servlets de Base : FileServlet, CGIServlet, …

 HttpServlet

 Exécution dans un espace isolé (Web Application)

 Spécification : Sun (sous partie de J2EE)

 Implémentation de référence : Apache Group

(Jakarta Tomcat)

 Différence avec les CGI et les LD (NSAPI, ISAPI)

 performance sur les passages des paramêtres (vs CGI)

 sûreté de fonctionnement (NSAPI, ISAPI)

 Pour exécuter des servlets, il faut un moteur

de servlets dans le serveur Web.

 Ces moteurs sont des plug-in pour des serveurs

Web existants

 ou bien des serveurs Web aux mêmes

 Plug-in : deux candidats : Jrun (www.allaire.com),

tomcat (jakarta.apache.org)

javax.servlet (^) Nom Role Les interfaces RequestDispatcher Définition d'un objet qui permet le renvoi d'une requête vers une autre ressource du serveur (une autre servlet, une JSP ...) Servlet Définition de base d'une servlet ServletContext Définition d'un objet pour obtenir des informations sur le contexte d'execution de la servlet ServletConfig Définition d'un objet pour configurer la servlet ServletRequest Définition d'un objet contenant la requête du client ServletResponse Définition d'un objet qui contient la reponse renvoyée par la servlet SingleThreadModel Permet de définir une servlet qui ne répondra qu'à une seule requête à la fois

javax.servlet Nom Role Les classes GenericServlet Classe définissant une servlet indépendante de tout protocole ServletInputStream Flux permet la lecture des donnes de la requête cliente ServletOutPutStream Flux permettant l'envoie de la reponse de la servlet Les exceptions SevletException Exception générale en cas de problème durant l'exécution de la servlet UnavailableException Exception levée si la servlet n'est pas disponible javax.servlet. http Nom Role Les interfaces HttpServletRequest Hérite de ServletRequest : définit un objet contenant une requête selon le protocole http HttpServletResponse Hérite de ServletResponse : définit un objet contenant la reponse de la servlet selon le protocole http HttpSession Définit un objet qui représente une session Les classes Cookie Classe représentant un cookie (ensemble de données sauvegardées par le brower sur le poste client) HttpServlet Hérite de GenericServlet : classe définissant une servlet utilisant le protocole http HttpUtils Classe proposant des méthodes statiques utiles pour le développement de servlet http

Le passage d'un état à un autre est automatique fait par le conteneur de servlets.

 import java.io.; import javax.servlet.;  public class HelloServlet extends GenericServlet { public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { PrintStream out = new PrintStream(res.getOutputStream()); out.println("Hello World!"); } public String getServletInfo() { return "Hello World Servlet"; } }

permet de repérer tous les paramètres de la requête au moyen des méthodes:

public abstract int getContentLength()

public abstract String getContentType()

public abstract String getProtocol()

public abstract String getScheme()

public abstract String getServerName()

public abstract int getServerPort()

public abstract String getRemoteAddr()

public abstract String getRemoteHost()

public abstract String getRealPath(String path)

public abstract ServletInputStream getInputStream() throws IOException

public abstract String getParameter(String name)

public abstract String[] getParameterValues(String name)

public abstract Enumeration getParameterNames()

public abstract Object getAttribute(String name)

 A partir de quel moment la servlet est réellement créée et quel est

l'événement qui fait qu'elle n'existe plus?

 Pour la phase de création, c'est au développeur de décider. Pour cela, il indique

dans le descripteur de déploiement ce qu'il désire faire grâce à l'élément

.

** 5 ... **

 L'élément lorsqu'il est présent, contient un entier positif

qui indique qu'il faut charger la servlet au démarrage du serveur.

 L'ordre de chargement des servlets est déterminé par cette valeur.

 Les servlets ayant la plus petite valeur sont chargées les premières. En cas de

valeurs égales, l'ordre de chargement est arbitraire.

 Si l'élément est absent dans le descripteur de

déploiement, la servlet est chargée lors de la première requêtes donnée par le

client.

 Une servlet doit implémenter l'interface

javax.servlet.http

Elle doit comporter l’une des deux méthodes :

 doGet () pour les requêtes http de type GET

 doPost () pour les requêtes http de type POST

public void doGet(HttpServletRequest req,

HttpServletResponse rep)

throws ServletException, IOException{

Enumeration liste =req.getParameterNames();

String [] valeurs = req.getParameterValues();

String val1 = req.getParameter(''param1'');

ANNUAIRE

ANNUAIRE DU DESS TIIR

Recherche de coordonnées

Tapez le début du nom de la personne recherchée:

 Au lieu du try …catch

java.lang.NumberFormatException

/WEB-INF/NombreIncorrect.html

ou/et les sous-éléments suivant :

500

/WEB-INF/ErreurServeur.html

 Ajout de cookies à l ’entête de la réponse

 void HttpServletResponse. addCookie(

Cookie cookie)

 Le cookie peut être un cookie récupéré dans la

requête

 Et modifié avant d’être ajouté à la réponse

javax. servlet. http. HttpSession session = req. getSession( false);  L ’identifiant String sessionid= session. getId(); // par exemple: To1010mC8601021835741167At  La date de création long datecreation= session. getCreationTime(); // nb de ms depu s 1/ 1/ 1970: 00: 00  La date du dernier accès long datelastaccess= session. get astAccessedTime();  Exemple HttpSession session = req. getSession( true); if( session. get astAccessedTime() - session. getCreationTime() > 5* 60* 1000 ) { session. invalidate(); } javax. servlet. http. HttpSession session = req. getSession( false);  Méthode de suivi de session boolean HttpServletRequest. isRequestedSessionIdFromCookie() // test si le suivi de session utilise un cookie boolean HttpServletRequest. isRequestedSessionIdFromUR () // test si le suivi de session utilise la réécriture d ’UR  Réécriture des URL (cas isRequestedSessionIdFromURL )

 les URL générées doivent être encodées pour intégrer le suivi de session

String HttpServletResponse. encodeRedirectUR (String url) String HttpServletResponse. encodeUR (String url)

 Exemple

res. sendRedirect( res. encodeRedirectUR (" servlet login");

 javax. servlet. http. HttpSession session = req. getSession( true);  Ajout/remplacement d ’une valeur void HttpSession. setAttribute( String name, Object value)  Suppression d ’une valeur void HttpSession. removeAttribute( String name)  Récupération des valeurs/d ’une valeur String[] HttpSession. getAttributeNames() Object HttpSession. getAttribute( String name)