जेएसपी निर्देश
जेएसपी निर्देश क्या हैं?
- JSP निर्देश JSP कंटेनर के लिए संदेश हैं। वे पूरे JSP पेज के बारे में वैश्विक जानकारी प्रदान करते हैं।
- जेएसपी निर्देशों का उपयोग जेएसपी को सर्वलेट कोड में अनुवाद करने के लिए कंटेनर को विशेष निर्देश देने के लिए किया जाता है।
- JSP जीवन चक्र चरण में, JSP को सर्वलेट में परिवर्तित किया जाना होता है जो अनुवाद चरण है।
- वे कंटेनर को JSP प्रसंस्करण के कुछ पहलुओं को संभालने के तरीके के बारे में निर्देश देते हैं
- निर्देशों में कई विशेषताएं हो सकती हैं जो अल्पविराम द्वारा कुंजी-मान युग्मों के रूप में अलग की जाती हैं।
- JSP में, निर्देश का वर्णन इस प्रकार किया गया है
<%@ %>
टैग।
निर्देश का वाक्यविन्यास:
<%@ directive attribute="" %>
JSP में निर्देशों के प्रकार
JSP में तीन प्रकार के निर्देश हैं:
- पेज निर्देश
- निर्देश शामिल करें
- टैगलिब निर्देश
उनमें से प्रत्येक का उदाहरण सहित नीचे विस्तार से वर्णन किया गया है:
1) जेएसपी पेज निर्देश
पेज निर्देश का वाक्यविन्यास:
<%@ page…%>
- यह ऐसी विशेषताएं प्रदान करता है जो संपूर्ण JSP पृष्ठ पर लागू होती हैं।
- यह पृष्ठ पर निर्भर विशेषताओं को परिभाषित करता है, जैसे स्क्रिप्टिंग भाषा, त्रुटि पृष्ठ और बफरिंग आवश्यकताएं।
- इसका उपयोग कंटेनर को वर्तमान JSP पृष्ठ से संबंधित निर्देश प्रदान करने के लिए किया जाता है।
पेज डायरेक्टिव से जुड़ी विशेषताओं की सूची निम्नलिखित है:
- भाषा
- का विस्तार
- आयात
- सामग्री प्रकार
- पता
- सत्र
- isथ्रेडसेफ
- ऑटोफ्लश
- बफर
- IsErrorपृष्ठ
- पेजएन्कोडिंग
- त्रुटि पृष्ठ
- isELIgonored
प्रत्येक विशेषता के बारे में अधिक विवरण
१) भाषा: यह परिभाषित करता है प्रोग्रामिंग भाषा (अंतर्निहित भाषा) का उपयोग पृष्ठ में किया जा रहा है।
भाषा का वाक्यविन्यास:
<%@ page language="value" %>
यहाँ मान प्रोग्रामिंग भाषा (अंतर्निहित भाषा) है
उदाहरण:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
कोड का स्पष्टीकरण: उपरोक्त उदाहरण में, विशेषता भाषा मान है Java जो इस मामले में अंतर्निहित भाषा है। इसलिए, अभिव्यक्ति टैग में कोड जावा कंपाइलर का उपयोग करके संकलित किया जाएगा।
2) विस्तार: इस विशेषता का उपयोग JAVA की तरह क्लास को विस्तारित (विरासत में) करने के लिए किया जाता है
विस्तार का वाक्यविन्यास:
<%@ page extends="value" %>
यहां मान उस वर्ग का प्रतिनिधित्व करता है जिससे इसे विरासत में प्राप्त किया जाना है।
उदाहरण:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page extends="demotest.DemoClass" %>
कोड का स्पष्टीकरण: उपरोक्त कोड में JSP DemoClass का विस्तार कर रहा है जो कि demotest पैकेज के भीतर है, और यह सभी क्लास सुविधाओं का विस्तार करेगा।
3) आयातयह विशेषता पृष्ठ निर्देश विशेषताओं में सबसे अधिक उपयोग की जाने वाली विशेषता है। इसका उपयोग कंटेनर को सर्वलेट कोड उत्पन्न करते समय अन्य जावा क्लासेस, इंटरफेस, इनम्स आदि को आयात करने के लिए कहने के लिए किया जाता है। यह जावा कक्षाओं, इंटरफेस में आयात कथनों के समान है।
आयात का वाक्यविन्यास:
<%@ page import="value" %>
यहां मान उन वर्गों को इंगित करता है जिन्हें आयात किया जाना है।
उदाहरण:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" import="java.util.Date" pageEncoding="ISO-8859-1"%>
कोड का स्पष्टीकरण:
उपरोक्त कोड में, हम java.util पैकेज (सभी उपयोगिता वर्ग) से Date वर्ग को आयात कर रहे हैं, और यह निम्नलिखित वर्ग की सभी विधियों का उपयोग कर सकता है।
4) सामग्री प्रकार:
- यह वर्ण एन्कोडिंग योजना को परिभाषित करता है अर्थात इसका उपयोग प्रतिक्रिया के सामग्री प्रकार और वर्ण सेट को सेट करने के लिए किया जाता है
- contentType का डिफ़ॉल्ट प्रकार है
"text/html; charset=ISO-8859-1"
.
contentType का सिंटैक्स:
<%@ page contentType="value" %>
उदाहरण:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
कोड का स्पष्टीकरण:
उपरोक्त कोड में, सामग्री प्रकार को text/html के रूप में सेट किया गया है, यह JSP और उत्पन्न प्रतिक्रिया पृष्ठ के लिए वर्ण एन्कोडिंग सेट करता है।
5) जानकारी
- यह एक स्ट्रिंग को परिभाषित करता है जिसे getServletInfo() विधि द्वारा एक्सेस किया जा सकता है।
- इस विशेषता का उपयोग सर्वलेट विवरण सेट करने के लिए किया जाता है।
जानकारी का वाक्यविन्यास:
<%@ page info="value" %>
यहाँ, मान सर्वलेट जानकारी को दर्शाता है।
उदाहरण:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" info="Guru Directive JSP" pageEncoding="ISO-8859-1"%>
कोड का स्पष्टीकरण:
उपरोक्त कोड में, स्ट्रिंग “गुरु डायरेक्टिव JSP” को getServletInfo() का उपयोग करके सर्वलेट इंटरफ़ेस द्वारा पुनर्प्राप्त किया जा सकता है
6) सत्र
- JSP पृष्ठ डिफ़ॉल्ट रूप से सत्र बनाता है।
- कभी-कभी हमें JSP में सत्र बनाने की आवश्यकता नहीं होती है, और इसलिए, हम उस स्थिति में इस विशेषता को गलत पर सेट कर सकते हैं। सत्र विशेषता का डिफ़ॉल्ट मान सत्य है, और सत्र बनाया जाता है। जब इसे गलत पर सेट किया जाता है, तो हम संकलक को डिफ़ॉल्ट रूप से सत्र न बनाने का संकेत दे सकते हैं।
सत्र का वाक्यविन्यास:
<%@ page session="true/false"%>
इस मामले में सत्र विशेषता को सत्य या असत्य पर सेट किया जा सकता है
उदाहरण:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" session="false"%>
कोड का स्पष्टीकरण:
उपरोक्त उदाहरण में, सत्र विशेषता को “गलत” पर सेट किया गया है, इसलिए हम संकेत दे रहे हैं कि हम इस JSP में कोई सत्र नहीं बनाना चाहते हैं
7) थ्रेडसेफ है:
- यह उत्पन्न सर्वलेट के लिए थ्रेडिंग मॉडल को परिभाषित करता है।
- यह पृष्ठ में कार्यान्वित थ्रेड सुरक्षा के स्तर को इंगित करता है।
- इसका डिफ़ॉल्ट मान सत्य है इसलिए एक साथ
- हम इस विशेषता का उपयोग उत्पन्न सर्वलेट में SingleThreadModel इंटरफ़ेस को लागू करने के लिए कर सकते हैं।
- यदि हम इसे false पर सेट करते हैं, तो यह SingleThreadModel को कार्यान्वित करेगा और किसी भी साझा ऑब्जेक्ट तक पहुंच सकता है और असंगतता उत्पन्न कर सकता है।
isThreadSafe का सिंटैक्स:
<% @ page isThreadSafe="true/false" %>
यहां सत्य या असत्य यह दर्शाता है कि यदि सिंक्रनाइज़ेशन है तो सत्य के रूप में सेट करें और इसे असत्य के रूप में सेट करें।
उदाहरण:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" isThreadSafe="true"%>
कोड का स्पष्टीकरण:
उपरोक्त कोड में, isThreadSafe को “true” पर सेट किया गया है, इसलिए सिंक्रनाइज़ेशन किया जाएगा, और एकाधिक थ्रेड्स का उपयोग किया जा सकता है।
8) ऑटोफ्लश:
यह विशेषता निर्दिष्ट करती है कि बफर किए गए आउटपुट को स्वचालित रूप से फ्लश किया जाना चाहिए या नहीं और उस विशेषता का डिफ़ॉल्ट मान सत्य है। यदि मान को गलत पर सेट किया जाता है तो बफर स्वचालित रूप से फ्लश नहीं होगा और यदि यह भरा हुआ है, तो हमें अपवाद मिलेगा। जब बफर शून्य होता है तो झूठ अवैध होता है, और कोई बफरिंग नहीं होती है, इसलिए इसे स्वचालित रूप से फ्लश किया जाएगा।
ऑटोफ्लश का सिंटैक्स:
<% @ page autoFlush="true/false" %>
यहाँ सत्य/असत्य यह दर्शाता है कि बफरिंग करनी है या नहीं
उदाहरण:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" autoFlush="false"%>
कोड का स्पष्टीकरण:
उपरोक्त कोड में, ऑटोफ्लश को गलत पर सेट किया गया है और इसलिए बफरिंग नहीं की जाएगी और इसने आउटपुट को मैन्युअल रूप से फ्लश कर दिया है।
9) Buffer:
- इस विशेषता का उपयोग करके आउटपुट प्रतिक्रिया ऑब्जेक्ट को बफर किया जा सकता है।
- हम इस विशेषता का उपयोग करके बफरिंग का आकार निर्धारित कर सकते हैं और डिफ़ॉल्ट आकार 8KB है।
- यह सर्वलेट को प्रतिक्रिया ऑब्जेक्ट पर लिखने से पहले बफर लिखने का निर्देश देता है।
बफर का सिंटैक्स:
<%@ page buffer="value" %>
यहाँ मान बफ़र के आकार को दर्शाता है जिसे परिभाषित किया जाना है। यदि कोई बफ़र नहीं है, तो हम इसे none लिख सकते हैं, और यदि हम कोई मान नहीं बताते हैं तो डिफ़ॉल्ट 8KB है
उदाहरण:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" buffer="16KB"%>
कोड का स्पष्टीकरण:
उपरोक्त कोड में, बफर आकार 16KB बताया गया है, जहाँ बफर उस आकार का होगा
10) isErrorपृष्ठ:
- यह इंगित करता है कि जिस JSP पेज में त्रुटि है उसे किसी अन्य JSP पेज में जांचा जाएगा
- “isErrorPage” विशेषता के साथ घोषित कोई भी JSP फ़ाइल, उन अन्य JSP पृष्ठों से अपवाद प्राप्त करने में सक्षम होती है, जिनमें त्रुटि पृष्ठ होते हैं।
- अपवाद केवल इन पृष्ठों के लिए उपलब्ध हैं।
- मूल मूल्य गलत है।
isErrorPage का सिंटैक्स:
<%@ page isErrorPage="true/false"%>
उदाहरण:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" isErrorPage="true"%>
कोड का स्पष्टीकरण:
उपरोक्त कोड में, isErrorPage को true के रूप में सेट किया गया है। इसलिए, यह जाँच करेगा कि किसी अन्य JSP में errorPage (अगले विशेषता में वर्णित) विशेषता सेट है या नहीं और यह अपवादों को संभाल सकता है।
11) पेजएनकोडिंग:
“pageEncoding” विशेषता JSP पेज के लिए वर्ण एन्कोडिंग को परिभाषित करती है। यदि कोई अन्य निर्दिष्ट नहीं है, तो डिफ़ॉल्ट “ISO-8859-1” के रूप में निर्दिष्ट किया जाता है।
पेजएन्कोडिंग का सिंटैक्स:
<%@ page pageEncoding="vaue" %>
यहाँ value JSP के लिए charset मान निर्दिष्ट करता है
उदाहरण:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" isErrorPage="true"%>
कोड का स्पष्टीकरण:
उपरोक्त कोड में “pageEncoding” को डिफ़ॉल्ट वर्णसेट ISO-8859-1 पर सेट किया गया है
12) त्रुटि पृष्ठ:
इस विशेषता का उपयोग JSP पृष्ठ के लिए त्रुटि पृष्ठ सेट करने के लिए किया जाता है, यदि JSP कोई अपवाद उत्पन्न करता है और फिर उसे अपवाद पृष्ठ पर पुनर्निर्देशित करता है।
errorPage का सिंटैक्स:
<%@ page errorPage="value" %>
यहाँ मान त्रुटि JSP पृष्ठ मान को दर्शाता है
उदाहरण:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" errorPage="errorHandler.jsp"%>
कोड का स्पष्टीकरण:
उपरोक्त कोड में, अपवादों को संभालने के लिए हमारे पास errroHandler.jsp है
१३) isELignored:
- IsELIgnored एक फ्लैग विशेषता है, जहां हमें यह निर्णय लेना होता है कि EL टैग को अनदेखा किया जाए या नहीं।
- इसका डेटाटाइप java enum है, तथा डिफ़ॉल्ट मान false है, इसलिए EL डिफ़ॉल्ट रूप से सक्षम है।
isELignored का सिंटैक्स:
<%@ page isELIgnored="true/false" %>
यहाँ, सत्य/असत्य EL के मान को दर्शाता है, चाहे उसे अनदेखा किया जाए या नहीं।
उदाहरण:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" isELIgnored="true"%>
कोड का स्पष्टीकरण:
उपरोक्त कोड में, isELIgnored सत्य है और इसलिए अभिव्यक्ति भाषा (ईएल) यहाँ अनदेखा किया गया है। नीचे दिए गए उदाहरण में हम चार विशेषताओं का उपयोग कर रहे हैं (कोड लाइन 1-2)
चार विशेषताओं वाला उदाहरण
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" isELIgnored="false"%> <%@page import="java.util.Date" %> <!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>Directive Guru JSP1</title> </head> <body> <a>Date is:</a> <%= new java.util.Date() %> </body> </html>
कोड का स्पष्टीकरण:
कोड लाइन 1-2: यहाँ हमने चार विशेषताएँ परिभाषित की हैं अर्थात
- भाषा: यह इस प्रकार सेट है Java प्रोग्रामिंग भाषा के रूप में
- contentType: संकलक को यह बताने के लिए text/html के रूप में सेट करें कि html को प्रारूपित किया जाना है
- पेजएन्कोडिंग: इस विशेषता में डिफ़ॉल्ट वर्णसेट सेट किया गया है
- isELignored: अभिव्यक्ति टैग गलत है इसलिए इसे अनदेखा नहीं किया जाता है
कोड लाइन 3: यहाँ हमने import attribute का उपयोग किया है, और यह “Date class” को import कर रहा है जो कि से है Java util पैकेज, और हम कोड में वर्तमान दिनांक प्रदर्शित करने का प्रयास कर रहे हैं।
जब आप उपरोक्त कोड निष्पादित करेंगे, तो आपको निम्नलिखित आउटपुट मिलेगा
उत्पादन:
- दिनांक है: दिनांक वर्ग की दिनांक विधि का उपयोग करके वर्तमान दिनांक
2)जेएसपी निर्देश शामिल करें
- JSP "शामिल निर्देश" (कोडलाइन 8) का उपयोग एक फ़ाइल को दूसरी फ़ाइल में शामिल करने के लिए किया जाता है
- इसमें शामिल फ़ाइल HTML, JSP, टेक्स्ट फ़ाइल आदि हो सकती है।
- यह उपयोगकर्ता के विचारों के साथ टेम्पलेट्स बनाने और पृष्ठों को हेडर और फ़ूटर और साइडबार क्रियाओं में विभाजित करने में भी उपयोगी है।
- इसमें अनुवाद चरण के दौरान फ़ाइल शामिल है
शामिल निर्देश का वाक्यविन्यास:
<%@ include….%>
उदाहरण:
Directive_jsp2.jsp (मुख्य फ़ाइल)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ include file="directive_header_jsp3.jsp" %> <!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 Directive JSP2</title> </head> <body> <a>This is the main file</a> </body> </html>
Directive_header_jsp3.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"> </head> <body> <a>Header file : </a> <%int count =1; count++; out.println(count);%> : </body> </html>
कोड का स्पष्टीकरण:
निर्देश_jsp2.jsp:
कोड लाइन 3: इस कोड में, हम सम्मिलित टैग का उपयोग करते हैं, जहां हम directive_header_jsp3.jsp फ़ाइल को मुख्य फ़ाइल (_jsp2.jsp) में सम्मिलित करते हैं, तथा मुख्य फ़ाइल और सम्मिलित फ़ाइल दोनों का आउटपुट प्राप्त करते हैं।
डायरेक्टिव_हैडर_jsp3.jsp:
कोड लाइन 11-12: हमने एक वैरिएबल काउंट लिया है जिसे 1 से आरंभ किया गया है और फिर इसे बढ़ाया गया है। यह मुख्य फ़ाइल में आउटपुट देगा जैसा कि नीचे दिखाया गया है।
जब आप उपरोक्त कोड निष्पादित करते हैं तो आपको निम्नलिखित आउटपुट मिलता है:
आउटपुट:
- आउटपुट हैडर फ़ाइल: 2: यह मुख्य फ़ाइल है
- आउटपुट directive_jsp2.jsp फ़ाइल से निष्पादित किया जाता है जबकि directive_header_jsp3.jsp सम्मिलित फ़ाइल को पहले संकलित किया जाएगा।
- सम्मिलित फ़ाइल के पूरा हो जाने के बाद, मुख्य फ़ाइल निष्पादित की जाती है, और आउटपुट मुख्य फ़ाइल से होगा “यह मुख्य फ़ाइल है”। तो आपको _jsp2.jsp से “हेडर फ़ाइल: 3” और _jsp2.jsp से “यह मुख्य फ़ाइल है” के रूप में आउटपुट मिलेगा।
3) जेएसपी टैगलिब निर्देश
- जेएसपी टैगलिब निर्देश का उपयोग टैग लाइब्रेरी को “टैगलिब” उपसर्ग के रूप में परिभाषित करने के लिए किया जाता है, जिसका उपयोग हम कर सकते हैं JSP.
- JSP कस्टम टैग अनुभाग में अधिक विवरण शामिल किया जाएगा
- JSP taglib निर्देश JSP मानक टैग लाइब्रेरी का उपयोग करके JSP पृष्ठों में उपयोग किया जाता है
- यह कस्टम टैग्स के एक सेट का उपयोग करता है, लाइब्रेरी के स्थान की पहचान करता है और JSP पृष्ठ में कस्टम टैग्स की पहचान करने का साधन प्रदान करता है।
टैगलिब निर्देश का वाक्यविन्यास:
<%@ taglib uri="uri" prefix="value"%>
यहां "uri" विशेषता टैग लाइब्रेरी डिस्क्रिप्टर में एक अद्वितीय पहचानकर्ता है और "प्रीफिक्स" विशेषता एक टैग नाम है।
उदाहरण:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="gurutag" uri="http://java.sun.com/jsp/jstl/core" %> <!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 Directive JSP</title> <gurutag:hello/> </head> <body> </body> </html>
कोड का स्पष्टीकरण:
कोड लाइन 3: यहाँ “taglib” को uri और prefix विशेषताओं के साथ परिभाषित किया गया है।
कोड लाइन 9: “गुरुटैग” एक कस्टम टैग है और इसका उपयोग कहीं भी किया जा सकता है