Pages Jsp comment envoyer des paramètres, méthode GET et POST dans les servlets

Table des matières

Tous les sites Web dynamiques envoient et reçoivent des paramètres permettant à l'utilisateur d'envoyer des informations au serveur Http. Par exemple, dans un écran de connexion typique, nous devons envoyer le nom d'utilisateur et le mot de passe au serveur pour le valider.
La manière dont le navigateur envoie ces paramètres à l'aide de la méthode GET ou POST est expliquée dans le didacticiel Web Server ou HTTP Server. Ce que nous allons voir dans ce tutoriel, c'est comment récupérer les informations de connexion sur le serveur à l'aide de l'API Servlet.
La première chose que nous allons faire est de créer une page login.html sur notre site avec le contenu suivant :
 
Utilisateur
mot de passe

La prochaine étape consiste à créer une Servlet qui reçoit la requête dans /login, qui est l'adresse indiquée dans l'attribut action de la balise login.html.
 package com.login.servlets; importer java.io.IOException ; importer java.io.PrintWriter; importer javax.servlet.ServletException ; importer javax.servlet.http.HttpServlet ; importer javax.servlet.http.HttpServletRequest ; importer javax.servlet.http.HttpServletResponse ; la classe publique LoginServlet étend HttpServlet {@Override protected void doGet (HttpServletRequest req, HttpServletResponse resp) lève ServletException, IOException {String user = req.getParameter ("user"); String pass = req.getParameter ("mot de passe"); if ("login" .equals (user) && "login" .equals (pass)) {response (resp, "login ok"); } else {réponse (resp, "Erreur de connexion"); }} réponse void privée (resp HttpServletResponse, String msg) lève IOException {PrintWriter out = resp.getWriter (); out.println (""); out.println (""); out.println ("" + msg + ""); out.println (""); out.println (""); }}

Nous compilons ceci Servlet et nous incluons LoginServlet.class Dans le carnet d'adresses / WEB-INF / cours.
Nous modifions web.xml pour lier / se connecter avec ce Servlet.
 login-servlet com.login.servlets.LoginServlet login-servlet / login 

Nous redémarrons le serveur, ouvrons la page login.html, mettons un x en utilisateur, un x en mot de passe et appuyons sur le bouton soumettre.
Le problème ici est que le mot de passe secret est visible dans l'URL… / login ?User = admin & password = atx123, il restera dans l'historique du navigateur et toute personne accédant au navigateur après nous pourra l'obtenir facilement, sauf si nous utilisons la navigation privée ou cela peut être corrigé en changeant la méthode de soumission du formulaire en POST dans login.html.
 
Utilisateur
mot de passe

Ce qui se passe ici, c'est que nous n'avons pas implémenté la méthode doPost (nous implémentons uniquement doGet) donc notre Servlet n'est pas capable de recevoir des requêtes POST. Le code suivant montre la modification nécessaire pour le faire fonctionner.
 package com.login.servlets; importer java.io.IOException ; importer java.io.PrintWriter; importer javax.servlet.ServletException ; importer javax.servlet.http.HttpServlet ; importer javax.servlet.http.HttpServletRequest ; importer javax.servlet.http.HttpServletResponse ; la classe publique LoginServlet étend HttpServlet {@Override protected void doPost (HttpServletRequest req, HttpServletResponse resp) lève ServletException, IOException {String user = req.getParameter ("user"); String pass = req.getParameter ("clé"); if ("admin" .equals (utilisateur) && "atx123" .equals (pass)) {response (resp, "login ok"); } else {réponse (resp, "Erreur de connexion"); }} réponse void privée (resp HttpServletResponse, String msg) lève IOException {PrintWriter out = resp.getWriter (); out.println (""); out.println (""); out.println ("" + msg + ""); out.println (""); out.println (""); }}

Le seul changement est que j'ai remplacé doGet par doPost. Après avoir recompilé et déployé le servlet, redémarré le serveur et réutilisé login.html, il fonctionne à nouveau normalement.Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif
wave wave wave wave wave