Jsp sider hvordan du sender parametere, GET og POST metode i Servlets

Innholdsfortegnelse

All dynamisk web sender og mottar parametere som er måten brukeren kan sende informasjon til HTTP -serveren. For eksempel må vi i en typisk påloggingsskjerm sende brukernavn og passord til serveren for å validere det.
Hvordan nettleseren gjør for å sende disse parameterne ved hjelp av GET- eller POST -metoden, er forklart i opplæringen om webserver eller HTTP -server. Det vi skal se i denne opplæringen er hvordan du henter påloggingsinformasjon på serveren ved hjelp av Servlet API.
Det første vi skal gjøre er å opprette en login.html -side på nettstedet vårt med følgende innhold:
 
Bruker
Nøkkel

Den neste tingen er å lage en Servlet som mottar forespørselen i / login, som er adressen som er angitt i handlingsattributtet til login.html -taggen.
 pakke 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; import javax.servlet.http.HttpServletResponse; public class LoginServlet utvider HttpServlet {@Override protected void doGet (HttpServletRequest req, HttpServletResponse resp) kaster ServletException, IOException {String user = req.getParameter ("bruker"); Stringpass = req.getParameter ("passord"); if ("login" .equals (user) && "login" .equals (pass)) {response (resp. "login ok"); } annet {svar (resp. "Påloggingsfeil"); }} private void response (HttpServletResponse resp, String msg) kaster IOException {PrintWriter ut = resp.getWriter (); out.println (""); out.println (""); out.println ("" + msg + ""); out.println (""); out.println (""); }}

Vi kompilerer dette Servlet og vi inkluderer LoginServlet.class I adresseboken / WEB-INF / klasser.
Vi modifiserer web.xml for å koble til / logge inn med denne Servlet.
 login-servlet com.login.servlets.LoginServlet login-servlet / login 

Vi starter serveren på nytt, åpner login.html -siden, setter en x -bruker, et x -passord og trykker på send -knappen.
Problemet her er at det hemmelige passordet er synlig i URL -en … / login? User = admin & password = atx123, det vil forbli i nettleserhistorikken og alle som får tilgang til nettleseren etter oss kan enkelt få det, med mindre vi bruker privat surfing eller det kan fikses ved å endre skjemaet for innsending av skjema til POST i login.html.
 
Bruker
Nøkkel

Det som skjer her er at vi ikke har implementert doPost -metoden (vi implementerer bare doGet), slik at Servlet ikke kan motta POST -forespørsler. Følgende kode viser endringen som kreves for at den skal fungere.
 pakke 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; import javax.servlet.http.HttpServletResponse; public class LoginServlet utvider HttpServlet {@Override protected void doPost (HttpServletRequest req, HttpServletResponse resp) kaster ServletException, IOException {String user = req.getParameter ("bruker"); Stringpass = req.getParameter ("nøkkel"); if ("admin" .equals (bruker) && "atx123" .equals (pass)) {respons (resp. "login ok"); } annet {svar (resp. "Påloggingsfeil"); }} private void response (HttpServletResponse resp, String msg) kaster IOException {PrintWriter ut = resp.getWriter (); out.println (""); out.println (""); out.println ("" + msg + ""); out.println (""); out.println (""); }}

Den eneste endringen er at jeg erstattet doGet med doPost. Etter å ha kompilert og distribuert Servlet igjen, startet serveren på nytt og brukt login.html igjen, fungerer det normalt igjen.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng
wave wave wave wave wave