Jsp sider hvordan man sender parametre, GET og POST metode i Servlets

Indholdsfortegnelse

Alle dynamiske web sender og modtager parametre, der er den måde, hvorpå brugeren kan sende oplysninger til HTTP -serveren. For eksempel skal vi på en typisk login -skærm sende brugernavnet og adgangskoden til serveren for at validere det.
Hvordan browseren gør for at sende disse parametre ved hjælp af GET- eller POST -metoden, forklares i webserver- eller HTTP -serverundervisningen. Hvad vi skal se i denne vejledning er, hvordan man henter loginoplysninger på serveren ved hjælp af Servlet API.
Det første, vi skal gøre, er at oprette en login.html -side på vores websted med følgende indhold:
 
Bruger
Nøgle

Den næste ting er at oprette en Servlet, der modtager anmodningen i / login, som er adressen angivet i handlingsattributten for tagget login.html.
 pakke 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 udvider HttpServlet {@Override protected void doGet (HttpServletRequest req, HttpServletResponse resp) smider ServletException, IOException {String user = req.getParameter ("bruger"); Stringpass = req.getParameter ("password"); if ("login" .equals (bruger) && "login" .equals (pass)) {svar (resp. "login ok"); } andet {svar (hhv. "loginfejl"); }} private void -svar (HttpServletResponse resp, String msg) smider IOException {PrintWriter ud = resp.getWriter (); out.println (""); out.println (""); out.println ("" + msg + ""); out.println (""); out.println (""); }}

Vi kompilerer dette Servlet og vi inkluderer LoginServlet.class I adressebogen / WEB-INF / klasser.
Vi ændrer web.xml for at linke / logge ind med denne Servlet.
 login-servlet com.login.servlets.LoginServlet login-servlet / login 

Vi genstarter serveren, åbner login.html -siden, sætter en x i bruger, en x i adgangskode og trykker på knappen Send.
Problemet her er, at den hemmelige adgangskode er synlig i URL'en … / login? User = admin & password = atx123, den forbliver i browserhistorikken, og alle, der får adgang til browseren efter os, kan let få den, medmindre vi bruger privat browsing eller det kan rettes ved at ændre form for indsendelse af formular til POST i login.html.
 
Bruger
Nøgle

Hvad der sker her er, at vi ikke har implementeret doPost -metoden (vi implementerer kun doGet), så vores Servlet ikke er i stand til at modtage POST -anmodninger. Følgende kode viser den ændring, der kræves for at få det til at fungere.
 pakke 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 udvider HttpServlet {@Override protected void doPost (HttpServletRequest req, HttpServletResponse resp) smider ServletException, IOException {String user = req.getParameter ("bruger"); Stringpass = req.getParameter ("nøgle"); if ("admin" .equals (bruger) && "atx123" .equals (pass)) {svar (resp. "login ok"); } andet {svar (hhv. "loginfejl"); }} private void -svar (HttpServletResponse resp, String msg) smider IOException {PrintWriter ud = resp.getWriter (); out.println (""); out.println (""); out.println ("" + msg + ""); out.println (""); out.println (""); }}

Den eneste ændring er, at jeg erstattede doGet med doPost. Efter genkompilering og implementering af Servlet, genstart af serveren og brug af login.html igen fungerer det normalt igen.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt
wave wave wave wave wave