JSP निहित ऑब्जेक्ट्स

JSP इंप्लिसिट ऑब्जेक्ट क्या है?

  • JSP अंतर्निहित ऑब्जेक्ट्स JSP के सर्वलेट में अनुवाद चरण के दौरान बनाए जाते हैं।
  • इन ऑब्जेक्ट्स को सीधे स्क्रिपलेट्स में उपयोग किया जा सकता है जो सेवा विधि में जाता है।
  • वे कंटेनर द्वारा स्वचालित रूप से बनाए जाते हैं, और उन तक ऑब्जेक्ट्स का उपयोग करके पहुंचा जा सकता है।

JSP में कितने इंप्लिसिट ऑब्जेक्ट उपलब्ध हैं?

कंटेनर में 9 प्रकार की अंतर्निहित वस्तुएं उपलब्ध हैं:

  1. बाहर
  2. निवेदन
  3. प्रतिक्रिया
  4. कॉन्फिग
  5. आवेदन
  6. अधिवेशन
  7. पृष्ठ संदर्भ
  8. पेज
  9. अपवाद

आइये एक-एक करके अध्ययन करें

1) बाहर

  • आउट बफर में डेटा लिखने और प्रतिक्रिया में क्लाइंट को आउटपुट भेजने के लिए निहित वस्तुओं में से एक है
  • आउट ऑब्जेक्ट हमें सर्वलेट के आउटपुट स्ट्रीम तक पहुंचने की अनुमति देता है
  • आउट javax.servlet.jsp.jspWriter क्लास का ऑब्जेक्ट है
  • साथ काम करते हुए सर्वलेट, हमें प्रिंटराइटर ऑब्जेक्ट की आवश्यकता है

उदाहरण:

<%@ 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>Implicit Guru JSP1</title>
</head>
<body>
<% int num1=10;int num2=20;
out.println("num1 is " +num1);
out.println("num2 is "+num2);
%>
</body>
</html>

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

कोड लाइन 11-12– आउट का उपयोग आउटपुट स्ट्रीम में प्रिंट करने के लिए किया जाता है

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

जेएसपी में बाहर

आउटपुट:

  • आउटपुट में हमें num1 और num2 के मान मिलते हैं

2) अनुरोध

  • अनुरोध ऑब्जेक्ट java.servlet.http.HttpServletRequest का एक उदाहरण है और यह सेवा विधि के तर्कों में से एक है
  • इसे प्रत्येक अनुरोध के लिए कंटेनर द्वारा बनाया जाएगा।
  • इसका उपयोग पैरामीटर, हेडर जानकारी, सर्वर नाम आदि जैसी जानकारी का अनुरोध करने के लिए किया जाएगा।
  • यह अनुरोध पैरामीटर तक पहुँचने के लिए getParameter() का उपयोग करता है।

उदाहरण:

Implicit_jsp2.jsp(वह फॉर्म जिससे guru.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>Implicit Guru form JSP2</title>
</head>
<body>
<form action="guru.jsp">
<input type="text" name="username">
<input type="submit" value="submit">
</form>
</body>
</html>

गुरु.jsp (जहाँ कार्रवाई की जाती है)

JSP में अनुरोध

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

कोड लाइन 10-13 : implicit_jsp2.jsp(form) में अनुरोध भेजा जाता है, इसलिए वेरिएबल username को संसाधित किया जाता है और guru.jsp को भेजा जाता है जो JSP की क्रिया है।

गुरु.jsp

कोड लाइन 10-11: यह एक्शन jsp है जहां अनुरोध संसाधित किया जाता है, और उपयोगकर्ता नाम फॉर्म jsp से लिया जाता है।

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

आउटपुट:

JSP में अनुरोध

जब आप टेस्ट लिखते हैं और सबमिट बटन पर क्लिक करते हैं, तो आपको निम्नलिखित आउटपुट मिलता है “वेलकम टेस्ट।”

JSP में अनुरोध

3) प्रतिक्रिया

  • “Response” क्लास का एक उदाहरण है जो HttpServletResponse इंटरफ़ेस को लागू करता है
  • कंटेनर इस ऑब्जेक्ट को उत्पन्न करता है और पैरामीटर के रूप में _jspservice() विधि को पास करता है
  • प्रत्येक अनुरोध के लिए कंटेनर द्वारा “प्रतिक्रिया ऑब्जेक्ट” बनाया जाएगा।
  • यह उस प्रतिक्रिया को दर्शाता है जो ग्राहक को दी जा सकती है
  • प्रतिक्रिया निहित ऑब्जेक्ट का उपयोग सामग्री प्रकार, कुकी जोड़ने और प्रतिक्रिया पृष्ठ पर रीडायरेक्ट करने के लिए किया जाता है

उदाहरण:

<%@ 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>Implicit Guru JSP4</title>
</head>
<body>
<%response.setContentType("text/html"); %>
</body>
</html>

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

कोड लाइन 11: प्रतिक्रिया ऑब्जेक्ट में हम सामग्री प्रकार सेट कर सकते हैं

यहाँ हम प्रतिक्रिया ऑब्जेक्ट में केवल सामग्री प्रकार सेट कर रहे हैं। इसलिए, इसके लिए कोई आउटपुट नहीं है।

4) कॉन्फ़िगरेशन

  • “कॉन्फ़िगरेशन” java.servlet.servletConfig प्रकार का है
  • यह प्रत्येक jsp पृष्ठ के लिए कंटेनर द्वारा बनाया जाता है
  • इसका उपयोग web.xml में आरंभीकरण पैरामीटर प्राप्त करने के लिए किया जाता है

उदाहरण:

Web.xml (सर्वलेट का नाम और मैपिंग निर्दिष्ट करता है)

JSP में कॉन्फ़िगरेशन

Implicit_jsp5.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>Implicit Guru JSP5</title>
</head>
<body>
<% String servletName = config.getServletName();
out.println("Servlet Name is " +servletName);%>
</body>
</html>

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

web.xml में

कोड लाइन 14-17: Web.xml में हमारे पास क्लासों के लिए सर्वलेट्स की मैपिंग है।

इंप्लिसिट_jsp5.jsp

कोड लाइन 10-11: JSP में सर्वलेट का नाम प्राप्त करने के लिए, हम config.getServletName का उपयोग कर सकते हैं, जो हमें सर्वलेट का नाम प्राप्त करने में मदद करेगा।

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

जेएसपी में प्रतिक्रिया

आउटपुट:

  • सर्वलेट का नाम “GuruServlet” है क्योंकि यह नाम web.xml में मौजूद है

5) अनुप्रयोग

  • एप्लिकेशन ऑब्जेक्ट (कोड लाइन 10) javax.servlet.ServletContext का एक उदाहरण है और इसका उपयोग 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 Implicit JSP6</title>
</head>
<body>
<% application.getContextPath(); %>
</body>
</html>

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

  • उपरोक्त कोड में, एप्लिकेशन विशेषता JSP पृष्ठ का संदर्भ पथ प्राप्त करने में मदद करती है।

6) सत्र

  • सत्र “httpsession” ऑब्जेक्ट (कोड लाइन 10) धारण कर रहा है।
  • सत्र ऑब्जेक्ट का उपयोग सत्र स्कोप के लिए विशेषताओं को प्राप्त करने, सेट करने और हटाने के लिए किया जाता है और सत्र जानकारी प्राप्त करने के लिए भी इसका उपयोग किया जाता है

उदाहरण:

Implicit_jsp7(विशेषता सेट है)

<%@ 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>Implicit JSP</title>
</head>
<body>
<% session.setAttribute("user","GuruJSP"); %>
<a href="implicit_jsp8.jsp">Click here to get user name</a>
</body>
</html>

इंप्लिसिट_jsp8.jsp (getAttribute)

<%@ 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>implicit Guru JSP8</title>
</head>
<body>
<% String name = (String)session.getAttribute("user");
out.println("User Name is " +name);
%>
</body>
</html>

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

इंप्लिसिट_jsp7.jsp

कोड लाइन 11: हम सत्र चर में विशेषता उपयोगकर्ता सेट कर रहे हैं, और उस मान को उस सत्र से प्राप्त किया जा सकता है जिसमें से jsp को बुलाया जाता है (_jsp8.jsp)।

कोड लाइन 12: हम href पर एक और jsp कॉल कर रहे हैं जिसमें हमें विशेषता user के लिए सेट किया गया मान मिलेगा।

इंप्लिसिट_jsp8.jsp

कोड लाइन 11: हम सत्र ऑब्जेक्ट से उपयोगकर्ता विशेषता का मान प्राप्त कर रहे हैं और उस मान को प्रदर्शित कर रहे हैं

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

जेएसपी में सत्र

जब आप उपयोगकर्ता नाम के लिए लिंक पर क्लिक करेंगे तो आपको निम्नलिखित आउटपुट मिलेगा।

जेएसपी में सत्र

आउटपुट:

  • जब हम implicit_jsp7.jsp में दिए गए लिंक पर क्लिक करते हैं तो हमें दूसरे jsp पेज, यानी (_jsp8.jsp) पेज पर रीडायरेक्ट किया जाता है और हमें उपयोगकर्ता विशेषता (_jsp7.jsp) के सत्र ऑब्जेक्ट से मान मिलता है।

7) पेज संदर्भ

  • यह ऑब्जेक्ट pagecontext प्रकार का है.
  • इसका उपयोग किसी विशेष दायरे से विशेषताओं को प्राप्त करने, सेट करने और हटाने के लिए किया जाता है

स्कोप 4 प्रकार के होते हैं:

  • पेज
  • निवेदन
  • अधिवेशन
  • आवेदन

उदाहरण:

<%@ 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>Implicit Guru JSP9</title>
</head>
<body>
<% pageContext.setAttribute("student","gurustudent",pageContext.PAGE_SCOPE);
String name = (String)pageContext.getAttribute("student");
out.println("student name is " +name);
%>
</body>
</html>

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

कोड लाइन 11: हम pageContext ऑब्जेक्ट का उपयोग करके विशेषता सेट कर रहे हैं, और इसके तीन पैरामीटर हैं:

  • कुंजी
  • वैल्यू
  • विस्तार

उपरोक्त कोड में, कुंजी स्टूडेंट है और मान "गुरुस्टूडेंट" है जबकि स्कोप पेज स्कोप है। यहाँ स्कोप "पेज" है और इसे केवल पेज स्कोप का उपयोग करके प्राप्त किया जा सकता है।

कोड लाइन 12: हम pageContext का उपयोग करके विशेषता का मान प्राप्त कर रहे हैं

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

JSP में पेज संदर्भ

आउटपुट:

  • आउटपुट में “छात्र का नाम गुरुछात्र है” प्रिंट होगा।

8) पेज

  • पृष्ठ निहित चर, संबंधित jsp के लिए वर्तमान में निष्पादित सर्वलेट ऑब्जेक्ट को धारण करता है।
  • वर्तमान jsp पृष्ठ के लिए इस ऑब्जेक्ट के रूप में कार्य करता है।

उदाहरण:

इस उदाहरण में, हम toString विधि का उपयोग करके पृष्ठ का नाम प्राप्त करने के लिए पेज ऑब्जेक्ट का उपयोग कर रहे हैं

<%@ 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>Implicit Guru JSP10</title>
</head>
<body>
<% String pageName = page.toString();
out.println("Page Name is " +pageName);%>
</body>
</html>

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

कोड लाइन 10-11: इस उदाहरण में, हम पेज ऑब्जेक्ट की toString() विधि का उपयोग करने का प्रयास कर रहे हैं और JSP पेज का स्ट्रिंग नाम प्राप्त करने का प्रयास कर रहे हैं।

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

JSP में पेज

आउटपुट:

  • आउटपुट उपरोक्त jsp पृष्ठ का स्ट्रिंग नाम है

9) अपवाद

  • अपवाद, throwable वर्ग का अंतर्निहित ऑब्जेक्ट है।
  • के उपयोग में आना JSP में अपवाद प्रबंधन.
  • अपवाद ऑब्जेक्ट का उपयोग केवल त्रुटि पृष्ठों में ही किया जा सकता है।उदाहरण:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" isErrorPage="true"%>
<!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>Implicit Guru JSP 11</title>
</head>
<body>
<%int[] num1={1,2,3,4};
out.println(num1[5]);%>
<%= exception %>
</body>
</html>

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

कोड लाइन 10-12 - इसमें संख्याओं की एक सरणी है, यानी, चार तत्वों के साथ num1। आउटपुट में, हम num1 से सरणी के पांचवें तत्व को प्रिंट करने की कोशिश कर रहे हैं, जिसे सरणी सूची में घोषित नहीं किया गया है। इसलिए इसका उपयोग jsp के अपवाद ऑब्जेक्ट को प्राप्त करने के लिए किया जाता है।

आउटपुट:

JSP में अपवाद

हमें उस सारणी में ArrayIndexOfBoundsException मिल रहा है, जहां हमें पांचवें तत्व की num1 सारणी मिल रही है।