Esempi di programmi JSP: modulo di registrazione e accesso

programmi di esempio jsp

In questo tutorial ti guiderò attraverso lo sviluppo di programmi di esempio con JSP e l'implementazione dell'architettura MVC.

Verranno sviluppati i seguenti esempi di programma:

  • il modulo d'iscrizione
  • Modulo di accesso e disconnessione
  • Modulo JSP

Utilizzando il modulo di registrazione tramite JSP

Nel modulo di registrazione avremo un modulo da compilare con tutti i dettagli che conterranno nome, nome utente, password, indirizzo, numero di contatto, ecc.

Questo modulo ci aiuterà a registrarci con l'applicazione. Prendono tutti i nostri dati e li conservano in un banca dati o cache.

In questo esempio, prenderemo il "Modulo di registrazione Guru" che ha i seguenti campi:

  1. Nome
  2. Cognome
  3. Nome utente
  4. Password
  5. Indirizzo
  6. Numero Cellulare

Dopo aver inserito tutti questi dati, faremo clic sul pulsante Invia; cliccando su tale pulsante, tutti i dati verranno salvati.

Esempio 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>

Spiegazione del codice:

Riga di codice 11: Qui stiamo prendendo il nome di un modulo che ha un'azione, ovvero il servlet a cui verrà elaborata la richiesta e il nome del servlet è guru_register.java. La richiesta verrà elaborata tramite modalità POST.

Riga di codice 14-16: Qui stiamo prendendo il tipo di input come testo e il nome è il nome

Riga di codice 18-20: Qui stiamo prendendo il tipo di input come testo e il nome è il cognome

Riga di codice 22-24: Qui stiamo prendendo il tipo di input come testo e il nome come nome utente

Riga di codice 26-28: Qui stiamo prendendo il tipo di input come password (questo nasconderà la password quando viene digitata) e il nome come password

Riga di codice 30-32: Qui stiamo prendendo il tipo di input come testo e il nome come indirizzo

Riga di codice 34-36: Qui stiamo prendendo il tipo di input come testo e il nome come contatto

Riga di codice 37: Qui stiamo prendendo un pulsante di tipo invio e anche il valore è invio. Facendo clic su questo pulsante l'azione andrà al servlet guru_register corrispondente dove tutti i valori dei parametri verranno passati nella richiesta.

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

}

Spiegazione del codice:

Riga di codice 14: Qui definiamo guru_servlet che estende HttpServlet.

Riga di codice 18: Questa azione doPost() metodo che verrà chiamato quando menzioniamo POST nell'attributo action nel modulo JSP sopra.

Riga di codice 20-25: Qui stiamo recuperando i valori dalla richiesta i.efirst_name, last_name , nome utente, password, indirizzo e contatto utilizzando request.getParameter.

Riga di codice 27-32: Qui stiamo prendendo la condizione if in cui controlliamo uno qualsiasi dei parametri recuperati dalla richiesta come se siano vuoti o meno. Se uno qualsiasi dei parametri è vuoto, verrà inserita questa condizione ( first_name.isEmpty() || last_name.isEmpty || nomeutente.isEmpty || password.isEmpty || indirizzo.isEmpty || contact.isEmpty()) e avremo per recuperare l'oggetto RequestDispatcher utilizzando l'oggetto richiesta che inoltrerà la richiesta a Register_1.jsp. Qui includiamo anche oggetti di richiesta e risposta.

Riga di codice 33-37: Questo caso verrà eseguito quando uno qualsiasi dei parametri non è vuoto. Dovremo recuperare l'oggetto requestDispatcher utilizzando l'oggetto richiesta che inoltrerà la richiesta a Register_2.jsp. Qui stiamo inoltrando oggetti di richiesta e risposta.

Esempio 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>

Spiegazione del codice:

Riga di codice 10: Qui stiamo dicendo benvenuto utente. Questo JSP verrà chiamato quando tutti i parametri saranno riempiti.

Quando esegui il codice sopra, ottieni il seguente output:

Utilizzo del modulo di registrazione tramite JSP

Utilizzo del modulo di registrazione tramite JSP

Produzione:

Quando clicchiamo su register_1.jsp, otterremo un modulo che conterrà dettagli come nome, cognome, nome utente, password, indirizzo, contatto. Tutti i dettagli sono stati compilati. Quando clicchiamo sul pulsante di invio, otteniamo il messaggio "Welcome User" (Benvenuto utente)

Modulo di accesso e disconnessione

Come il modulo di registrazione, avremo un modulo di accesso e disconnessione.

In questo esempio, abbiamo preso il modulo di accesso in cui abbiamo due campi "nome utente" e "password" con un pulsante di invio.

Quando facciamo clic sul pulsante di invio, riceviamo un messaggio di benvenuto con un pulsante di disconnessione.

Quando facciamo clic sul pulsante di disconnessione, torniamo al modulo di accesso.

Esempio 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>

Spiegazione del codice:

Riga di codice 10: Qui stiamo prendendo il nome di un modulo che ha un'azione, cioè il servlet a cui è passato è guru_login.java. Il metodo attraverso il quale passerà il suo POST.

Riga di codice 13-16: Qui stiamo prendendo un campo di input "nome utente" che è del tipo testo.

Riga di codice 17-20: Qui stiamo prendendo un campo di input “password” che è del tipo password.

Riga di codice 22: Qui stiamo prendendo un pulsante "invia" con il valore "Login" su cui facciamo clic, quindi va al servlet guru_login dove entrambi i campi vengono presi utilizzando l'oggetto richiesta.

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

}

Spiegazione del codice:

Riga di codice 5-9: Qui stiamo importando le importazioni necessarie nel codice.

Riga di codice 14: Qui stiamo prendendo la servlet guru_login che estende HttpServlet.

Riga di codice 21: Qui stiamo usando doPost() metodo come nel modulo in cui stiamo utilizzando il metodo POST.

Riga di codice 23-24: Qui prendiamo i parametri utilizzando l'oggetto richiesta, ovvero nome utente e password.

Riga di codice 25-29: In questo modo, stiamo prendendo la condizione "se" in cui stiamo controllando nome utente e password se sono vuoti o meno. In questo caso, se è vuoto, stiamo ottenendo l'oggetto requestdispatcher che inoltra a Register_3.jsp con oggetti di richiesta e risposta.

Riga di codice 30-34: Questo verrà eseguito se entrambi non sono vuoti, quindi inoltrerà la richiesta a Register_4.jsp con oggetti richiesta e risposta.

Esempio 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>

Spiegazione del codice:

Riga di codice 12: Qui stiamo ottenendo il parametro "nome utente" dall'oggetto richiesta nella stringa nome utente dell'oggetto.

Riga di codice 13: Qui abbiamo un messaggio di benvenuto con il nome utente.

Riga di codice 14: Qui colleghiamo per disconnettersi il modulo che reindirizza a Register_3.jsp.

Quando esegui il codice soprastante, ottieni il seguente output:

Produzione:

Qui quando clicchiamo su Register_3.jsp otteniamo due campi "nome utente" e "password" con un pulsante di accesso.

Modulo di accesso e disconnessione

Dopo aver fatto clic sul pulsante Accedi, viene visualizzato il messaggio seguente con un pulsante Esci.

Modulo di accesso e disconnessione

Quando si fa clic sul pulsante di disconnessione si torna alla pagina di accesso

Modulo di accesso e disconnessione

Elaborazione del modulo JSP utilizzando getParameter()

Elaborazione moduli JSP:

I moduli sono il metodo comune nell'elaborazione web. Dobbiamo inviare informazioni al server web e tali informazioni.

Esistono due metodi comunemente utilizzati per inviare e recuperare informazioni al server web.

Metodo OTTIENI:

  • Questo è il metodo predefinito per passare le informazioni dal browser al server web.
  • Invia le informazioni codificate separate dal carattere aggiunto alla pagina URL.
  • Ha anche un limite di dimensione e possiamo inviare solo 1024 caratteri nella richiesta.
  • Dovremmo evitare di inviare password e informazioni sensibili tramite il metodo GET.

Metodo POST:

  • Il metodo Post è il metodo più affidabile per inviare informazioni al server.
  • Invia informazioni come messaggio separato.
  • Invia come stringa di testo dopo? nell'URL.
  • Viene comunemente utilizzato per inviare informazioni sensibili.

JSP gestisce l'elaborazione dei dati del modulo utilizzando i seguenti metodi:

  1. getParameter(): Viene utilizzato per ottenere il valore del parametro del modulo.
  2. getParameterValues(): Viene utilizzato per restituire più valori dei parametri.
  3. getParameterNames(): Viene utilizzato per ottenere i nomi dei parametri.
  4. getInputStream(): Viene utilizzato per leggere i dati binari inviati dal client.

Esempio:

In questo esempio, abbiamo preso un modulo con due campi “nome utente” e “password” con un pulsante di invio

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>

Spiegazione del codice: Action_form.jsp

Riga di codice 10: Qui abbiamo definito una forma e attraverso la quale dobbiamo trasformare l'azione in un'altra JSP. Nel parametro dell'azione, aggiungiamo quella JSP a cui deve essere elaborata tramite il metodo GET.

Qui stiamo utilizzando il metodo GET per passare le informazioni, ad esempio nome utente e password.

Riga di codice 11-14: Qui stiamo prendendo campi come nome utente e password che sono campi di testo e riceviamo l'input dall'utente.

Questo input può essere recuperato utilizzando il metodo getParameter. Inoltre, abbiamo un pulsante di invio con il tipo di invio che ci aiuta a passare i valori del campo in action_form_process.jsp

Action_form_process.jsp

Riga di codice 14: Qui otteniamo i valori dei campi di input da action_form.jsp utilizzando il metodo getParameter dell'oggetto richiesta.

Quando eseguiamo il codice sopra, otteniamo il seguente output:

Elaborazione moduli JSP

Elaborazione moduli JSP

Produzione:

Quando eseguiamo action_form.jsp, otteniamo un modulo con due campi nome utente e password e un pulsante di invio. Quindi, dopo aver inserito nome utente e password, possiamo fare clic su invio e viene elaborato alla pagina successiva che fornisce l'output come pagina di elaborazione del modulo con un messaggio di benvenuto.

Newsletter quotidiana di Guru99

Inizia la giornata con le ultime e più importanti notizie sull'intelligenza artificiale, pubblicate in questo momento.