Příklady programu JSP: Registrační a přihlašovací formulář

ukázkové programy jsp

V tomto tutoriálu vás provedu vývojem ukázkových programů s JSP a implementací architektury MVC v tomto tutoriálu.

Budou vyvinuty následující příklady programů:

  • Registrační formulář
  • Přihlašovací a odhlašovací formulář
  • Formulář JSP

Pomocí registračního formuláře přes JSP

V Registračním formuláři budeme mít formulář pro vyplnění všech údajů, které budou obsahovat jméno, uživatelské jméno, heslo, adresu, kontaktní číslo atd.

Tento formulář nám ​​pomůže zaregistrovat se do aplikace. Vezmou všechny naše detaily a uloží je do a databáze nebo cache.

V tomto příkladu použijeme „registrační formulář Guru“, který má následující pole:

  1. Jméno
  2. Příjmení
  3. Uživatelské jméno
  4. Heslo
  5. Adresa
  6. Kontaktujte číslo

Po vyplnění všech těchto údajů máme tlačítko odeslat, kliknutím na toto tlačítko se všechny údaje uloží.

Příklad 1: Register_1.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Registration Form</title>
</head>
<body>
<h1>Guru Register Form</h1>
<form action="guru_register" method="post">
			<table style="with: 50%">
				<tr>
					<td>First Name</td>
					<td><input type="text" name="first_name" /></td>
				</tr>
				<tr>
					<td>Last Name</td>
					<td><input type="text" name="last_name" /></td>
				</tr>
				<tr>
					<td>UserName</td>
					<td><input type="text" name="username" /></td>
				</tr>
					<tr>
					<td>Password</td>
					<td><input type="password" name="password" /></td>
				</tr>
				<tr>
					<td>Address</td>
					<td><input type="text" name="address" /></td>
				</tr>
				<tr>
					<td>Contact No</td>
					<td><input type="text" name="contact" /></td>
				</tr></table>
			<input type="submit" value="Submit" /></form>
</body>
</html>

Vysvětlení kódu:

11. řádek kódu: Zde bereme název formuláře, který má akci, tj. servlet, na který bude požadavek zpracován, a název servletu je guru_register.java. Požadavek bude zpracován metodou POST.

Řádek 14–16 kódu: Zde bereme typ vstupu jako text a jméno je křestní jméno

Řádek 18–20 kódu: Zde bereme typ vstupu jako text a jméno je příjmení

Řádek 22–24 kódu: Zde bereme typ vstupu jako text a jméno je uživatelské jméno

Řádek 26–28 kódu: Zde bereme typ vstupu jako heslo (toto heslo skryje při psaní) a jméno jako heslo

Řádek 30–32 kódu: Zde bereme typ vstupu jako text a jméno jako adresu

Řádek 34–36 kódu: Zde bereme typ vstupu jako text a jméno jako kontakt

37. řádek kódu: Zde bereme tlačítko typu odeslat a hodnota je také odeslat. Po kliknutí na toto tlačítko akce přejde na odpovídající servlet guru_register, kde budou v požadavku předány všechny hodnoty parametrů.

Příklad 2: Guru_register.java

package demotest;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class guru_register
 */
public class guru_register extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    
     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String first_name = request.getParameter("first_name");
		String last_name = request.getParameter("last_name");
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String address = request.getParameter("address");
		String contact = request.getParameter("contact");
		
		if(first_name.isEmpty() || last_name.isEmpty() || username.isEmpty() || 
				password.isEmpty() || address.isEmpty() || contact.isEmpty())
		{
			RequestDispatcher req = request.getRequestDispatcher("register_1.jsp");
			req.include(request, response);
		}
		else
		{
			RequestDispatcher req = request.getRequestDispatcher("register_2.jsp");
			req.forward(request, response);
		}
	}

}

Vysvětlení kódu:

14. řádek kódu: Zde definujeme guru_servlet, který rozšiřuje HttpServlet.

18. řádek kódu: Tato akce doPost() metoda, která bude volána, když ve výše uvedeném formuláři JSP zmíníme atribut POST in action.

Řádek 20–25 kódu: Zde načítáme hodnoty z požadavku i.efirst_name, last_name , username, password, address a contact pomocí request.getParameter.

