Przykłady programów JSP: Formularz rejestracji i logowania

przykładowe programy jsp

W tym samouczku przeprowadzę Cię przez proces tworzenia przykładowych programów za pomocą JSP i implementacji architektury MVC.

Opracowane zostaną następujące przykłady programów:

  • Formularz rejestracyjny
  • Formularz logowania i wylogowania
  • Formularz JSP

Korzystanie z formularza rejestracyjnego poprzez JSP

W formularzu rejestracyjnym znajduje się formularz, w którym należy podać wszystkie szczegóły, takie jak imię i nazwisko, nazwa użytkownika, hasło, adres, numer telefonu itp.

Ten formularz pomoże nam zarejestrować się w aplikacji. Biorą wszystkie nasze dane i przechowują je w baza danych lub pamięć podręczna.

W tym przykładzie weźmiemy pod uwagę „Formularz rejestracji guru”, który zawiera następujące pola:

  1. Imię
  2. Nazwisko
  3. Nazwa użytkownika
  4. Hasło
  5. Adres
  6. Kontaktowy numer

Po wypełnieniu wszystkich szczegółów klikamy przycisk „Prześlij”, po kliknięciu którego wszystkie dane zostaną zapisane.

Przykład 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>

Wyjaśnienie kodu:

Linia kodu 11: Tutaj bierzemy nazwę formularza, która zawiera akcję, tj. serwlet, do którego zostanie przetworzone żądanie, a nazwa serwletu to guru_register.java. Żądanie zostanie przetworzone metodą POST.

Linia kodu 14-16: Tutaj bierzemy typ wejściowy jako tekst, a imię to imię

Linia kodu 18-20: Tutaj bierzemy typ wejściowy jako tekst, a imię to nazwisko

Linia kodu 22-24: Tutaj bierzemy typ wejściowy jako tekst, a nazwa to nazwa użytkownika

Linia kodu 26-28: Tutaj bierzemy typ wejściowy jako hasło (to ukryje hasło po wpisaniu) i nazwę jako hasło

Linia kodu 30-32: Tutaj bierzemy typ wejściowy jako tekst i nazwę jako adres

Linia kodu 34-36: Tutaj przyjmujemy typ wejściowy jako tekst i nazwę jako kontakt

Linia kodu 37: Tutaj bierzemy przycisk typu „prześlij”, a wartość również jest przesyłana. Po kliknięciu tego przycisku akcja zostanie skierowana do odpowiedniego serwletu guru_register, gdzie w żądaniu zostaną przekazane wszystkie wartości parametrów.

Przykład 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);
		}
	}

}

Wyjaśnienie kodu:

Linia kodu 14: Tutaj definiujemy guru_servlet, który jest rozszerzeniem HttpServlet.

Linia kodu 18: Ta akcja doPost() metoda, która zostanie wywołana, gdy wspomnimy o atrybucie POST w akcji w powyższym formularzu JSP.

Linia kodu 20-25: Tutaj pobieramy wartości z żądania i.efirst_name, last_name , nazwa użytkownika, hasło, adres i kontakt za pomocą request.getParameter.

Linia kodu 27-32: Tutaj bierzemy warunek if, w którym sprawdzamy, czy którykolwiek z parametrów pobranych z żądania jest pusty, czy nie. Jeśli którykolwiek z parametrów jest pusty, przejdzie do tego warunku ( imię.isEmpty() || nazwisko.isEmpty || nazwa_użytkownika.isEmpty || hasło.isEmpty || adres.isEmpty || kontakt.isEmpty()) i mamy pobrać obiekt RequestDispatcher za pomocą obiektu żądania, który przekaże żądanie do rejestru_1.jsp. Tutaj uwzględniamy także obiekty żądań i odpowiedzi.

Linia kodu 33-37: Sprawa ta zostanie wykonana, gdy którykolwiek z parametrów nie będzie pusty. Będziemy musieli pobrać obiekt requestDispatcher za pomocą obiektu request, który przekaże żądanie do rejestru_2.jsp. Tutaj przekazujemy obiekty żądania i odpowiedzi.

Przykład 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>

Wyjaśnienie kodu:

Linia kodu 10: Tutaj mówimy witaj użytkowniku. Ta strona JSP zostanie wywołana po wypełnieniu wszystkich parametrów.

Po wykonaniu powyższego kodu otrzymasz następujący wynik:

Korzystanie z formularza rejestracyjnego poprzez JSP

Korzystanie z formularza rejestracyjnego poprzez JSP

Wyjście:

Po kliknięciu register_1.jsp, otrzymamy formularz, który będzie zawierał dane takie jak imię, nazwisko, nazwa użytkownika, hasło, adres, kontakt. Wszystkie dane zostały wypełnione. Po kliknięciu przycisku Submit otrzymamy wiadomość „Welcome User”

Formularz logowania i wylogowywania

Podobnie jak formularz rejestracyjny, będziemy mieli formularz logowania i wylogowania.

W tym przykładzie przyjęliśmy formularz logowania, w którym mamy dwa pola „nazwa użytkownika” i „hasło” z przyciskiem przesyłania.

Po kliknięciu przycisku Wyślij otrzymamy wiadomość powitalną z przyciskiem wylogowania.

Klikając przycisk wylogowania wracamy do formularza logowania.

Przykład 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>

Wyjaśnienie kodu:

Linia kodu 10: Tutaj bierzemy nazwę formularza, która ma akcję, tj. serwlet, do którego został przekazany, to guru_login.java. Metoda, przez którą przejdzie swój test POST.

