Projet exemple

Table des matières
Introduction
1. Position de l'API Servlet
2. Présentation
Présentation de Tomcat
1. Un peu d'histoire
2. Organisation des répertoires de Tomcat
2.1. Répertoire bin
2.2. Répertoire conf
2.3. Répertoire lib
2.4. Répertoire log
2.5. Répertoire temp
2.6. Répertoire webapp
2.7. Répertoire work
3. Lancement de Tomcat
3.1. Lancement par défaut
3.2. Accéder à l'administration de Tomcat
3.3. Plusieurs instances de Tomcat
4. Configuration de Tomcat
4.1. Introduction
4.2. Élément Server
4.3. Élément Service
4.4. Élément Connector
4.5. Élément Engine
4.6. Élément Host
4.7. Élément Context
4.8. Élément GlobalNamingResources
4.9. Élément Realm
4.10. Élément Valve
5. Définition et chargement des applications web
5.1. Introduction
5.2. Prise en compte des éléments Context
5.3. Chargement et mise à jour à chaud
6. Utilisation de Tomcat avec Apache
API Servlet
1. Introduction
2. Une première servlet
2.1. Le code
2.2. Création de l'application web
2.3. Déploiement dans Tomcat
3. Concepts, cycle de vie
3.1. Requête
3.2. Réponse
3.3. Session
3.4. Application web
3.5. Contexte d'exécution
3.6. Cycle de vie
3.7. Filtre
4. Présentation générale de l'API
4.1. Introduction
4.2. Interfaces disponibles
5. Notion de servlet
5.1. Interfaces servlet
5.2. Cycle de vie d'une servlet
5.3. Paramètres d'initialisation d'une servlet
6. Notion de requête
6.1. Accès aux paramètres d'une requête
6.2. Accès aux éléments de l'en-tête HTTP
6.3. Accès aux éléments de l'URL
6.4. Accès aux paramètres du client
6.5. Accès aux informations de sécurité
6.6. Accès à la session, au contexte et aux informations d'initialisation
7. Notion de réponse
7.1. Contrôle du buffer de sortie
7.2. Contrôle de la réponse HTTP
8. Notion de session HTTP
9. Redirection ou inclusion d'une ressource
10. Listeners
10.1. Introduction
10.2. Événements de l'API Servlet
10.3. Ajout ou retrait d'un attribut
10.4. Création et destruction d'un contexte
10.5. Notification d'un objet attaché à un contexte
10.6. Déclaration d'un listener dans une application web
11. Connexion à une base
11.1. Introduction
11.2. Connexion manuelle
11.3. Connexion par utilisation de source de données
Filtrage
1. Filtrage de servlets
2. Mise en place d'un filtre
2.1. Écriture d'un filtre
2.2. Déclaration du filtrage
3. Filtrage d'une requête
4. Filtrage d'une réponse
4.1. Fonctionnement de ce filtrage
Java Server Pages
1. Introduction
2. Un premier exemple
2.1. Une première JSP statique
2.2. Une première JSP dynamique
2.3. Fonctionnement interne des JSP
3. JSP scriplet
3.1. Les expressions
3.2. Les déclarations
3.3. Variables prédéfinies
3.4. Scriplet de directives
4. Utilisation de beans
4.1. Introduction
4.2. Déclaration d'un bean existant
4.3. Création d'un nouveau bean
4.4. Utilisation des propriétés d'un bean
5. Inclure un contenu externe dans une JSP
5.1. Introduction
5.2. Inclusion au lancement de l'application
5.3. Inclusion au traitement de la requête
6. Utilisation de bibliothèques de tags
6.1. Introduction
6.2. Bibliothèque core
7. Internationalisation
7.1. Notion de bundle
7.2. Internationalisation de pages JSP
Projet exemple
1. Présentation du projet

1. Présentation du projet

On se propose dans cette partie de créer un projet Web dans Netbeans, permettant de mettre en place une première servlet et un premier formulaire. On suppose que l'on a créé un projet web sous Netbeans, avec les fichiers suivants.
Organisation du projet Netbeans

Figure 6. Organisation du projet Netbeans


Ce projet est composé d'une première page JSP : register.jsp, qui contient un formulaire d'enregistrement. Voici le code de cette page.

Exemple 64. Page register.jsp

<%@page contentType="text/html" 
        pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC  "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Registration</title>
    </head>
    <body>

        <p>Registration form</p>

        <form action="/cours-servlet/register"  method="post">
           <p>Nom : <input type="text" name="nom" /></p>
           <p>Prénom : <input type="text" name="prenom" /></p>
           <p><input type="submit"  value="valider" /></p>
        </form>


    </body>
</html>

On veillera à mettre à jour le champ action de ce formulaire, si nécessaire. Ce formulaire envoie ses données à la servlet RegistrationServlet, dont voici le code.

Exemple 65. Servlet RegistrationServlet

 protected  void processRequest(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {

     // permet de décoder les paramètres en UTF-8
    request.setCharacterEncoding("UTF-8") ;
	
    RequestDispatcher rd = request.getRequestDispatcher("validate.jsp") ;
	
    String nom = request.getParameter("nom") ;
    String prenom = request.getParameter("prenom") ;
	
    request.setAttribute("nom", nom) ;
    request.setAttribute("prenom", prenom) ;
	
    rd.forward(request, response) ;
 } 

Cette servlet décode les paramètres du formulaire et les recopie en tant qu'attributs de la requête. Puis elle redirige la requête vers la page validate.jsp. Voyons enfin le code de la page validate.jsp.

Exemple 66. Page validate.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC  "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <p>Registering <%= request.getParameter("nom")%> ; 
           <%= request.getParameter("prenom") %></p>
        <p>Registering <%= request.getAttribute("nom")%> ; 
           <%= request.getAttribute("prenom") %></p>
    </body>
</html>

On déclarera enfin la servlet RegistrationServlet dans le descripteur web.xml, sous un nom et une URL choisies. On vérifiera que l'action du formulaire pointe bien vers cette servlet.
Java servlet et JSP
Retour au blog Java le soir
Cours & Tutoriaux