Primjeri JSP programa: Obrazac za registraciju i prijavu

jsp primjeri programa

U ovom vodiču, provest ću vas kroz razvoj primjera programa s JSP-om i implementaciju MVC arhitekture u ovom vodiču.

Razvit će se sljedeći primjeri programa:

  • Obrazac za prijavu
  • Obrazac za prijavu i odjavu
  • JSP obrazac

Korištenje obrasca za registraciju kroz JSP

U obrascu za registraciju imat ćemo obrazac za ispunjavanje svih detalja koji će sadržavati ime, korisničko ime, lozinku, adresu, kontakt broj itd.

Ovaj obrazac će nam pomoći da se registriramo uz aplikaciju. Uzimaju sve naše podatke i pohranjuju ih u baza podataka ili predmemorija.

U ovom primjeru uzet ćemo "Obrazac za registraciju gurua" koji ima sljedeća polja:

  1. Ime
  2. Prezime
  3. Korisničko ime
  4. Lozinka
  5. Adresa
  6. Kontakt broj:

Nakon ispunjavanja svih ovih podataka imamo gumb za slanje, klikom na taj gumb svi detalji će biti pohranjeni.

Primjer 1: Registar_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>

Objašnjenje koda:

Redak koda 11: Ovdje uzimamo naziv obrasca koji ima radnju, tj. servlet na koji će se zahtjev obraditi, a naziv servleta je guru_register.java. Zahtjev će biti obrađen metodom POST.

Redak koda 14-16: Ovdje uzimamo vrstu unosa kao tekst, a ime je ime

Redak koda 18-20: Ovdje uzimamo vrstu unosa kao tekst, a ime je prezime

Redak koda 22-24: Ovdje uzimamo vrstu unosa kao tekst, a ime je korisničko ime

Redak koda 26-28: Ovdje uzimamo vrstu unosa kao lozinku (ovo će sakriti lozinku kada se upiše) i ime kao lozinku

Redak koda 30-32: Ovdje uzimamo vrstu unosa kao tekst, a ime kao adresu

Redak koda 34-36: Ovdje uzimamo vrstu unosa kao tekst, a ime kao kontakt

Redak koda 37: Ovdje uzimamo tipku submit i vrijednost je također submit. Klikom na ovaj gumb akcija će ići na odgovarajući guru_register servlet gdje će se sve vrijednosti parametara proslijediti u zahtjevu.

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

}

Objašnjenje koda:

Redak koda 14: Ovdje definiramo guru_servlet koji proširuje HttpServlet.

Redak koda 18: Ova akcija doPost() metoda koja će biti pozvana kada spomenemo POST in action atribut u gornjem JSP obrascu.

Redak koda 20-25: Ovdje dohvaćamo vrijednosti iz zahtjeva i.efirst_name, last_name, username, password, address i contact koristeći request.getParameter.

Redak koda 27-32: Ovdje uzimamo if uvjet u kojem provjeravamo bilo koji od parametara koji se dohvaćaju iz zahtjeva jesu li prazni ili ne. Ako je bilo koji od parametara prazan, tada će ući u ovaj uvjet ( first_name.isEmpty() || last_name.isEmpty || username.isEmpty || password.isEmpty || address.isEmpty || contact.isEmpty()) i imamo za dohvaćanje objekta RequestDispatcher koristeći objekt zahtjeva koji će proslijediti zahtjev u register_1.jsp. Ovdje također uključujemo objekte zahtjeva i odgovora.

Redak koda 33-37: Ovaj slučaj će se izvršiti kada bilo koji od parametara nije prazan. Morat ćemo dohvatiti objekt requestDispatcher pomoću objekta zahtjeva koji će proslijediti zahtjev u register_2.jsp. Ovdje prosljeđujemo objekte zahtjeva i odgovora.

Primjer 3: Registar_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>

Objašnjenje koda:

Redak koda 10: Ovdje želimo dobrodošlicu korisniku. Ovaj JSP će biti pozvan kada su svi parametri popunjeni.

Kada izvršite gornji kod, dobit ćete sljedeći izlaz:

Korištenje obrasca za registraciju kroz JSP

Korištenje obrasca za registraciju kroz JSP

Izlaz:

Kada kliknemo na register_1.jsp, dobit ćemo obrazac koji će sadržavati detalje kao što su ime, prezime, korisničko ime, lozinka, adresa, kontakt. Svi detalji su popunjeni. Kada kliknemo na gumb za slanje, dobivamo poruku kao "Dobrodošao korisnik"

Obrazac za prijavu i odjavu

Kao i obrazac za registraciju, imat ćemo obrazac za prijavu i odjavu.

U ovom primjeru uzeli smo obrazac za prijavu gdje imamo dva polja "korisničko ime" i "lozinka" s gumbom za slanje.

Kada kliknemo na gumb za slanje, dobivamo poruku dobrodošlice s gumbom za odjavu.

Kada kliknemo na gumb za odjavu, vraćamo se na obrazac za prijavu.

Primjer 1: Registar_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>

Objašnjenje koda:

Redak koda 10: Ovdje uzimamo naziv obrasca koji ima akciju, tj. servlet kojem je proslijeđen je guru_login.java. Metoda kroz koju će proći svoj POST.

Redak koda 13-16: Ovdje uzimamo polje za unos "korisničko ime" koje je tipa tekst.

Redak koda 17-20: Ovdje uzimamo polje za unos "lozinka" koje je tipa lozinka.

Redak koda 22: Ovdje uzimamo gumb "pošalji" s vrijednošću "Prijava" na koji kliknemo, a zatim ide na servlet guru_login gdje se oba polja uzimaju pomoću objekta zahtjeva.

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

}

Objašnjenje koda:

Redak koda 5-9: Ovdje uvozimo potrebne uvoze u kod.

Redak koda 14: Ovdje uzimamo guru_login servlet koji proširuje HttpServlet.

Redak koda 21: Ovdje koristimo doPost() metodu kao u obrascu koristimo POST metodu.

Redak koda 23-24: Ovdje uzimamo parametre koristeći objekt zahtjeva, tj. korisničko ime i lozinku.

Redak koda 25-29: Na ovaj način, uzimamo "if" uvjet gdje provjeravamo korisničko ime i lozinku jesu li prazni ili ne. U ovom slučaju ako je prazan tada dobivamo objekt requestdispatcher koji prosljeđuje register_3.jsp s objektima zahtjeva i odgovora.

Redak koda 30-34: Ovo će se izvršiti ako oba nisu prazna, tada prosljeđuje zahtjev u register_4.jsp s objektima zahtjeva i odgovora.

Primjer 2: Registar_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>

Objašnjenje koda:

Redak koda 12: Ovdje dobivamo parametar “korisničko ime” iz objekta zahtjeva u korisničkom imenu objekta niza.

Redak koda 13: Ovdje imamo poruku dobrodošlice s korisničkim imenom.

Redak koda 14: Ovdje se povezujemo na obrazac za odjavu koji preusmjerava na register_3.jsp.

Kada izvršite gornji kod, dobit ćete sljedeći izlaz:

Izlaz:

Ovdje kada kliknemo na register_3.jsp dobivamo dva polja "korisničko ime" i "lozinka" s gumbom za prijavu.

Obrazac za prijavu i odjavu

Nakon klika na gumb Prijava dobit ćete donju poruku s gumbom Odjava.

Obrazac za prijavu i odjavu

Kada kliknete na gumb za odjavu, vraćate se na stranicu za prijavu

Obrazac za prijavu i odjavu

Obrada JSP obrasca pomoću getParameter()

Obrada obrasca JSP:

Obrasci su uobičajena metoda u web obradi. Moramo poslati informacije na web poslužitelj i te informacije.

Postoje dvije najčešće korištene metode za slanje i vraćanje informacija na web poslužitelj.

GET metoda:

  • Ovo je zadana metoda za prijenos informacija iz preglednika na web poslužitelj.
  • Šalje kodirane informacije odvojene znakom ? pridodanim URL stranici.
  • Također ima ograničenje veličine i možemo poslati samo 1024 znaka u zahtjevu.
  • Trebali bismo izbjegavati slanje lozinki i osjetljivih informacija metodom GET.

POST metoda:

  • Post metoda je najpouzdanija metoda slanja informacija na poslužitelj.
  • Šalje informacije kao zasebnu poruku.
  • Šalje kao tekstualni niz nakon ?u URL-u.
  • Obično se koristi za slanje osjetljivih informacija.

JSP obrađuje podatke obrasca pomoću sljedećih metoda:

  1. getParameter(): Koristi se za dobivanje vrijednosti parametra obrasca.
  2. getParameterValues(): Koristi se za vraćanje višestrukih vrijednosti parametara.
  3. getParameterNames(): Koristi se za dobivanje imena parametara.
  4. getInputStream(): Koristi se za čitanje binarnih podataka koje šalje klijent.

Primjer:

U ovom primjeru uzeli smo obrazac s dva polja."korisničko ime" i "lozinka" s gumbom za slanje

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šnjenje koda: Action_form.jsp

Redak koda 10: Ovdje smo definirali formu i kroz koju smo radnju prenijeli na neku drugu JSP. U akcijskom parametru dodajemo taj JSP na koji se mora obraditi GET metodom.

Ovdje koristimo GET metodu za prosljeđivanje informacija tj. korisničkog imena i lozinke.

Redak koda 11-14: Ovdje uzimamo polja kao što su korisničko ime i lozinka koja su tekstualna polja, a unos dobivamo od korisnika.

Ovaj unos se može dohvatiti pomoću metode getParameter. Također, imamo gumb za slanje s tipom submit type koji nam pomaže da prenesemo vrijednosti polja u action_form_process.jsp

Action_form_process.jsp

Redak koda 14: Ovdje dobivamo vrijednosti polja za unos iz action_form.jsp pomoću metode getParameter objekta zahtjeva.

Kada izvršimo gornji kod, dobivamo sljedeći izlaz:

Obrada obrasca JSP

Obrada obrasca JSP

Izlaz:

Kada izvršimo action_form.jsp, dobivamo obrazac s dva polja korisničko ime i lozinka i gumb za slanje. Zatim, nakon unosa korisničkog imena i lozinke, možemo kliknuti na pošalji, a on se obrađuje na sljedeću stranicu koja daje izlaz kao stranica za obradu obrasca s poruka dobrodošlice.