Pagine Jsp come inviare parametri, metodo GET e POST in Servlet

Sommario

Tutto il web dinamico invia e riceve parametri che sono il modo in cui l'utente può inviare informazioni al server Http. Ad esempio, in una tipica schermata di accesso dobbiamo inviare il nome utente e la password al server per convalidarlo.
Il modo in cui il browser invia questi parametri utilizzando il metodo GET o POST è spiegato nel tutorial Server Web o Server HTTP. Quello che vedremo in questo tutorial è come recuperare le informazioni di accesso sul server utilizzando l'API Servlet.
La prima cosa che faremo è creare una pagina login.html sul nostro sito con il seguente contenuto:
 
Utente
Chiave

La prossima cosa è creare una Servlet che riceva la richiesta in /login, che è l'indirizzo indicato nell'attributo action del tag login.html.
 pacchetto 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; public class LoginServlet estende HttpServlet {@Override protected void doGet (HttpServletRequest req, HttpServletResponse resp) genera ServletException, IOException {String user = req.getParameter ("utente"); String pass = req.getParameter ("password"); if ("login" .equals (utente) && "login" .equals (pass)) {response (resp, "login ok"); } else {risposta (resp, "Errore di accesso"); }} risposta privata void (HttpServletResponse resp, String msg) genera IOException {PrintWriter out = resp.getWriter (); out.println (""); out.println (""); out.println ("" + msg + ""); out.println (""); out.println (""); }}

Compiliamo questo servlet e includiamo LoginServlet.class Nella rubrica / WEB-INF / classi.
Modifichiamo web.xml per collegare/accedere a questo Servlet.
 login-servlet com.login.servlets.LoginServlet login-servlet / login 

Riavviamo il server, apriamo la pagina login.html, mettiamo una x in user, una x in password e premiamo il pulsante di invio.
Il problema qui è che la password segreta è visibile nell'URL… / login? User = admin & password = atx123, rimarrà nella cronologia del browser e chiunque acceda al browser dopo di noi può ottenerla facilmente, a meno che non utilizziamo la navigazione privata oppure può essere risolto modificando il metodo di invio del modulo in POST in login.html.
 
Utente
Chiave

Quello che succede qui è che non abbiamo implementato il metodo doPost ( implementiamo solo doGet) quindi il nostro Servlet non è in grado di ricevere richieste POST. Il codice seguente mostra la modifica necessaria per farlo funzionare.
 pacchetto 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; public class LoginServlet estende HttpServlet {@Override protected void doPost (HttpServletRequest req, HttpServletResponse resp) genera ServletException, IOException {String user = req.getParameter ("utente"); String pass = req.getParameter ("chiave"); if ("admin" .equals (utente) && "atx123" .equals (pass)) {response (resp, "login ok"); } else {risposta (resp, "Errore di accesso"); }} risposta privata void (HttpServletResponse resp, String msg) genera IOException {PrintWriter out = resp.getWriter (); out.println (""); out.println (""); out.println ("" + msg + ""); out.println (""); out.println (""); }}

L'unico cambiamento è che ho sostituito doGet con doPost. Dopo aver ricompilato e distribuito il Servlet, riavviato il server e utilizzato nuovamente login.html, funziona di nuovo normalmente.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo
wave wave wave wave wave