Linia kodu 13-16: Tutaj bierzemy pole wejściowe „nazwa użytkownika”, które jest typu tekstowego.

Linia kodu 17-20: Tutaj bierzemy pole wejściowe „hasło”, które jest typu hasło.

Linia kodu 22: Tutaj bierzemy przycisk „wyślij” z wartością „Zaloguj się”, który klikamy, a następnie przechodzimy do guru_login serwletu, gdzie oba pola są pobierane przy użyciu obiektu żądania.

Guru_login.java (serwlet)

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);
		}
	}

}

Wyjaśnienie kodu:

Linia kodu 5-9: Tutaj importujemy niezbędny import w kodzie.

Linia kodu 14: Tutaj bierzemy serwlet guru_login, który rozszerza HttpServlet.

Linia kodu 21: Tutaj korzystamy doPost() tak jak w formularzu używamy metody POST.

Linia kodu 23-24: Tutaj pobieramy parametry za pomocą obiektu żądania, tj. nazwy użytkownika i hasła.

Linia kodu 25-29: W ten sposób bierzemy warunek „if”, w którym sprawdzamy, czy nazwa użytkownika i hasło są puste, czy nie. W tym przypadku, jeśli jest puste, otrzymujemy obiekt requestdispatcher, który przekazuje do rejestru_3.jsp z obiektami żądania i odpowiedzi.

Linia kodu 30-34: Zostanie to wykonane, jeśli oba nie są puste, następnie przekazuje żądanie do rejestru_4.jsp z obiektami żądania i odpowiedzi.

Przykład 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>

Wyjaśnienie kodu:

Linia kodu 12: Tutaj otrzymujemy parametr „nazwa użytkownika” z obiektu żądania w obiekcie string nazwa użytkownika.

Linia kodu 13: Tutaj mamy wiadomość powitalną z nazwą użytkownika.

Linia kodu 14: Tutaj podajemy link do formularza wylogowania, który przekierowuje do rejestru_3.jsp.

Po wykonaniu powyższego kodu otrzymasz następujący wynik:

Wyjście:

Tutaj, gdy klikniemy na rejestr_3.jsp, otrzymamy dwa pola „nazwa użytkownika” i „hasło” z przyciskiem logowania.

Formularz logowania i wylogowania

Po kliknięciu przycisku Zaloguj pojawi się poniższy komunikat z przyciskiem Wyloguj.

Formularz logowania i wylogowania

Kliknięcie przycisku wylogowania powoduje powrót do strony logowania

Formularz logowania i wylogowania

Przetwarzanie formularzy JSP przy użyciu metody getParameter()

Przetwarzanie formularzy JSP:

Formularze są powszechną metodą przetwarzania stron internetowych. Musimy wysłać informacje do serwera WWW i te informacje.

Istnieją dwie powszechnie stosowane metody wysyłania i odbierania informacji do serwera WWW.

POBIERZ metodę:

  • Jest to domyślna metoda przekazywania informacji z przeglądarki do serwera WWW.
  • Wysyła zakodowane informacje oddzielone znakiem ?dodawanym do adresu URL strony.
  • Ma również ograniczenie rozmiaru i możemy wysłać tylko 1024 znaki w żądaniu.
  • Powinniśmy unikać wysyłania haseł i poufnych informacji metodą GET.

Metoda POST:

  • Metoda pocztowa to najbardziej niezawodna metoda wysyłania informacji na serwer.
  • Wysyła informacje jako osobną wiadomość.
  • Wysyła jako ciąg tekstowy po ?w adresie URL.
  • Jest powszechnie używany do wysyłania poufnych informacji.

JSP obsługuje przetwarzanie danych formularzy przy użyciu następujących metod:

  1. getParameter(): Służy do uzyskania wartości parametru formularza.
  2. getParameterValues(): Służy do zwracania wielu wartości parametrów.
  3. getParameterNames(): Służy do pobierania nazw parametrów.
  4. getInputStream(): Służy do odczytu danych binarnych przesłanych przez klienta.

Przykład:

W tym przykładzie przyjęliśmy formularz z dwoma polami „nazwa użytkownika” i „hasło” z przyciskiem przesyłania

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>

Objaśnienie kodu: Action_form.jsp

Linia kodu 10: Tutaj zdefiniowaliśmy formę i poprzez którą mamy przetworzyć akcję na inną JSP. W parametrze akcji dodajemy tę JSP, do której ma zostać przetworzona metodą GET.

Tutaj używamy metody GET do przekazania informacji, tj. nazwy użytkownika i hasła.

Linia kodu 11-14: Tutaj bierzemy pola takie jak nazwa użytkownika i hasło, które są polami tekstowymi, i otrzymujemy dane wejściowe od użytkownika.

Dane wejściowe można pobrać za pomocą metody getParameter. Mamy także przycisk przesyłania z typem przesyłania, który pomaga nam przekazywać wartości pól do action_form_process.jsp

Action_form_process.jsp

Linia kodu 14: Tutaj pobieramy wartości pól wejściowych z action_form.jsp za pomocą metody getParameter obiektu żądania.

Po wykonaniu powyższego kodu otrzymamy następujący wynik:

Przetwarzanie formularzy JSP

Przetwarzanie formularzy JSP

Wyjście:

Kiedy wykonujemy action_form.jsp, otrzymujemy formularz z dwoma polami nazwa użytkownika i hasło oraz przycisk wysyłania. Następnie po wprowadzeniu nazwy użytkownika i hasła możemy kliknąć przycisk Prześlij, co powoduje przejście do następnej strony, która daje wynik jako stronę przetwarzania formularza z wiadomość powitalna.