जेएसपी कार्यक्रम उदाहरण: पंजीकरण और लॉगिन फॉर्म

जेएसपी उदाहरण कार्यक्रम

इस ट्यूटोरियल में, मैं आपको JSP के साथ नमूना प्रोग्राम विकसित करने और MVC आर्किटेक्चर को लागू करने के बारे में बताऊंगा।

निम्नलिखित कार्यक्रम उदाहरण विकसित किए जाएंगे:

  • पंजीकरण फार्म
  • लॉगिन और लॉगआउट फॉर्म
  • जेएसपी फॉर्म

जेएसपी के माध्यम से पंजीकरण फॉर्म का उपयोग करना

पंजीकरण फॉर्म में, हमें सभी विवरण भरने होंगे जिनमें नाम, उपयोगकर्ता नाम, पासवर्ड, पता, संपर्क नंबर आदि शामिल होंगे।

यह फॉर्म हमें एप्लीकेशन के साथ रजिस्टर करने में मदद करेगा। वे हमारी सारी जानकारी लेते हैं और उसे एक फाइल में स्टोर कर देते हैं। डेटाबेस या कैश.

इस उदाहरण में, हम “गुरु पंजीकरण फॉर्म” लेंगे जिसमें निम्नलिखित फ़ील्ड हैं:

  1. प्रथम नाम
  2. उपनाम
  3. उपयोगकर्ता नाम
  4. पासवर्ड
  5. पता
  6. संपर्क नंबर

इन सभी विवरणों को भरने के बाद हमारे पास सबमिट बटन है, उस बटन पर क्लिक करते ही सभी विवरण संग्रहीत हो जाएंगे।

उदाहरण 1: रजिस्टर_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>

कोड का स्पष्टीकरण:

कोड लाइन 11: यहाँ हम एक फॉर्म नाम ले रहे हैं जिसमें एक्शन है यानी वह सर्वलेट जिस पर अनुरोध संसाधित किया जाएगा और सर्वलेट का नाम guru_register.java है। अनुरोध को POST विधि के माध्यम से संसाधित किया जाएगा।

कोड लाइन 14-16: यहां हम इनपुट प्रकार को टेक्स्ट के रूप में ले रहे हैं और नाम को प्रथम नाम के रूप में ले रहे हैं

कोड लाइन 18-20: यहां हम इनपुट प्रकार को टेक्स्ट के रूप में ले रहे हैं और नाम को अंतिम नाम के रूप में ले रहे हैं

कोड लाइन 22-24: यहां हम इनपुट प्रकार को टेक्स्ट के रूप में ले रहे हैं और नाम उपयोगकर्ता नाम है

कोड लाइन 26-28: यहां हम इनपुट प्रकार को पासवर्ड के रूप में ले रहे हैं (यह टाइप करते समय पासवर्ड को छिपा देगा) और नाम को पासवर्ड के रूप में ले रहे हैं

कोड लाइन 30-32: यहां हम इनपुट प्रकार को टेक्स्ट और नाम को पते के रूप में ले रहे हैं

कोड लाइन 34-36: यहां हम इनपुट प्रकार को टेक्स्ट और नाम को संपर्क के रूप में ले रहे हैं

कोड लाइन 37: यहाँ हम सबमिट प्रकार का बटन ले रहे हैं और मान भी सबमिट है। इस बटन पर क्लिक करने पर कार्रवाई संबंधित गुरु_रजिस्टर सर्वलेट पर जाएगी जहाँ सभी पैरामीटर मान अनुरोध में पास किए जाएँगे।

उदाहरण 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);
		}
	}

}

कोड का स्पष्टीकरण:

कोड लाइन 14: यहां हम guru_servlet को परिभाषित कर रहे हैं जो HttpServlet का विस्तार कर रहा है।

कोड लाइन 18: यह क्रिया doPost() विधि जिसे तब कॉल किया जाएगा जब हम उपरोक्त JSP फॉर्म में एक्शन विशेषता में POST का उल्लेख करेंगे।

कोड लाइन 20-25: यहां हम request.getParameter का उपयोग करके अनुरोध से मान प्राप्त कर रहे हैं, अर्थात पहला नाम, अंतिम नाम, उपयोगकर्ता नाम, पासवर्ड, पता और संपर्क।

कोड लाइन 27-32: यहाँ हम if कंडीशन ले रहे हैं जहाँ हम रिक्वेस्ट से प्राप्त किए गए किसी भी पैरामीटर को चेक करते हैं कि वे खाली हैं या नहीं। यदि कोई भी पैरामीटर खाली है तो यह इस कंडीशन में प्रवेश करेगा (first_name.isEmpty() || last_name.isEmpty || username.isEmpty || password.isEmpty || address.isEmpty || contact.isEmpty()) और हमें रिक्वेस्ट ऑब्जेक्ट का उपयोग करके RequestDispatcher ऑब्जेक्ट को प्राप्त करना है जो रिक्वेस्ट को register_1.jsp पर अग्रेषित करेगा। यहाँ हम रिक्वेस्ट और रिस्पॉन्स ऑब्जेक्ट भी शामिल कर रहे हैं।

कोड लाइन 33-37: यह केस तब निष्पादित होगा जब कोई भी पैरामीटर रिक्त नहीं होगा। हमें request ऑब्जेक्ट का उपयोग करके requestDispatcher ऑब्जेक्ट प्राप्त करना होगा जो अनुरोध को register_2.jsp पर अग्रेषित करेगा। यहां हम अनुरोध और प्रतिक्रिया ऑब्जेक्ट को अग्रेषित कर रहे हैं।

उदाहरण 3: रजिस्टर_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>

कोड का स्पष्टीकरण:

कोड लाइन 10: यहाँ हम कह रहे हैं स्वागत है यूजर। यह JSP तब कॉल किया जाएगा जब सभी पैरामीटर भर दिए जाएँगे।

जब आप उपरोक्त कोड निष्पादित करते हैं, तो आपको निम्नलिखित आउटपुट मिलता है:

जेएसपी के माध्यम से पंजीकरण फॉर्म का उपयोग करना

जेएसपी के माध्यम से पंजीकरण फॉर्म का उपयोग करना

आउटपुट:

जब हम register_1.jsp पर क्लिक करेंगे, तो हमें एक फॉर्म मिलेगा जिसमें पहला नाम, अंतिम नाम, उपयोगकर्ता नाम, पासवर्ड, पता, संपर्क जैसे विवरण होंगे। सभी विवरण भरे गए हैं। जब हम सबमिट बटन पर क्लिक करते हैं तो हमें "वेलकम यूजर" जैसा संदेश मिलता है

लॉगिन और लॉगआउट फॉर्म

पंजीकरण फॉर्म की तरह हमारे पास लॉगिन और लॉगआउट फॉर्म भी होगा।

इस उदाहरण में, हमने लॉगिन फॉर्म लिया है, जहां हमारे पास सबमिट बटन के साथ दो फ़ील्ड “यूजरनेम” और “पासवर्ड” हैं।

जब हम सबमिट बटन पर क्लिक करते हैं तो हमें लॉगआउट बटन के साथ स्वागत संदेश मिलता है।

जब हम लॉगआउट बटन पर क्लिक करते हैं तो हम लॉगिन फॉर्म पर वापस आ जाते हैं।

उदाहरण 1: रजिस्टर_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>

कोड का स्पष्टीकरण:

कोड लाइन 10: यहाँ हम एक फॉर्म नाम ले रहे हैं जिसमें एक्शन है यानी जिस सर्वलेट को यह पास किया गया है वह guru_login.java है। वह विधि जिसके माध्यम से यह अपना POST पास करेगा।

कोड लाइन 13-16: यहां हम एक इनपुट फ़ील्ड “यूजरनेम” ले रहे हैं जो टेक्स्ट प्रकार का है।

कोड लाइन 17-20: यहां हम एक इनपुट फ़ील्ड “पासवर्ड” ले रहे हैं जो पासवर्ड प्रकार का है।

कोड लाइन 22: यहां हम "लॉगिन" मान के साथ एक "सबमिट" बटन ले रहे हैं, जिस पर हम क्लिक करते हैं तो यह सर्वलेट गुरु_लॉगिन पर जाता है जहां दोनों फ़ील्ड अनुरोध ऑब्जेक्ट का उपयोग करके लिए जाते हैं।

गुरु_लॉगिन.जावा(सर्वलेट)

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

}

कोड का स्पष्टीकरण:

कोड लाइन 5-9: यहां हम कोड में आवश्यक आयात कर रहे हैं।

कोड लाइन 14: यहां हम guru_login सर्वलेट ले रहे हैं जो HttpServlet का विस्तार करता है।

कोड लाइन 21: यहां हम उपयोग कर रहे हैं doPost() फॉर्म में हम POST विधि का उपयोग कर रहे हैं।

कोड लाइन 23-24: यहां हम अनुरोध ऑब्जेक्ट अर्थात उपयोगकर्ता नाम और पासवर्ड का उपयोग करके पैरामीटर ले रहे हैं।

कोड लाइन 25-29: इस तरह, हम "if" स्थिति ले रहे हैं जहां हम उपयोगकर्ता नाम और पासवर्ड की जांच कर रहे हैं कि वे खाली हैं या नहीं। इस मामले में यदि यह खाली है तो हमें requestdispatcher ऑब्जेक्ट मिल रहा है जो अनुरोध और प्रतिक्रिया ऑब्जेक्ट्स के साथ register_3.jsp को अग्रेषित करता है।

कोड लाइन 30-34: यदि दोनों रिक्त नहीं हैं तो इसे निष्पादित किया जाएगा, फिर यह अनुरोध और प्रतिक्रिया ऑब्जेक्ट्स के साथ register_4.jsp को अनुरोध अग्रेषित करता है।

उदाहरण 2: रजिस्टर_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>

कोड का स्पष्टीकरण:

कोड लाइन 12: यहां हम स्ट्रिंग ऑब्जेक्ट यूजरनेम में अनुरोध ऑब्जेक्ट से पैरामीटर “यूजरनेम” प्राप्त कर रहे हैं।

कोड लाइन 13: यहां हमारे पास उपयोगकर्ता नाम के साथ एक स्वागत संदेश है।

कोड लाइन 14: यहां हम लॉगआउट फॉर्म का लिंक दे रहे हैं जो register_3.jsp पर रीडायरेक्ट करता है।

जब आप उपरोक्त कोड निष्पादित करते हैं तो आपको निम्नलिखित आउटपुट मिलता है:

आउटपुट:

यहां जब हम register_3.jsp पर क्लिक करते हैं तो हमें लॉगिन बटन के साथ दो फ़ील्ड "यूजरनेम" और "पासवर्ड" मिलते हैं।

लॉगिन और लॉगआउट फॉर्म

लॉगइन बटन पर क्लिक करने के बाद आपको लॉगआउट बटन के साथ नीचे दिया गया संदेश प्राप्त होगा।

लॉगिन और लॉगआउट फॉर्म

जब आप लॉगआउट बटन पर क्लिक करते हैं तो आप लॉगिन पेज पर वापस चले जाते हैं

लॉगिन और लॉगआउट फॉर्म

getParameter() का उपयोग करके JSP फॉर्म प्रोसेसिंग

जेएसपी फॉर्म प्रसंस्करण:

वेब प्रोसेसिंग में फॉर्म एक आम तरीका है। हमें वेब सर्वर को जानकारी भेजने की जरूरत होती है और वह जानकारी।

वेब सर्वर पर सूचना भेजने और वापस प्राप्त करने के लिए आमतौर पर दो तरीके प्रयुक्त होते हैं।

GET विधि:

  • यह ब्राउज़र से वेब सर्वर तक जानकारी भेजने की डिफ़ॉल्ट विधि है।
  • यह ? वर्ण से अलग करके एनकोडेड जानकारी को URL पृष्ठ पर जोड़ता है।
  • इसमें भी आकार की सीमा है, और हम अनुरोध में केवल 1024 अक्षर ही भेज सकते हैं।
  • हमें GET पद्धति के माध्यम से पासवर्ड और संवेदनशील जानकारी भेजने से बचना चाहिए।

पोस्ट विधि:

  • पोस्ट विधि सर्वर तक सूचना भेजने की सबसे विश्वसनीय विधि है।
  • यह सूचना को अलग संदेश के रूप में भेजता है।
  • यह URL में ? के बाद टेक्स्ट स्ट्रिंग के रूप में भेजा जाता है।
  • इसका प्रयोग आमतौर पर संवेदनशील सूचनाएं भेजने के लिए किया जाता है।

JSP निम्नलिखित विधियों का उपयोग करके फ़ॉर्म डेटा प्रोसेसिंग को संभालता है:

  1. getParameter(): इसका उपयोग फॉर्म पैरामीटर का मान प्राप्त करने के लिए किया जाता है।
  2. getParameterValues(): इसका उपयोग पैरामीटर्स के एकाधिक मान लौटाने के लिए किया जाता है।
  3. getParameterNames(): इसका उपयोग पैरामीटरों के नाम प्राप्त करने के लिए किया जाता है।
  4. getInputStream(): इसका उपयोग क्लाइंट द्वारा भेजे गए बाइनरी डेटा को पढ़ने के लिए किया जाता है।

उदाहरण:

इस उदाहरण में, हमने दो फ़ील्ड वाला एक फ़ॉर्म लिया है. "यूज़रनेम" और "पासवर्ड" जिसमें सबमिट बटन है

एक्शन_फॉर्म.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>

एक्शन_फॉर्म_प्रोसेस.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

कोड लाइन 10: यहाँ हमने एक फॉर्म परिभाषित किया है और जिसके माध्यम से हमने किसी अन्य क्रिया को प्रोसेस किया है JSPएक्शन पैरामीटर में, हम उस JSP को जोड़ते हैं जिस पर इसे GET विधि के माध्यम से संसाधित किया जाना है।

यहां हम जानकारी अर्थात उपयोगकर्ता नाम और पासवर्ड पास करने के लिए GET विधि का उपयोग कर रहे हैं।

कोड लाइन 11-14: यहां हम उपयोगकर्ता नाम और पासवर्ड जैसे फ़ील्ड ले रहे हैं जो टेक्स्ट फ़ील्ड हैं, और हम उपयोगकर्ता से इनपुट प्राप्त कर रहे हैं।

इस इनपुट को getParameter विधि का उपयोग करके प्राप्त किया जा सकता है। साथ ही, हमारे पास सबमिट बटन है जिसका प्रकार सबमिट टाइप है जो हमें फ़ील्ड मानों को action_form_process.jsp में पास करने में मदद करता है

एक्शन_फॉर्म_प्रोसेस.jsp

कोड लाइन 14: यहां हम अनुरोध ऑब्जेक्ट की getParameter विधि का उपयोग करके action_form.jsp से इनपुट फ़ील्ड के मान प्राप्त करते हैं।

जब हम उपरोक्त कोड निष्पादित करते हैं, तो हमें निम्नलिखित आउटपुट मिलता है:

जेएसपी फॉर्म प्रोसेसिंग

जेएसपी फॉर्म प्रोसेसिंग

आउटपुट:

जब हम action_form.jsp निष्पादित करते हैं, तो हमें दो फ़ील्ड उपयोगकर्ता नाम और पासवर्ड और एक सबमिट बटन के साथ एक फॉर्म मिलता है। फिर उपयोगकर्ता नाम और पासवर्ड दर्ज करने के बाद, हम सबमिट पर क्लिक कर सकते हैं, और यह अगले पृष्ठ पर संसाधित होता है जो स्वागत संदेश के साथ फॉर्म प्रसंस्करण पृष्ठ के रूप में आउटपुट देता है।