Jsp-Seiten zum Senden von Parametern, GET- und POST-Methoden in Servlets

Inhaltsverzeichnis

Alle dynamischen Web sendet und empfängt Parameter, mit denen der Benutzer Informationen an den HTTP-Server senden kann. In einem typischen Anmeldebildschirm müssen wir beispielsweise den Benutzernamen und das Passwort an den Server senden, um ihn zu validieren.
Wie der Browser diese Parameter mit der GET- oder POST-Methode sendet, wird im Webserver- oder HTTP-Server-Tutorial erklärt. In diesem Tutorial erfahren Sie, wie Sie Anmeldeinformationen auf dem Server mithilfe der Servlet-API abrufen.
Als erstes erstellen wir auf unserer Website eine login.html-Seite mit folgendem Inhalt:
 
Nutzer
Taste

Als nächstes erstellen Sie ein Servlet, das die Anfrage in /login empfängt, was die Adresse ist, die im action-Attribut des login.html-Tags angegeben ist.
 Paket com.login.servlets; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; öffentliche Klasse LoginServlet erweitert HttpServlet {@Override protected void doGet (HttpServletRequest req, HttpServletResponse bzw.) wirft ServletException, IOException {String user = req.getParameter ("user"); String pass = req.getParameter ("Passwort"); if ("login" .equals (Benutzer) && "login" .equals (pass)) {Antwort (bzw. "login ok"); } else {Antwort (bzw. "Anmeldefehler"); }} private void-Antwort (HttpServletResponse bzw. String msg) wirft IOException {PrintWriter out = resp.getWriter(); out.println (""); out.println (""); out.println ("" + msg + ""); out.println (""); out.println (""); }}

Wir stellen das zusammen Servlet und wir schließen ein LoginServlet.class Im Adressbuch / WEB-INF / Klassen.
Wir modifizieren web.xml, um sich mit diesem Servlet zu verbinden/anzumelden.
 Login-Servlet com.login.servlets.LoginServlet Login-Servlet / Login 

Wir starten den Server neu, öffnen die Seite login.html, geben einen x-in-Benutzer, ein x-in-Passwort ein und drücken den Submit-Button.
Das Problem hierbei ist, dass das geheime Passwort in der URL sichtbar ist… / login?Benutzer = admin & Passwort = atx123, es bleibt im Browserverlauf und jeder, der nach uns auf den Browser zugreift, kann es leicht abrufen, es sei denn, wir verwenden privates Surfen oder es kann behoben werden, indem die Formularsendemethode in POST in login.html geändert wird.
 
Nutzer
Taste

Was hier passiert ist, dass wir die doPost-Methode nicht implementiert haben (wir implementieren nur doGet), sodass unser Servlet keine POST-Anfragen empfangen kann. Der folgende Code zeigt die erforderliche Änderung, damit es funktioniert.
 Paket com.login.servlets; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; öffentliche Klasse LoginServlet erweitert HttpServlet {@Override protected void doPost (HttpServletRequest req, HttpServletResponse bzw.) throws ServletException, IOException {String user = req.getParameter ("user"); String pass = req.getParameter ("Schlüssel"); if ("admin" .equals (Benutzer) && "atx123" .equals (pass)) {Antwort (bzw. "Login ok"); } else {Antwort (bzw. "Anmeldefehler"); }} private void-Antwort (HttpServletResponse bzw. String msg) wirft IOException {PrintWriter out = resp.getWriter(); out.println (""); out.println (""); out.println ("" + msg + ""); out.println (""); out.println (""); }}

Die einzige Änderung ist, dass ich doGet durch doPost ersetzt habe. Nach der Neukompilierung und Bereitstellung des Servlets, dem Neustart des Servers und der erneuten Verwendung von login.html funktioniert es wieder normal.Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben
wave wave wave wave wave