Řádek 27–32 kódu: Zde bereme podmínku if, kdy kontrolujeme některý z parametrů, které jsou načteny z požadavku, zda jsou prázdné nebo ne. Pokud je některý z parametrů prázdný, zadá tuto podmínku ( first_name.isEmpty() || last_name.isEmpty || username.isEmpty || password.isEmpty || address.isEmpty || contact.isEmpty()) a máme k načtení objektu RequestDispatcher pomocí objektu požadavku, který předá požadavek na register_1.jsp. Zde také zahrnujeme objekty požadavků a odpovědí.

Řádek 33–37 kódu: Tento případ se spustí, když některý z parametrů není prázdný. Budeme muset načíst objekt requestDispatcher pomocí objektu požadavku, který předá požadavek na register_2.jsp. Zde předáváme objekty požadavku a odpovědi.

Příklad 3: Register_2.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Success Page</title>
</head>
<body>
           <a><b>Welcome User!!!!</b></a>
</body>
</html>

Vysvětlení kódu:

10. řádek kódu: Zde říkáme vítaný uživatel. Tento JSP bude volán, když jsou vyplněny všechny parametry.

Když spustíte výše uvedený kód, získáte následující výstup:

Pomocí registračního formuláře přes JSP

Pomocí registračního formuláře přes JSP

Výstup:

Když klikneme na register_1.jsp, dostaneme formulář, který bude obsahovat podrobnosti jako jméno, příjmení, uživatelské jméno, heslo, adresa, kontakt. Všechny podrobnosti byly vyplněny. Když klikneme na tlačítko Odeslat, zobrazí se zpráva „Vítaný uživatel“

Přihlašovací a odhlašovací formulář

Stejně jako registrační formulář budeme mít přihlašovací a odhlašovací formulář.

V tomto příkladu jsme použili přihlašovací formulář, kde máme dvě pole „uživatelské jméno“ a „heslo“ s tlačítkem Odeslat.

Když klikneme na tlačítko Odeslat, zobrazí se uvítací zpráva s tlačítkem pro odhlášení.

Když klikneme na tlačítko odhlásit, vrátíme se zpět do přihlašovacího formuláře.

Příklad 1: Register_3.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Login Form</title>
</head>
<body>
<form action="guru_login" method="post">
		<table style="with: 50%">

			<tr>
				<td>UserName</td>
				<td><input type="text" name="username" /></td>
			</tr>
				<tr>
				<td>Password</td>
				<td><input type="password" name="password" /></td>
			</tr>
		</table>
		<input type="submit" value="Login" /></form>
</body>
</html>

Vysvětlení kódu:

10. řádek kódu: Zde bereme název formuláře, který má akci, tj. servlet, kterému byl předán, je guru_login.java. Metoda, kterou projde svůj POST.

Řádek 13–16 kódu: Zde bereme vstupní pole „username“, které je typu text.

Řádek 17–20 kódu: Zde bereme vstupní pole „heslo“, které je typu heslo.

22. řádek kódu: Zde vezmeme tlačítko „odeslat“ s hodnotou „Přihlášení“, na které klikneme a poté přejde na servlet guru_login, kde jsou obě pole převzata pomocí objektu požadavku.

Guru_login.java(servlet)

package demotest;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class guru_login
 */
public class guru_login extends HttpServlet {

    public guru_login() {
        super();
        // TODO Auto-generated constructor stub
    }

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		if(username.isEmpty() || password.isEmpty() )
		{
			RequestDispatcher req = request.getRequestDispatcher("register_3.jsp");
			req.include(request, response);
		}
		else
		{
			RequestDispatcher req = request.getRequestDispatcher("register_4.jsp");
			req.forward(request, response);
		}
	}

}

Vysvětlení kódu:

Řádek 5–9 kódu: Zde importujeme potřebné importy v kódu.

14. řádek kódu: Zde bereme servlet guru_login, který rozšiřuje HttpServlet.

21. řádek kódu: Zde používáme doPost() jako ve formuláři, který používáme metodu POST.

Řádek 23–24 kódu: Zde bereme parametry pomocí objektu požadavku, tj. uživatelské jméno a heslo.

Řádek 25–29 kódu: Tímto způsobem přebíráme podmínku „if“, kdy kontrolujeme uživatelské jméno a heslo, zda jsou prázdné nebo ne. V tomto případě, pokud je prázdné, dostáváme objekt requestdispatcher, který přesměruje na register_3.jsp s objekty request a response.

Řádek 30–34 kódu: To se provede, pokud oba nejsou prázdné, pak předá požadavek na register_4.jsp s objekty request a response.

Příklad 2: Register_4.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Logged In</title>
</head>
<body>
	<table style="with: 50%">
	<tr><td>
	<% String username = request.getParameter("username"); %>
<a>Welcome   <% out.println(username); %> User!!!! You have logged in.</a></td></tr>
<tr></tr><tr><td></td><td></td><td><a href="register_3.jsp"><b>Logout</b></a></td></tr>
</table>
</body>
</html>

Vysvětlení kódu:

12. řádek kódu: Zde získáváme parametr „username“ z objektu požadavku v řetězci objektu username.

13. řádek kódu: Zde máme uvítací zprávu s uživatelským jménem.

14. řádek kódu: Zde uvádíme odkaz na odhlášení z formuláře, který přesměrovává na register_3.jsp.

Když spustíte výše uvedený kód, získáte následující výstup:

Výstup:

Zde, když klikneme na register_3.jsp, dostaneme dvě pole „uživatelské jméno“ a „heslo“ s tlačítkem přihlášení.

Přihlašovací a odhlašovací formulář

Po kliknutí na tlačítko Přihlásit se zobrazí níže uvedená zpráva s tlačítkem Odhlásit.

Přihlašovací a odhlašovací formulář

Po kliknutí na tlačítko odhlásit se vrátíte zpět na přihlašovací stránku

Přihlašovací a odhlašovací formulář

Zpracování formuláře JSP pomocí getParameter()

Zpracování formuláře JSP:

Formuláře jsou běžnou metodou při zpracování webu. Potřebujeme odeslat informace na webový server a tyto informace.

Existují dva běžně používané způsoby odesílání a získávání informací na webový server.

GET metoda:

  • Toto je výchozí způsob předávání informací z prohlížeče na webový server.
  • Odešle zakódované informace oddělené znakem ? připojeným k URL stránce.
  • Má také omezení velikosti a v požadavku můžeme odeslat pouze 1024 znaků.
  • Měli bychom se vyhnout odesílání hesel a citlivých informací metodou GET.

Metoda POST:

  • Post metoda je nejspolehlivější metodou odesílání informací na server.
  • Odesílá informace jako samostatnou zprávu.
  • Odesílá se jako textový řetězec za ?v URL.
  • Běžně se používá k odesílání citlivých informací.

JSP zpracovává zpracování dat formuláře pomocí následujících metod:

  1. getParameter(): Používá se k získání hodnoty parametru formuláře.
  2. getParameterValues(): Používá se k vrácení více hodnot parametrů.
  3. getParameterNames(): Používá se k získání názvů parametrů.
  4. getInputStream(): Používá se ke čtení binárních dat odeslaných klientem.

Příklad:

V tomto příkladu jsme vzali formulář se dvěma poli „uživatelské jméno“ a „heslo“ s tlačítkem Odeslat

Action_form.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Form</title>
</head>
<body>
<form action="action_form_process.jsp" method="GET">
UserName: <input type="text" name="username">
<br />
Password: <input type="text" name="password" />
<input type="submit" value="Submit" />
</form>
</body>
</html>

Action_form_process.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<h1>Form Processing</h1>

<p><b>Welcome User:</b>
   <%= request.getParameter("username")%>
</p>

</body>
</html>

Vysvětlení kódu: Action_form.jsp

10. řádek kódu: Zde jsme definovali formulář a přes který jsme akci zpracovali na nějakou jinou JSP. V parametru akce přidáme to JSP, do kterého se má zpracovat metodou GET.

Zde používáme metodu GET k předání informací, tj. uživatelského jména a hesla.

Řádek 11–14 kódu: Zde bereme pole jako uživatelské jméno a heslo, což jsou textová pole, a dostáváme vstup od uživatele.

Tento vstup lze načíst pomocí metody getParameter. Také máme tlačítko Odeslat s typem Odeslat, které nám pomáhá předávat hodnoty pole do action_form_process.jsp

Action_form_process.jsp

14. řádek kódu: Zde získáme hodnoty vstupních polí z action_form.jsp pomocí metody getParameter objektu požadavku.

Když spustíme výše uvedený kód, dostaneme následující výstup:

Zpracování formuláře JSP

Zpracování formuláře JSP

Výstup:

Když spustíme action_form.jsp, dostaneme formulář se dvěma poli uživatelské jméno a heslo a tlačítko Odeslat. Poté po zadání uživatelského jména a hesla můžeme kliknout na odeslat a proces se zpracuje na další stránku, která poskytne výstup jako stránku zpracování formuláře s uvítací zpráva.