JSP programmi näited: registreerimis- ja sisselogimisvorm

jsp näidisprogrammid

Selles õpetuses tutvustan teile JSP-ga näidisprogrammide väljatöötamist ja selles õpetuses MVC arhitektuuri rakendamist.

Arendatakse välja järgmised programminäited:

  • Registreerimisvorm
  • Sisselogimis- ja väljalogimisvorm
  • JSP vorm

Registreerimisvormi kasutamine JSP kaudu

Registreerimisvormis on meil vorm, et täita kõik andmed, mis sisaldavad nime, kasutajanime, parooli, aadressi, kontaktnumbrit jne.

See vorm aitab meil taotlusega registreeruda. Nad võtavad kõik meie andmed ja salvestavad need a andmebaas või vahemälu.

Selles näites võtame "Guru registreerimisvormi", millel on järgmised väljad:

  1. Eesnimi
  2. Perekonnanimi
  3. kasutajanimi
  4. Parool
  5. AADRESS
  6. Võta arv

Pärast kõigi nende andmete täitmist on meil esitamise nupp, sellel nupul klõpsates salvestatakse kõik andmed.

Näide 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>

Koodi selgitus:

Koodirida 11: Siin võtame vormi nime, millel on toiming, st servlet, millele taotlus töödeldakse, ja servleti nimi on guru_register.java. Taotlust töödeldakse POST-meetodil.

Koodirida 14–16: Siin võtame tekstina sisestustüübi ja nimi on eesnimi

Koodirida 18–20: Siin võtame tekstina sisestustüübi ja nimi on perekonnanimi

Koodirida 22–24: Siin võtame tekstina sisestustüübi ja nimi on kasutajanimi

Koodirida 26–28: Siin võtame parooliks sisestustüübi (sisestamisel peidab parooli) ja parooliks nime

Koodirida 30–32: Siin võtame tekstina sisestustüübi ja aadressina nime

Koodirida 34–36: Siin võtame sisestustüübi tekstina ja nime kontaktina

Koodirida 37: Siin kasutame nuppu Esita ja väärtus on ka esita. Sellel nupul klõpsates läheb toiming vastavasse servletisse guru_register, kus päringus edastatakse kõik parameetrite väärtused.

Näide 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);
		}
	}

}

Koodi selgitus:

Koodirida 14: Siin määratleme guru_servleti, mis laiendab HttpServleti.

Koodirida 18: See tegevus doPost() meetod, mida kutsutakse välja, kui mainime ülaltoodud JSP-vormingus tegevuse atribuudis POST.

Koodirida 20–25: Siin hangime väärtused päringust i.esimene_nimi, perekonnanimi , kasutajanimi, parool, aadress ja kontakt, kasutades request.getParameter.

Koodirida 27–32: Siin on tingimus, kus kontrollime mis tahes päringust hangitud parameetrit, kas need on tühjad või mitte. Kui mõni parameeter on tühi, sisestab see selle tingimuse (eesnimi.isEmpty() || perekonnanimi.isEmpty || kasutajanimi.isEmpty || password.isEmpty || address.isEmpty || contact.isEmpty()) ja meil on objekti RequestDispatcher toomiseks, kasutades päringuobjekti, mis edastab päringu aadressile register_1.jsp. Siia lisame ka päringu- ja vastuseobjektid.

Koodirida 33–37: See juhtum käivitatakse, kui mõni parameeter pole tühi. Peame tooma objekti requestDispatcher, kasutades päringuobjekti, mis edastab päringu aadressile register_2.jsp. Siin edastame päringu- ja vastuseobjektid.

Näide 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>

Koodi selgitus:

Koodirida 10: Siin ütleme tere tulemast kasutaja. Seda JSP-d kutsutakse välja, kui kõik parameetrid on täidetud.

Kui käivitate ülaltoodud koodi, saate järgmise väljundi:

Registreerimisvormi kasutamine JSP kaudu

Registreerimisvormi kasutamine JSP kaudu

Väljund:

Kui klõpsame registril register_1.jsp, saame vormi, mis sisaldab selliseid üksikasju nagu eesnimi, perekonnanimi, kasutajanimi, parool, aadress, kontakt. Kõik üksikasjad on täidetud. Kui klõpsame nuppu Esita, saame sõnumi "Tere tulemast kasutaja"

Sisse- ja väljalogimisvorm

Sarnaselt registreerimisvormile on meil sisse- ja väljalogimisvorm.

Selles näites oleme võtnud sisselogimisvormi, kus on kaks välja "kasutajanimi" ja "parool" koos esitamisnupuga.

Kui klõpsame esitamisnupul, saame tervitussõnumi koos väljalogimisnupuga.

Kui klõpsame väljalogimisnupul, jõuame tagasi sisselogimisvormi.

Näide 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>

Koodi selgitus:

Koodirida 10: Siin võtame vormi nime, millel on tegevus, st servlet, millele see on edasi antud, on guru_login.java. Meetod, mille kaudu see POST-i edastab.

Koodirida 13–16: Siin võtame sisestusvälja "kasutajanimi", mis on teksti tüüpi.

Koodirida 17–20: Siin võtame sisestusvälja "parool", mis on parooli tüüpi.

Koodirida 22: Siin kasutame nuppu "Esita" väärtusega "Logi sisse", millel klõpsame, seejärel läheb see servleti guru_login, kus mõlemad väljad võetakse päringuobjekti abil.

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

}

Koodi selgitus:

Koodirida 5–9: Siin impordime koodis vajalikud impordid.

Koodirida 14: Siin võtame servleti guru_login, mis laiendab HttpServleti.

Koodirida 21: Siin me kasutame doPost() meetodil nagu POST-meetodil.

Koodirida 23–24: Siin võtame parameetrid päringuobjekti ehk kasutajanime ja parooli abil.

Koodirida 25–29: Sel viisil võtame tingimuse "kui", kus kontrollime kasutajanime ja parooli, kas need on tühjad või mitte. Kui see on tühi, siis saame objekti requestdispatcher, mis edastab päringu- ja vastuseobjektidega registri_3.jsp-le.

Koodirida 30–34: See käivitatakse, kui mõlemad pole tühjad, siis edastab see päringu registri_4.jsp-le koos päringu ja vastuse objektidega.

Näide 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>

Koodi selgitus:

Koodirida 12: Siin saame parameetri "username" päringuobjektilt stringiobjekti kasutajanimes.

Koodirida 13: Siin on meil tervitussõnum koos kasutajanimega.

Koodirida 14: Siin on link vormist väljalogimiseks, mis suunab aadressile register_3.jsp.

Kui käivitate ülaltoodud koodi, saate järgmise väljundi:

Väljund:

Siin, kui klõpsame registri_3.jsp-l, saame sisselogimisnupuga kaks välja "kasutajanimi" ja "parool".

Sisselogimis- ja väljalogimisvorm

Pärast sisselogimisnupul klõpsamist kuvatakse järgmine teade koos nupuga Logi välja.

Sisselogimis- ja väljalogimisvorm

Kui klõpsate väljalogimisnupul, lähete tagasi sisselogimislehele

Sisselogimis- ja väljalogimisvorm

JSP vormi töötlemine getParameter() abil

JSP vormi töötlemine:

Vormid on veebitöötluses levinud meetod. Peame saatma teabe veebiserverisse ja selle teabe.

Teabe saatmiseks ja veebiserverisse tagasi saamiseks on kaks tavaliselt kasutatavat meetodit.

GET meetod:

  • See on vaikemeetod teabe edastamiseks brauserist veebiserverisse.
  • See saadab kodeeritud teabe eraldatuna URL-i lehele lisatud märgiga.
  • Sellel on ka suurusepiirang ja päringus saame saata ainult 1024 tähemärki.
  • Peaksime vältima parooli ja tundliku teabe saatmist GET-meetodi kaudu.

POST-meetod:

  • Postitusmeetod on kõige usaldusväärsem meetod teabe serverisse saatmiseks.
  • See saadab teabe eraldi sõnumina.
  • See saadab URL-is tekstistringina pärast ?.
  • Seda kasutatakse tavaliselt tundliku teabe saatmiseks.

JSP käsitleb vormiandmete töötlemist järgmiste meetodite abil:

  1. getParameter(): seda kasutatakse vormi parameetri väärtuse saamiseks.
  2. getParameterValues(): seda kasutatakse parameetrite mitme väärtuse tagastamiseks.
  3. getParameterNames(): Seda kasutatakse parameetrite nimede saamiseks.
  4. getInputStream(): Seda kasutatakse kliendi saadetud binaarandmete lugemiseks.

Näide:

Selles näites oleme võtnud kahe väljaga vormi."kasutajanimi" ja "parool" koos esitamisnupuga

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>

Koodi selgitus: Action_form.jsp

Koodirida 10: Siin oleme määratlenud vormi ja mille kaudu saame toimingut mõnele teisele töödelda JSP. Tegevusparameetris lisame selle JSP, millele see tuleb GET-meetodi kaudu töödelda.

Siin kasutame teabe edastamiseks GET meetodit, st kasutajanime ja parooli.

Koodirida 11–14: Siin võtame väljad nagu kasutajanimi ja parool, mis on tekstiväljad, ning saame kasutajalt sisendi.

Seda sisendit saab hankida meetodiga getParameter. Samuti on meil esitamisnupp tüübiga Esita, mis aitab meil edastada välja väärtused faili action_form_process.jsp

Action_form_process.jsp

Koodirida 14: Siin saame failist action_form.jsp sisendväljade väärtused, kasutades päringuobjekti getParameter meetodit.

Kui käivitame ülaltoodud koodi, saame järgmise väljundi:

JSP vormide töötlemine

JSP vormide töötlemine

Väljund:

Kui käivitame action_form.jsp, saame vormi kahe väljaga kasutajanimi ja parool ning saatmisnupu. Seejärel saame pärast kasutajanime ja parooli sisestamist klõpsata käsul Esita ja see liigub järgmisele lehele, mis annab väljundi vormi töötlemise lehena koos tervitussõnum.

Võta see postitus kokku järgmiselt: