JSP-programexempel: Registrerings- och inloggningsformulär

jsp exempelprogram

I den här handledningen kommer jag att guida dig genom utvecklingenping exempelprogram med JSP och implementering av MVC-arkitekturen i den här handledningen.

Följande programexempel kommer att utvecklas:

  • ANMÄLNINGSBLANKETT
  • Inloggnings- och utloggningsformulär
  • JSP-formulär

Använd registreringsformuläret via JSP

I registreringsformuläret kommer vi att ha ett formulär för att fylla i alla detaljer som kommer att innehålla namn, användarnamn, lösenord, adress, kontaktnummer, etc.

Detta formulär hjälper oss att registrera oss med ansökan. De tar alla våra detaljer och lagrar dem i en databas eller cache.

I det här exemplet ska vi ta "Guru "Anmälningsblankett" som har följande fält:

  1. Förnamn
  2. Efternamn
  3. Användarnamn
  4. Lösenord
  5. Adress
  6. Kontaktnummer

Efter att ha fyllt i alla dessa detaljer har vi skicka-knappen, om du klickar på den knappen kommer alla detaljer att lagras.

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

Förklaring av koden:

Code Linje 11: Här tar vi ett formulärnamn som har åtgärd, dvs servleten som begäran kommer att behandlas till och servletnamnet är guru_register.java. Förfrågan kommer att behandlas med POST-metoden.

Code Rad 14-16: Här tar vi indatatyp som text och namn är förnamn

Code Rad 18-20: Här tar vi indatatyp som text och namn är efternamn

Code Rad 22-24: Här tar vi ingångstyp som text och namn är användarnamn

Code Rad 26-28: Här tar vi ingångstyp som lösenord (detta kommer att dölja lösenordet när det skrivs) och namn som lösenord

Code Rad 30-32: Här tar vi indatatyp som text och namn som adress

Code Rad 34-36: Här tar vi ingångstyp som text och namn som kontakt

Code Linje 37: Här tar vi en knapp av typen submit och värde är också submit. När du klickar på den här knappen kommer åtgärden att gå till motsvarande guru_register-servlet där alla parametervärden kommer att skickas i begäran.

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

}

Förklaring av koden:

Code Linje 14: Här definierar vi guru_servlet som utökar HttpServlet.

Code Linje 18: Denna åtgärd doPost() metod som kommer att anropas när vi nämner POST in action-attributet i ovanstående JSP-formulär.

Code Rad 20-25: Här hämtar vi värdena från request i.efirst_name, last_name , användarnamn, lösenord, adress och kontakt med request.getParameter.

Code Rad 27-32: Här tar vi om tillstånd där vi kontrollerar någon av parametrarna som hämtas från begäran som om de är tomma eller inte. Om någon av parametrarna är tom kommer den att ange detta villkor ( first_name.isEmpty() || last_name.isEmpty || username.isEmpty || password.isEmpty || address.isEmpty || contact.isEmpty()) och vi har för att hämta RequestDispatcher-objekt med hjälp av request-objekt som vidarebefordrar begäran till register_1.jsp. Här inkluderar vi även förfrågnings- och svarsobjekt.

Code Rad 33-37: Det här fallet kommer att köras när någon av parametrarna inte är tomma. Vi måste hämta requestDispatcher-objektet med request-objektet som vidarebefordrar begäran till register_2.jsp.Här vidarebefordrar vi begäran- och svarsobjekt.

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

Förklaring av koden:

Code Linje 10: Här säger vi välkommen användare. Denna JSP kommer att anropas när alla parametrar är ifyllda.

När du kör ovanstående kod får du följande utdata:

Använd registreringsformuläret via JSP

Använd registreringsformuläret via JSP

Produktion:

När vi klickar på register_1.jsp får vi ett formulär som innehåller detaljer som förnamn, efternamn, användarnamn, lösenord, adress, kontakt. Alla detaljer har fyllts i. När vi klickar på skicka-knappen får vi meddelandet som "Välkommen användare"

Inloggnings- och utloggningsformulär

Liksom registreringsformuläret kommer vi att ha ett inloggnings- och utloggningsformulär.

I det här exemplet har vi tagit inloggningsformuläret där vi har två fält "användarnamn" och "lösenord" med en skicka-knapp.

När vi klickar på skicka-knappen får vi ett välkomstmeddelande med en utloggningsknapp.

När vi klickar på utloggningsknappen kommer vi tillbaka till inloggningsformuläret.

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

Förklaring av koden:

Code Linje 10: Här tar vi ett formulärnamn som har åtgärd, dvs servlet som det har passerat till är guru_login.java. Metoden genom vilken den kommer att skicka sin POST.

Code Rad 13-16: Här tar vi ett inmatningsfält "användarnamn" som är av typen text.

Code Rad 17-20: Här tar vi ett inmatningsfält "lösenord" som är av typen lösenord.

Code Linje 22: Här tar vi en "skicka"-knapp med värdet "Logga in" som vi klickar på och sedan går den till servlet guru_login där båda fälten tas med request object.

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

}

Förklaring av koden:

Code Rad 5-9: Här importerar vi nödvändiga importer i koden.

Code Linje 14: Här tar vi guru_login servlet som utökar HttpServlet.

Code Linje 21: Här använder vi doPost() metod som i den form vi använder POST-metoden.

Code Rad 23-24: Här tar vi parametrar med hjälp av begäranobjekt, dvs användarnamn och lösenord.

Code Rad 25-29: På det här sättet tar vi "if"-tillstånd där vi kontrollerar användarnamn och lösenord om de är tomma eller inte. Om det är tomt får vi requestdispatcher-objekt som vidarebefordrar till register_3.jsp med begäran och svarsobjekt.

Code Rad 30-34: Detta kommer att exekveras om båda inte är tomma, sedan vidarebefordras begäran till register_4.jsp med begäran och svarsobjekt.

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

Förklaring av koden:

Code Linje 12: Här får vi parametern "användarnamn" från begäranobjektet i strängobjektets användarnamn.

Code Linje 13: Här har vi ett välkomstmeddelande med användarnamnet.

Code Linje 14: Här länkar vi för att logga ut formuläret som omdirigerar till register_3.jsp.

När du kör ovanstående kod får du följande utdata:

Produktion:

Här när vi klickar på register_3.jsp får vi två fält ”användarnamn” och ”lösenord” med en inloggningsknapp.

Inloggnings- och utloggningsformulär

Efter att ha klickat på knappen Logga in får du meddelandet nedan med knappen Logga ut.

Inloggnings- och utloggningsformulär

När du klickar på utloggningsknappen går du tillbaka till inloggningssidan

Inloggnings- och utloggningsformulär

JSP-formulärbearbetning med getParameter()

JSP-formulärbearbetning:

Blanketter är den vanliga metoden inom webbbehandling. Vi måste skicka information till webbservern och den informationen.

Det finns två vanliga metoder för att skicka och få tillbaka information till webbservern.

GET-metod:

  • Detta är standardmetoden för att skicka information från webbläsare till webbserver.
  • Den skickar den kodade informationen separerad med ?tecknet tillagt till URL sida.
  • Den har också en storleksbegränsning och vi kan bara skicka 1024 tecken i förfrågan.
  • Vi bör undvika att skicka lösenord och känslig information via GET-metoden.

POST-metod:

  • Postmetoden är den mest pålitliga metoden för att skicka information till servern.
  • Den skickar information som ett separat meddelande.
  • Den skickar som en textsträng efter ?i URL.
  • Det används ofta för att skicka information som är känslig.

JSP hanterar formulärdatabehandling genom att använda följande metoder:

  1. getParameter(): Den används för att få värdet på formparametern.
  2. getParameterValues(): Den används för att returnera flera parametrars värden.
  3. getParameterNames(): Den används för att få namn på parametrar.
  4. getInputStream(): Den används för att läsa binära data som skickas av klienten.

Exempel:

I det här exemplet har vi tagit ett formulär med två fält."användarnamn" och "lösenord" med en skicka-knapp

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>

Förklaring av koden: Action_form.jsp

Code Linje 10: Här har vi definierat en form och genom vilken vi har bearbetat handlingen till någon annan JSP. I handlingsparameter lägger vi till den JSP till vilken den måste bearbetas genom GET-metoden.

Här använder vi GET-metoden för att skicka informationen, dvs användarnamn och lösenord.

Code Rad 11-14: Här tar vi fält som användarnamn och lösenord som är textfält, och vi får input från användaren.

Denna indata kan hämtas med metoden getParameter. Vi har också skicka-knapp med typ submit-typ som hjälper oss att skicka fältvärdena till action_form_process.jsp

Action_form_process.jsp

Code Linje 14: Här får vi värdena för inmatningsfälten från action_form.jsp med hjälp av begäranobjektets getParameter-metod.

När vi kör ovanstående kod får vi följande utdata:

JSP-formulärbearbetning

JSP-formulärbearbetning

Produktion:

När vi kör action_form.jsp får vi ett formulär med två fält användarnamn och lösenord och en skicka-knapp. Sedan efter att ha angett användarnamn och lösenord kan vi klicka på skicka, och det bearbetas till nästa sida som ger utdata som formulärbearbetningssida med en välkomstmeddelande.

Sammanfatta detta inlägg med: