Primjeri JSP programa: Obrazac za registraciju i prijavu

jsp primjeri programa

U ovom tutorijalu, provest ฤ‡u vas kroz razvojping primjeri programa s JSP-om i implementacija MVC arhitekture u ovom tutorialu.

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 "Guru "Obrazac za registraciju" 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:

Code Redak 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.

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

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

Code Redak 22-24: Ovdje uzimamo vrstu unosa kao tekst, a ime je korisniฤko ime

Code Redak 26-28: Ovdje uzimamo vrstu unosa kao lozinku (ovo ฤ‡e sakriti lozinku kada se upiลกe) i ime kao lozinku

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

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

Code Redak 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:

Code Redak 14: Ovdje definiramo guru_servlet koji proลกiruje HttpServlet.

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

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

Code Redak 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.

Code Redak 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:

Code Redak 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:

Code Redak 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.

Code Redak 13-16: Ovdje uzimamo polje za unos "korisniฤko ime" koje je tipa tekst.

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

Code Redak 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:

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

Code Redak 14: Ovdje uzimamo guru_login servlet koji proลกiruje HttpServlet.

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

Code Redak 23-24: Ovdje uzimamo parametre koristeฤ‡i objekt zahtjeva, tj. korisniฤko ime i lozinku.

Code Redak 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.

Code Redak 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:

Code Redak 12: Ovdje dobivamo parametar โ€œkorisniฤko imeโ€ iz objekta zahtjeva u korisniฤkom imenu objekta niza.

Code Redak 13: Ovdje imamo poruku dobrodoลกlice s korisniฤkim imenom.

Code Redak 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 ? dodanim na URL stranica.
  • 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 se kao tekstualni niz nakon znaka ? u URL.
  • 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

Code Redak 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.

Code Redak 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

Code Redak 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.

Saลพmite ovu objavu uz: