Stránky Jsp, jak odesílat parametry, metodu GET a POST v servletech

Obsah

Veškerý dynamický web odesílá a přijímá parametry, které jsou způsobem, jakým může uživatel odesílat informace na server Http. Například na typické přihlašovací obrazovce potřebujeme odeslat uživatelské jméno a heslo na server, abychom jej ověřili.
Jak prohlížeč provádí odesílání těchto parametrů pomocí metody GET nebo POST, je vysvětleno v kurzu Web Server nebo HTTP Server. V tomto kurzu uvidíme, jak načíst přihlašovací údaje na serveru pomocí rozhraní Servlet API.
První věc, kterou uděláme, je vytvořit na našem webu stránku login.html s následujícím obsahem:
 
Uživatel
Klíč

Další věcí je vytvořit Servlet, který obdrží požadavek v / přihlášení, což je adresa uvedená v atributu akce značky login.html.
 balíček 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; veřejná třída LoginServlet rozšiřuje HttpServlet {@Override protected void doGet (HttpServletRequest req, HttpServletResponse resp) hodí ServletException, IOException {String user = req.getParameter ("uživatel"); String pass = req.getParameter ("heslo"); if ("login" .equals (uživatel) && "login" .equals (pass)) {response (resp. "login ok"); } else {odpověď (resp. "Chyba přihlášení"); }} soukromá neplatná odpověď (HttpServletResponse resp. String msg) vyvolá IOException {PrintWriter out = resp.getWriter (); out.println (""); out.println (""); out.println ("" + zpráva + ""); out.println (""); out.println (""); }}

Toto sestavujeme Servlet a my zahrnujeme PřihlašovacíServlet.class V adresáři / WEB-INF / třídy.
Upravujeme web.xml tak, aby odkazoval / přihlašoval se k tomuto servletu.
 přihlašovací servlet com.login.servlets.LoginServlet přihlašovací servlet / přihlášení 

Restartujeme server, otevřeme stránku login.html, vložíme uživatele x, heslo x a stiskneme tlačítko Odeslat.
Problém je v tom, že tajné heslo je viditelné v URL … / přihlášení? Uživatel = admin & heslo = atx123, zůstane v historii prohlížeče a kdokoli, kdo po nás přistupuje k prohlížeči, jej může snadno získat, pokud nepoužíváme soukromé prohlížení nebo to lze opravit změnou metody odeslání formuláře na POST v login.html.
 
Uživatel
Klíč

Zde se stane, že jsme neimplementovali metodu doPost (implementujeme pouze doGet), takže náš Servlet není schopen přijímat požadavky POST. Následující kód ukazuje požadovanou úpravu, aby fungovala.
 balíček 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; veřejná třída LoginServlet rozšiřuje HttpServlet {@Override protected void doPost (HttpServletRequest req, HttpServletResponse resp) hodí ServletException, IOException {String user = req.getParameter ("uživatel"); Průchod řetězce = req.getParameter ("klíč"); if ("admin" .equals (uživatel) && "atx123" .equals (pass)) {odpověď (resp. "přihlášení v pořádku"); } else {odpověď (resp. "Chyba přihlášení"); }} soukromá neplatná odpověď (HttpServletResponse resp. String msg) vyvolá IOException {PrintWriter out = resp.getWriter (); out.println (""); out.println (""); out.println ("" + zpráva + ""); out.println (""); out.println (""); }}

Jedinou změnou je, že jsem doGet nahradil doPost. Po překompilování a nasazení servletu, restartování serveru a opětovném použití login.html funguje znovu normálně.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave