Примери за JSP програма: Форма за регистрация и вход

jsp примерни програми

В този урок ще ви преведа през процеса на разработванеping примерни програми с JSP и имплементиране на MVC архитектурата в този урок.

Ще бъдат разработени следните примерни програми:

  • Форма за регистрация
  • Форма за влизане и излизане
  • JSP формуляр

Използване на регистрационна форма чрез JSP

Във формуляра за регистрация ще имаме формуляр за попълване на всички подробности, които ще съдържат име, потребителско име, парола, адрес, номер за контакт и т.н.

Този формуляр ще ни помогне да се регистрираме в приложението. Те вземат всички наши данни и ги съхраняват в a база данни или кеш.

В този пример ще вземем „Guru „Регистрационна форма“, която съдържа следните полета:

  1. Име
  2. Фамилия
  3. Потребител
  4. Парола
  5. Адрес
  6. Номер за контакт

След попълване на всички тези данни имаме бутон за изпращане, при щракване върху този бутон всички подробности ще бъдат съхранени.

Пример 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>

Обяснение на кода:

Code Ред 11: Тук вземаме име на формуляр, което има действие, т.е. сървлетът, към който ще бъде обработена заявката, а името на сервлета е guru_register.java. Заявката ще бъде обработена чрез POST метод.

Code Ред 14-16: Тук приемаме типа на въвеждане като текст, а името е първо име

Code Ред 18-20: Тук приемаме типа на въвеждане като текст, а името е фамилното име

Code Ред 22-24: Тук приемаме типа на въвеждане като текст, а името е потребителско име

Code Ред 26-28: Тук приемаме типа на въвеждане като парола (това ще скрие паролата при въвеждане) и име като парола

Code Ред 30-32: Тук приемаме типа на въвеждане като текст и името като адрес

Code Ред 34-36: Тук приемаме типа на въвеждане като текст и името като контакт

Code Ред 37: Тук вземаме бутон от типа submit и стойност също е submit. При щракване върху този бутон действието ще премине към съответния сервлет guru_register, където всички стойности на параметрите ще бъдат предадени в заявката.

Пример 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);
		}
	}

}

Обяснение на кода:

Code Ред 14: Тук дефинираме guru_servlet, който разширява HttpServlet.

Code Ред 18: Това действие doPost() метод, който ще бъде извикан, когато споменем атрибута POST в действие в горния JSP формуляр.

Code Ред 20-25: Тук извличаме стойностите от заявка i.efirst_name, last_name, потребителско име, парола, адрес и контакт с помощта на request.getParameter.

Code Ред 27-32: Тук вземаме условие if, при което проверяваме някой от параметрите, които се извличат от заявка, дали са празни или не. Ако някой от параметъра е празен, той ще влезе в това условие ( first_name.isEmpty() || last_name.isEmpty || username.isEmpty || password.isEmpty || address.isEmpty || contact.isEmpty()) и имаме за извличане на обект RequestDispatcher с помощта на обект на заявка, който ще препрати заявката към register_1.jsp. Тук също включваме обекти за заявка и отговор.

Code Ред 33-37: Този случай ще се изпълни, когато някой от параметърите не е празен. Ще трябва да извлечем обект на requestDispatcher, като използваме обект на заявка, който ще препрати заявката към register_2.jsp. Тук препращаме обекти на заявка и отговор.

Пример 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>

Обяснение на кода:

Code Ред 10: Тук казваме добре дошъл потребител. Този JSP ще бъде извикан, когато всички параметри са попълнени.

Когато изпълните горния код, получавате следния изход:

Използване на регистрационен формуляр чрез JSP

Използване на регистрационен формуляр чрез JSP

Изход:

Когато щракнем върху register_1.jsp, ще получим формуляр, който ще съдържа подробности като собствено име, фамилия, потребителско име, парола, адрес, контакт. Всички подробности са попълнени. Когато щракнем върху бутона за изпращане, получаваме съобщение като „Добре дошъл потребител“

Форма за влизане и излизане

Подобно на формата за регистрация, ние ще имаме форма за влизане и излизане.

В този пример сме взели формуляр за влизане, където имаме две полета „потребителско име“ и „парола“ с бутон за изпращане.

Когато щракнем върху бутона за изпращане, получаваме поздравително съобщение с бутон за излизане.

Когато щракнем върху бутона за излизане, се връщаме към формата за вход.

Пример 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>

Обяснение на кода:

Code Ред 10: Тук вземаме име на форма, което има действие, т.е. сървлетът, към който е преминал, е guru_login.java. Методът, през който ще премине своя POST.

Code Ред 13-16: Тук вземаме поле за въвеждане „потребителско име“, което е от типа текст.

Code Ред 17-20: Тук вземаме поле за въвеждане „парола“, което е от типа парола.

Code Ред 22: Тук вземаме бутон „изпращане“ със стойност „Влизане“, върху който щракваме, след което отива към сервлета guru_login, където и двете полета се вземат с помощта на обект на заявка.

Guru_login.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_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);
		}
	}

}

Обяснение на кода:

Code Ред 5-9: Тук импортираме необходимите импортирания в кода.

Code Ред 14: Тук вземаме сервлета guru_login, който разширява HttpServlet.

Code Ред 21: Тук използваме doPost() метод, както във формата използваме POST метод.

Code Ред 23-24: Тук вземаме параметри, използвайки обект на заявка, т.е. потребителско име и парола.

Code Ред 25-29: По този начин приемаме условие „if“, при което проверяваме потребителското име и паролата дали са празни или не. В този случай, ако е празно, тогава получаваме обект requestdispatcher, който препраща към register_3.jsp с обекти за заявка и отговор.

Code Ред 30-34: Това ще бъде изпълнено, ако и двете не са празни, тогава препраща заявката към register_4.jsp с обекти за заявка и отговор.

Пример 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>

Обяснение на кода:

Code Ред 12: Тук получаваме параметър „потребителско име“ от обекта на заявката в потребителското име на низовия обект.

Code Ред 13: Тук имаме приветствено съобщение с потребителското име.

Code Ред 14: Тук имаме връзка за излизане от формуляра, който пренасочва към register_3.jsp.

Когато изпълните горния код, получавате следния изход:

Изход:

Тук, когато щракнем върху register_3.jsp, получаваме две полета „потребителско име“ и „парола“ с бутон за влизане.

Форма за влизане и излизане

След като щракнете върху бутона за влизане, ще получите съобщението по-долу с бутон за излизане.

Форма за влизане и излизане

Когато щракнете върху бутона за излизане, се връщате на страницата за вход

Форма за влизане и излизане

Обработка на JSP формуляр с помощта на getParameter()

Обработка на JSP формуляр:

Формулярите са често срещаният метод в уеб обработката. Трябва да изпратим информация до уеб сървъра и тази информация.

Има два често използвани метода за изпращане и връщане на информация към уеб сървъра.

Метод GET:

  • Това е методът по подразбиране за предаване на информация от браузър към уеб сървър.
  • Изпраща кодираната информация, разделена от символа ?, добавен към URL стр.
  • Освен това има ограничение на размера и можем да изпратим само 1024 знака в заявката.
  • Трябва да избягваме изпращането на парола и чувствителна информация чрез метода GET.

Метод POST:

  • Методът на публикуване е най-надеждният метод за изпращане на информация до сървъра.
  • Той изпраща информация като отделно съобщение.
  • Изпраща се като текстов низ след ?в URL.
  • Обикновено се използва за изпращане на информация, която е чувствителна.

JSP обработва обработката на данни от формуляри, като използва следните методи:

  1. getParameter(): Използва се за получаване на стойността на параметъра на формуляра.
  2. getParameterValues(): Използва се за връщане на множеството стойности на параметрите.
  3. getParameterNames(): Използва се за получаване на имената на параметрите.
  4. getInputStream(): Използва се за четене на двоичните данни, изпратени от клиента.

Пример:

В този пример сме взели формуляр с две полета. "потребителско име" и "парола" с бутон за изпращане

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>

Обяснение на кода: Action_form.jsp

Code Ред 10: Тук сме дефинирали форма и чрез която сме преработили действието към друго JSP. В параметъра за действие добавяме този JSP, към който трябва да бъде обработен чрез GET метод.

Тук използваме метода GET за предаване на информацията, т.е. потребителско име и парола.

Code Ред 11-14: Тук вземаме полета като потребителско име и парола, които са текстови полета, и получаваме въведените данни от потребителя.

Този вход може да бъде извлечен чрез метода getParameter. Освен това имаме бутон за изпращане с тип submit type, който ни помага да предадем стойностите на полето в action_form_process.jsp

Action_form_process.jsp

Code Ред 14: Тук получаваме стойностите на полетата за въвеждане от action_form.jsp, използвайки метода getParameter на обекта на заявката.

Когато изпълним горния код, получаваме следния изход:

Обработка на JSP формуляр

Обработка на JSP формуляр

Изход:

Когато изпълним action_form.jsp, получаваме формуляр с две полета потребителско име и парола и бутон за изпращане. След това, след като въведем потребителско име и парола, можем да щракнем върху изпращане и той обработва следващата страница, която дава резултат като страница за обработка на формуляр с приветствено съобщение.

Обобщете тази публикация с: