Beispiele für JSP-Programme: Registrierungs- und Anmeldeformular
In diesem Tutorial führe ich Sie durch die Entwicklung von Beispielprogrammen mit JSP und die Implementierung der MVC-Architektur.
Folgende Programmbeispiele werden entwickelt:
- Anmeldeformular
- Anmelde- und Abmeldeformular
- JSP-Formular
Verwendung des Registrierungsformulars über JSP
Im Registrierungsformular haben wir ein Formular, in das Sie alle Details eintragen können, darunter Name, Benutzername, Passwort, Adresse, Kontaktnummer usw.
Dieses Formular hilft uns bei der Registrierung bei der Anwendung. Sie nehmen alle unsere Daten auf und speichern sie in einem Datenbank oder Cache.
In diesem Beispiel verwenden wir das „Guru-Registrierungsformular“, das die folgenden Felder enthält:
- Vorname
- Nachname
- Benutzername
- Passwort
- Adresse
- Telefonnummer
Nachdem Sie alle diese Angaben eingegeben haben, wird eine Schaltfläche „Senden“ angezeigt. Wenn Sie auf diese Schaltfläche klicken, werden alle Angaben gespeichert.
Beispiel 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>
Erklärung des Codes:
Codezeile 11: Hier nehmen wir einen Formularnamen, der eine Aktion hat, dh das Servlet, an das die Anfrage verarbeitet wird, und der Servletname ist guru_register.java. Die Anfrage wird über die POST-Methode verarbeitet.
Codezeile 14-16: Hier verwenden wir als Eingabetyp „Text“ und „Name“ ist der Vorname
Codezeile 18-20: Hier verwenden wir als Eingabetyp „Text“ und „Name“ ist der Nachname
Codezeile 22-24: Hier verwenden wir den Eingabetyp als Text und den Namen als Benutzernamen
Codezeile 26-28: Hier verwenden wir den Eingabetyp als Passwort (dadurch wird das Passwort bei der Eingabe ausgeblendet) und den Namen als Passwort
Codezeile 30-32: Hier verwenden wir als Eingabetyp den Text und den Namen als Adresse
Codezeile 34-36: Hier verwenden wir als Eingabetyp den Text und den Namen als Kontakt
Codezeile 37: Hier nehmen wir eine Schaltfläche vom Typ „Senden“ und der Wert ist ebenfalls „Senden“. Wenn Sie auf diese Schaltfläche klicken, wird die Aktion zum entsprechenden guru_register-Servlet weitergeleitet, wo alle Parameterwerte in der Anfrage übergeben werden.
Beispiel 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); } } }
Erklärung des Codes:
Codezeile 14: Hier definieren wir guru_servlet, das HttpServlet erweitert.
Codezeile 18: Diese Aktion doPost()
Methode, die aufgerufen wird, wenn wir POST im Aktionsattribut im obigen JSP-Formular erwähnen.
Codezeile 20-25: Hier rufen wir die Werte aus der Anfrage i.efirst_name, last_name , Benutzername, Passwort, Adresse und Kontakt mit request.getParameter ab.
Codezeile 27-32: Hier verwenden wir eine if-Bedingung, bei der wir alle von der Anfrage abgerufenen Parameter daraufhin überprüfen, ob sie leer sind oder nicht. Wenn einer der Parameter leer ist, tritt dieser Zustand ein ( Vorname.isEmpty() || Nachname.isEmpty || Benutzername.isEmpty || Passwort.isEmpty || Adresse.isEmpty || Kontakt.isEmpty()) und wir haben um das RequestDispatcher-Objekt mithilfe des Anforderungsobjekts abzurufen, das die Anforderung an register_1.jsp weiterleitet. Hier beziehen wir auch Anforderungs- und Antwortobjekte ein.
Codezeile 33-37: Dieser Fall wird ausgeführt, wenn einer der Parameter nicht leer ist. Wir müssen das requestDispatcher-Objekt mithilfe des Anforderungsobjekts abrufen, das die Anforderung an register_2.jsp weiterleitet. Hier leiten wir Anforderungs- und Antwortobjekte weiter.
Beispiel 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>
Erklärung des Codes:
Codezeile 10: Hier heißen wir willkommener Benutzer. Diese JSP wird aufgerufen, wenn alle Parameter gefüllt sind.
Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe:
Ausgang:
Wenn wir auf register_1.jsp klicken, erhalten wir ein Formular mit Angaben wie Vorname, Nachname, Benutzername, Passwort, Adresse und Kontakt. Alle Angaben wurden ausgefüllt. Wenn wir auf die Schaltfläche „Senden“ klicken, erhalten wir die Meldung „Willkommen, Benutzer“.
Anmelde- und Abmeldeformular
Wie beim Registrierungsformular verfügen wir auch über ein Anmelde- und Abmeldeformular.
In diesem Beispiel haben wir ein Anmeldeformular verwendet, in dem wir zwei Felder „Benutzername“ und „Passwort“ mit einer Schaltfläche zum Senden haben.
Wenn wir auf die Schaltfläche „Senden“ klicken, erhalten wir eine Willkommensnachricht mit einer Schaltfläche zum Abmelden.
Wenn wir auf die Schaltfläche „Abmelden“ klicken, kehren wir zum Anmeldeformular zurück.
Beispiel 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>
Erklärung des Codes:
Codezeile 10: Hier nehmen wir einen Formularnamen, der eine Aktion hat, dh das Servlet, an das es übergeben wurde, ist guru_login.java. Die Methode, über die der POST weitergeleitet wird.
Codezeile 13-16: Hier nehmen wir ein Eingabefeld „Benutzername“, das vom Typ Text ist.
Codezeile 17-20: Hier nehmen wir ein Eingabefeld „Passwort“, das vom Typ Passwort ist.
Codezeile 22: Hier nehmen wir eine „Senden“-Schaltfläche mit dem Wert „Anmelden“, auf die wir klicken, dann geht es zum Servlet guru_login, wo beide Felder mithilfe des Anforderungsobjekts übernommen werden.
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); } } }
Erklärung des Codes:
Codezeile 5-9: Hier importieren wir notwendige Importe in den Code.
Codezeile 14: Hier nehmen wir das Servlet guru_login, das HttpServlet erweitert.
Codezeile 21: Hier verwenden wir doPost()
Methode, da wir im Formular die POST-Methode verwenden.
Codezeile 23-24: Hier verwenden wir Parameter mithilfe des Anforderungsobjekts, z. B. Benutzername und Passwort.
Codezeile 25-29: Auf diese Weise verwenden wir die „Wenn“-Bedingung, bei der wir den Benutzernamen und das Passwort prüfen, ob sie leer sind oder nicht. In diesem Fall erhalten wir, wenn sie leer sind, das Objekt „requestdispatcher“, das mit Anforderungs- und Antwortobjekten an register_3.jsp weiterleitet.
Codezeile 30-34: Dies wird ausgeführt, wenn beide nicht leer sind, und leitet dann die Anforderung mit Anforderungs- und Antwortobjekten an register_4.jsp weiter.
Beispiel 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>
Erklärung des Codes:
Codezeile 12: Hier erhalten wir den Parameter „Benutzername“ vom Anforderungsobjekt im String-Objekt Benutzername.
Codezeile 13: Hier haben wir eine Willkommensnachricht mit dem Benutzernamen.
Codezeile 14: Hier verlinken wir zum Abmelden des Formulars, das zu register_3.jsp weiterleitet.
Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe:
Ausgang:
Wenn wir hier auf register_3.jsp klicken, erhalten wir zwei Felder „Benutzername“ und „Passwort“ mit einer Anmeldeschaltfläche.
Nachdem Sie auf die Schaltfläche „Anmelden“ geklickt haben, wird die folgende Meldung mit der Schaltfläche „Abmelden“ angezeigt.
Wenn Sie auf die Schaltfläche „Abmelden“ klicken, kehren Sie zur Anmeldeseite zurück
JSP-Formularverarbeitung mit getParameter()
JSP-Formularverarbeitung:
Formulare sind die gängige Methode in der Webverarbeitung. Wir müssen Informationen an den Webserver senden und diese Informationen.
Es gibt zwei häufig verwendete Methoden zum Senden und Zurückholen von Informationen an den Webserver.
GET-Methode:
- Dies ist die Standardmethode zur Weitergabe von Informationen vom Browser an den Webserver.
- Es sendet die verschlüsselten Informationen, getrennt durch ein ?-Zeichen, angehängt an die URL-Seite.
- Außerdem gibt es eine Größenbeschränkung und wir können in der Anfrage nur 1024 Zeichen senden.
- Wir sollten es vermeiden, Passwörter und vertrauliche Informationen über die GET-Methode zu senden.
POST-Methode:
- Die Post-Methode ist eine äußerst zuverlässige Methode zum Senden von Informationen an den Server.
- Es sendet Informationen als separate Nachricht.
- Es wird als Textzeichenfolge nach ? in der URL gesendet.
- Es wird häufig zum Versenden vertraulicher Informationen verwendet.
JSP verarbeitet Formulardaten mithilfe der folgenden Methoden:
getParameter()
: Wird verwendet, um den Wert des Formularparameters zu erhalten.getParameterValues()
: Wird verwendet, um mehrere Werte der Parameter zurückzugeben.getParameterNames()
: Wird verwendet, um die Namen der Parameter abzurufen.getInputStream()
: Wird zum Lesen der vom Client gesendeten Binärdaten verwendet.
Ejemplo:
In diesem Beispiel haben wir ein Formular mit zwei Feldern „Benutzername“ und „Passwort“ mit einer Schaltfläche zum Senden verwendet
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>
Erklärung des Codes: Action_form.jsp
Codezeile 10: Hier haben wir ein Formular definiert und über das wir die Aktion an ein anderes weiterleiten können JSP. Im Aktionsparameter fügen wir die JSP hinzu, zu der sie über die GET-Methode verarbeitet werden muss.
Hier verwenden wir die GET-Methode, um die Informationen, also Benutzername und Passwort, zu übergeben.
Codezeile 11-14: Hier verwenden wir Felder wie Benutzername und Passwort, bei denen es sich um Textfelder handelt, und erhalten die Eingaben vom Benutzer.
Diese Eingabe kann mit der getParameter-Methode abgerufen werden. Außerdem haben wir eine Schaltfläche zum Senden mit dem Typ „submit type“, die uns dabei hilft, die Feldwerte an action_form_process.jsp zu übergeben
Action_form_process.jsp
Codezeile 14: Hier erhalten wir die Werte der Eingabefelder von action_form.jsp mithilfe der getParameter-Methode des Anforderungsobjekts.
Wenn wir den obigen Code ausführen, erhalten wir die folgende Ausgabe:
Ausgang:
Wenn wir action_form.jsp ausführen, erhalten wir ein Formular mit zwei Feldern, Benutzername und Passwort, und einer Schaltfläche zum Senden. Nachdem wir Benutzername und Passwort eingegeben haben, können wir auf „Senden“ klicken und es wird zur nächsten Seite weitergeleitet, die eine Ausgabe als Formularverarbeitungsseite mit einem gibt Willkommensnachricht.