SERVLET 1 Introduction

Documents pareils
Web Tier : déploiement de servlets

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Le développement d applications Web

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Application Web et J2EE

Traitement des données de formulaires. Accès aux BD avec JDBC Servlets - M. Baron - Page

JavaServer Pages (JSP)

Applications et Services WEB: Architecture REST

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Les architectures 3-tiers Partie I : les applications WEB

Utilisation de Jakarta Tomcat

Groupe Eyrolles, 2005, ISBN :

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : et un masque

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Jahia CMS ET Portal Version 5.0

Architecture Orientée Service, JSON et API REST

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Java Naming and Directory Interface

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Cours CCNA 1. Exercices

Programmation Internet en Java

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Module BD et sites WEB

Remote Method Invocation (RMI)

Jacques Lonchamp. Conception. d applications en Java/JEE. Principes, patterns et architectures

Application web de gestion de comptes en banques

Architectures client/serveur

Développement des Systèmes d Information

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

1. Installation d'un serveur d'application JBoss:

Le développement d applications Web. François Charoy Pascal Molli Pascal Urso

RMI le langage Java XII-1 JMF

Mise en œuvre des serveurs d application

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Application de lecture de carte SESAM-Vitale Jeebop

Introduction aux «Services Web»

INITIATION AU LANGAGE JAVA

TP1 : Initiation à Java et Eclipse

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

Messagerie asynchrone et Services Web

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Auto-évaluation Programmation en Java

< Atelier 1 /> Démarrer une application web

La base de données XML exist. A. Belaïd

(structure des entêtes)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Groupe Eyrolles, 2003 ISBN : X

Bases Java - Eclipse / Netbeans

Premiers Pas en Programmation Objet : les Classes et les Objets

A. Architecture du serveur Tomcat 6

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

Etude de l ENT de l Université de Paris 5. Mise en place d outils de suivi de la charge de l ENT (monitoring)

2 Chapitre 1 Introduction

WebSpy Analyzer Giga 2.1 Guide de démarrage

Compte Rendu d intégration d application

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

TP réseau Android. Bidouilles Tomcat. a) Installer tomcat : il suffit de dézipper l'archive apache-tomcat windowsx64.zip.

Java pour le Web. Cours Java - F. Michel

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

4. SERVICES WEB REST 46

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Java DataBaseConnectivity

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Environnements de développement (intégrés)

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

Guide d utilisation. Version 1.1

Programmation Orientée Objet - Licence TIS CM8/9. Rappel sur la séance précédente. Lancelot Pecquet Lancelot.Pecquet@math.univ-poitiers.

Méta-annuaire LDAP-NIS-Active Directory

Alfstore workflow framework Spécification technique

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Programmer en JAVA. par Tama

Approche Contract First

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

Cours 9 : Servlet, JSP, corba

Création d un service web avec NetBeans 5.5 et SJAS 9

L3 informatique TP n o 2 : Les applications réseau

Création d une application JEE

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

TP architecture N-tiers en Java EE ou Java EE, Android : la synthèse. Le serveur GereCompteBancaireServlet

Initiation à JAVA et à la programmation objet.

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

V- PROGRAMMATION CLIENT / SERVEUR AVEC LES SGBD

SUPPORT DE COURS / PHP PARTIE 3

Java - MySQL. Code: java-mysql

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Les services usuels de l Internet

Business Process Execution Language

Transcription:

Les Servlet en Java 1 Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX Claude.Duvallet@gmail.com http://litis.univ-lehavre.fr/ duvallet/ 2 3 Claude Duvallet 1/32 Claude Duvallet 2/32 (1/2) (2/2) Avec les servlets, nous plongeons au cœur de l API servlet qui est un des composants de base pour le développement d applications Web. Une servlet est un programme qui s exécute côté serveur en tant qu extension du serveur. Elle reçoit une requête du client, elle effectue des traitements et renvoie le résultat. La liaison entre la servlet et le client peut être directe ou passer par un intermédiaire comme par exemple un serveur http. Même si pour le moment la principale utilisation des servlets est la génération de pages html dynamiques utilisant le protocole http et donc un serveur web, n importe quel protocole reposant sur le principe de requête/réponse peut faire usage d une servlet. Écrite en java, une servlet en retire ses avantages : la portabilité, l accès à toutes les API de java dont JDBC pour l accès aux bases de données,... Une servlet peut être invoquée plusieurs fois en même temps pour répondre à plusieurs requêtes simultanées. La servlet se positionne dans une architecture Client/Serveur trois tiers dans le tiers du milieu entre le client léger chargé de l affichage et la source de données. Claude Duvallet 3/32 Claude Duvallet 4/32

Historique (1/2) Historique (2/2) 2.0 1997. 2.1 Novembre 1998 : 2.2 Aout 1999 : Création d un partage d informations grâce au Servletcontext. La classe GenericServlet implémente l interface ServletConfig. Mise en place d une méthodelog() standard pour envoyer des informations dans le journal du conteneur. L objetrequestdispatcher est utilisé pour le transfert du traitement de la requête vers une autre ressource ou inclure le résultat d une autre ressource. Apparition du format war pour un déploiement standard des applications web. Mise en buffer de la réponse. Standard inclu dans J2EE 1.2. 2.3 Septembre 2001 : JSR 053 : nécessite le JDK 1.2 minimum. Ajout d un mécanisme de filtre. Ajout de méthodes pour la gestion d événements liés à la création et la destruction du context et de la session. Standard inclu dans J2EE 1.3. 2.4 Novembre 2003 : JSR 154. Standard inclu dans J2EE 1.4. 3.0 2010 : En cours de validation finale. JSR 315. Standard inclu dans Java EE 6. Claude Duvallet 5/32 Claude Duvallet 6/32 d une Servlet Exécution d une Servlet (1/2) Un serveur d application (Exemple : Tomcat) permet de charger et d exécuter les servlets dans une JVM. C est une extension du serveur web. Ce serveur d application contient entre autre un moteur de servlets qui se charge de manager les servlets qu il contient. Pour exécuter une servlet, il suffit de saisir une URL qui désigne la servlet dans un navigateur. 1 Le serveur reçoit la requête http qui nécessite une servlet de la part du navigateur. 2 Instanciation : Si c est la première sollicitation de la servlet, le serveur l instancie. Les servlets sont stockées (sous forme de fichiers.class) dans un répertoire particulier du serveur. Ce répertoire dépend du serveur d applications utilisé. La servlet reste en mémoire jusqu à l arrêt du serveur. Certains serveurs d applications permettent aussi d instancier des servlets dès le lancement du serveur. La servlet en mémoire, peut être appelée par plusieurs threads lancés par le serveur pour chaque requête. Ce principe de fonctionnement évite d instancier un objet de type servlet à chaque requête et permet de maintenir un ensemble de ressources actives telle qu une connexion à une base de données. Claude Duvallet 7/32 Claude Duvallet 8/32

Exécution d une Servlet (2/2) Présentation de l API Servlet 3 Le serveur crée un objet qui représente la requête http. 4 Il crée aussi un objet qui contiendra la réponse et l envoi à la servlet. 5 La servlet crée dynamiquement la réponse sous forme de pages html transmises via un flux dans l objet contenant la réponse. 6 La création de cette réponse utilise bien sûr la requête du client mais aussi un ensemble de ressources incluses sur le serveur tels de que des fichiers ou des bases de données. 7 Le serveur récupère l objet réponse et envoie la page html au client. Les servlets sont conçues pour agir selon un modèle de requête/réponse. Tous les protocoles utilisant ce modèle peuvent être utilisés tel que http, ftp, etc. L API servlet est une extension du jdk de base, et en tant que telle elle est regroupée dans des packages préfixés par javax. L API servlet regroupe un ensemble de classes dans deux packages : javax.servlet : contient les classes pour développer des servlets génériques indépendantes d un protocole. javax.servlet.http : contient les classes pour développer des servlets qui reposent sur le protocole http utilisé par les serveurs web. Claude Duvallet 9/32 Claude Duvallet 10/32 Les interfaces du packagejavax.servlet 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. ServletConfig : Définition d un objet pour configurer la servlet. ServletContext : Définition d un objet pour obtenir des informations sur le contexte d exécution de la servlet. ServletRequest : Définition d un objet contenant la requête du client. ServletResponse : Définition d un objet qui contient la réponse renvoyée par la servlet. SingleThreadModel : Permet de définir une servlet qui ne répondra qu à une seule requête à la fois. Les classes et les exceptions du packagejavax.servlet Les classes : GenericServlet : Classe définissant une servlet indépendante de tout protocole. ServletInputStream : Flux permet la lecture des données de la requête cliente. ServletOutPutStream : Flux permettant l envoie de la réponse 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. Claude Duvallet 11/32 Claude Duvallet 12/32

Le packagejavax.servlet.http L interfaceservlet 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 réponse 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 navigateur WEB 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. Une servlet est une classe Java qui implémente l interface javax.servlet.servlet. Cette interface définit 5 méthodes qui permettent au conteneur web de dialoguer avec la servlet. void service (ServletRequest req, ServletResponse res) : Cette méthode est exécutée par le conteneur lorsque la servlet est sollicitée par un client. void init(servletconfig conf) : Initialisation de la servlet. Cette méthode est appelée une seule fois après l instanciation de la servlet en mode bloquant. ServletConfig getservletconfig() : Renvoie l objet ServletConfig passé à la méthodeinit(). void destroy() : Cette méthode est appelée lors de la destruction de la servlet par le serveur d application. Elle permet de libérer proprement certaines ressources (fichiers, bases de données...). String getservletinfo() : Renvoie des informations sur la servlet. Claude Duvallet 13/32 Claude Duvallet 14/32 Exemple 1 : servlet implémentant l interfaceservlet (1/2) Exemple 1 : servlet implémentant l interfaceservlet (2/2) import java.io.*; import javax.servlet.*; public class MaServlet implements Servlet { private ServletConfig cfg; public void init(servletconfig config) throws ServletException { cfg = config; public ServletConfig getservletconfig() { return cfg; public String getservletinfo() { return "Une servlet de test"; public void destroy() { public void service (ServletRequest req, ServletResponse res) throws ServletException, IOException { res.setcontenttype( "text/html" ); PrintWriter out = res.getwriter(); out.println( "<HTML>" ); out.println( "<HEAD>"); out.println( "<TITLE>Page generee par une servlet</title>" ); out.println( "</HEAD>" ); out.println( "<BODY>" ); out.println( "<H1>Bonjour / Hello / Salam Alaikoum</H1>" ); out.println( "<H2>Labass?</H2>" ); out.println( "</BODY>" ); out.println( "</HTML>" ); out.close(); Claude Duvallet 15/32 Claude Duvallet 16/32

Exemple 1 : le code source XML Exemple 1 : Installation des fichiers Il faut aussi écrire un fichierweb.xml. <?xml version="1.0" encoding="iso-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <display-name>exemples de Servlet en 2.4</display-name> <description> Exemples de Servlet en 2.4. </description> <servlet> <servlet-name>maservlet</servlet-name> <servlet-class>maservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>maservlet</servlet-name> <url-pattern>/servlet/maservlet</url-pattern> </servlet-mapping> Nous allons créer l arborescence suivante : cd $TOMCAT_HOME/webapps mkdir -p MesExemples/WEB-INF/classes Plaçons le fichiermaservlet.class etweb.xml au bon endroit : cp web.xml $TOMCAT_HOME/webapps/MesExemples/WEB-INF/ cp MaServlet.class $TOMCAT_HOME/webapps/MesExemples/WEB-INF/classes/ </web-app> Claude Duvallet 17/32 Claude Duvallet 18/32 Exemple 1 : exécution Les servlets HTTP (1/3) Redémarrer le serveur d application Tomcat : sh $TOMCAT_HOME/bin/shutdown.sh ; sh $TOMCAT_HOME/bin/startup.sh Utiliser un navigateur WEB pour visualiser le résultat : Taper l URL : http://localhost:8080/mesexemples/servlet/maservlet. L usage principal des servlets est la création de pages HTML dynamiques. Sun fourni une classe qui encapsule une servlet utilisant le protocole http : la classehttpservlet. Cette classe hérite degenericservlet, donc elle implémente l interfaceservlet. Ce type de servlet ne sert pas uniquement à générer des pages HTML bien que cela soit son principal usage. Elle peut aussi réaliser un ensemble de traitements tel que mettre à jour une base de données. Elle définit un ensemble de fonctionnalités très utiles : par exemple, elle contient une méthodeservice() qui appelle certaines méthodes à redéfinir en fonction du type de requête http (doget(), dopost(), etc...). Claude Duvallet 19/32 Claude Duvallet 20/32

Les servlets HTTP (2/3) Les servlets HTTP (3/3) La requête du client est encapsulée dans un objet qui implémente l interfacehttpservletrequest et contient les données de la requête ainsi que des informations sur le client. La réponse de la servlet est encapsulée dans un objet qui implémente l interfacehttpservletresponse. Typiquement pour définir une servlet, il faut définir une classe qui hérite de la classehttpservlet et redéfinir la méthode doget et/ou dopost selon les besoins. La méthode service héritée dehttpservlet appelle l une ou l autre de ces méthodes en fonction du type de la requête http : une requête GET : c est une requête qui permet au client de demander une ressource. une requête POST : c est une requête qui permet au client d envoyer des informations issues par exemple d un formulaire. Une servlet peut traiter un ou plusieurs types de requêtes grâce à plusieurs autres méthodes : dohead() : pour les requêtes http de type HEAD doput() : pour les requêtes http de type PUT dodelete() : pour les requêtes http de type DELETE dooptions() : pour les requêtes http de type OPTIONS dotrace() : pour les requêtes http de type TRACE La classehttpservlet hérite aussi de plusieurs méthodes définies dans l interfaceservlet :init(), destroy() et getservletinfo(). Claude Duvallet 21/32 Claude Duvallet 22/32 Exemple 2 : le code source Java Exemple 2 : le code source XML Nous allons écrire une classe BonjourServlet qui hérite de la classehttpservlet. import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class BonjourServlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getwriter(); out.println("<html>"); out.println("<body>"); out.println("<h1>bonjour le monde depuis ma premiere Servlet</h1>"); out.println("</body>"); out.println("</html>"); Il faut ajouter le bloc suivant dans le fichierweb.xml. <servlet> <servlet-name>bonjourservlet</servlet-name> <servlet-class>bonjourservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>bonjourservlet</servlet-name> <url-pattern>/servlet/bonjourservlet</url-pattern> </servlet-mapping> Les étapes suivantes sont les mêmes que pour l exemple 1 : n oublier pas de redémarrer le serveur Tomcat. Claude Duvallet 23/32 Claude Duvallet 24/32

Exemple 3 : Création d un formulaire de saisie Il s agit de créer un formulaire HTML dont le traitement sera effectuée par une servlet. Le formulaire, qui sera sauvegardé dans une page html, est le suivant : <FORM ACTION="http://localhost:8080/MesExemples/servlet/MonExemple3" METHOD="POST"> Nom de la personne : <INPUT NAME="NOM"><br/> Prenom de la personne : <INPUT NAME="PRENOM"><br/> <INPUT TYPE="SUBMIT" VALUE="ENVOYER"> </FORM> Exemple 3 : La servlet MonExemple3 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class MonExemple3 extends HttpServlet { public void dopost(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { String nom = request.getparameter("nom"); String prenom = request.getparameter("prenom"); PrintWriter out = response.getwriter(); out.println("<html>"); out.println("<body>"); out.println("<h2>informations saisies</h2>"); out.println("nom :"+ nom+" <br/>"); out.println("prenom :"+ prenom+" <br/>"); out.println("</body>"); out.println("</html>"); Ensuite, il faut créer la servlet chargée de traiter ce formulaire. Claude Duvallet 25/32 Claude Duvallet 26/32 Exemple 3 : Résultat de l exécution Les informations contenues dans la requête (1/2) Il faut charger la page HTML contenant le serveur. Saisissez des informations dans le formulaire puis cliquer sur "ENVOYER". Le résultat de l appel à la Servlet devrait être le suivant : De nombreuses informations en provenance du client peuvent être extraites de l objetservletrequest passé en paramètre par le serveur (ou dehttpservletrequest qui hérite de ServletRequest). Les informations les plus utiles sont les paramètres envoyés dans la requête. L interface ServletRequest dispose de nombreuses méthodes pour obtenir ces informations : int getcontentlength() : Renvoie la taille de la requête, 0 si elle est inconnue. String getcontenttype() : Renvoie le type MIME de la requête, null si il est inconnu ServletInputStream getinputstream() : Renvoie un flux qui contient le corps de la requête Claude Duvallet 27/32 Claude Duvallet 28/32

Les informations contenues dans la requête (2/2) Suite des méthodes : Enumeration getparameternames() : Renvoie une énumération contenant le nom de tous les paramètres String getprotocol() : Retourne le nom du protocole et sa version utilisé par la requête BufferedReader getreader() : Renvoie un flux qui contient le corps de la requête String getremoteaddr() : Renvoie l adresse IP du client String getremotehost() : Renvoie le nom de la machine cliente String getscheme() : Renvoie le protocole utilisé par la requête (exemple : http, ftp...) String getservername() : Renvoie le nom du serveur qui a reçu la requête int getserverport() : Renvoie le port du serveur qui a reçu la requête Exemple 4 : Récupération des informations Il s agit de créer un formulaire HTML dont le traitement affichera les informations obtenues par la servlet. Le formulaire qui sera sauvegardé dans une page html est le suivant : <FORM ACTION="http://localhost:8080/MesExemples/servlet/MonExemple4" METHOD="POST"> Nom de la personne : <INPUT NAME="NOM"><br/> Prenom de la personne : <INPUT NAME="PRENOM"><br/> <INPUT TYPE="SUBMIT" NAME="ENVOI" VALUE="ENVOYER"> <INPUT TYPE="SUBMIT" NAME="ENVOI" VALUE="NE PAS ENVOYER"> </FORM> Ensuite il faut créer la servlet chargée de traiter ce formulaire. Claude Duvallet 29/32 Claude Duvallet 30/32 Exemple 4 : La servlet MonExemple4 public void dopost(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { String nom = request.getparameter("nom"); String prenom = request.getparameter("prenom"); String resultat = request.getparameter("envoi"); PrintWriter out = response.getwriter(); out.println("<html>"); out.println("<body>"); out.println("<head>"); out.println("<title>informations a disposition de la servlet</title>"); out.println("</head>"); out.println("<body>"); out.println("<h2>informations a disposition de la servlet</h2>"); out.println("<p>type Mime de la requete : "+request.getcontenttype()+"</p>"); out.println("<p>protocole de la requete : "+request.getprotocol()+"</p>"); out.println("<p>adresse IP du client : "+request.getremoteaddr()+"</p>"); out.println("<p>nom du client : "+request.getremotehost()+"</p>"); out.println("<p>nom du serveur qui a recu la requete : "+request.getservername()+"</p>"); out.println("<p>port du serveur qui a recu la requete : "+request.getserverport()+"</p>"); out.println("<p>scheme : "+request.getscheme()+"</p>"); out.println("<p>liste des parametres </p>"); for (Enumeration e =request.getparameternames() ; e.hasmoreelements() ; ) { Object p = e.nextelement(); out.println("<p> nom : "+p+" valeur :"+request.getparameter(""+p)+"</p>"); String envoi = request.getparameter("envoi"); out.println("<p><b>vous avez appuyer sur le bouton : "+ envoi +"</b></p>"); out.println("</body>"); out.println("</html>"); Claude Duvallet 31/32 Exemple 4 : Résultat de l exécution Saisissez des informations dans le formulaire puis cliquer sur "ENVOYER" ou "NE PAS ENVOYER". Claude Duvallet 32/32