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.
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 6.1. 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 6.2. 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 6.3. 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.