जेएसपी - क्रिया

इस अध्याय में, हम JSP में क्रियाओं पर चर्चा करेंगे। ये क्रियाएं सर्वलेट इंजन के व्यवहार को नियंत्रित करने के लिए XML सिंटैक्स में कंस्ट्रक्शन का उपयोग करती हैं। आप गतिशील रूप से एक फ़ाइल सम्मिलित कर सकते हैं, जावाबीन घटकों का पुन: उपयोग कर सकते हैं, उपयोगकर्ता को किसी अन्य पृष्ठ पर अग्रेषित कर सकते हैं, या जावा प्लगइन के लिए HTML उत्पन्न कर सकते हैं।

एक्शन तत्व के लिए केवल एक सिंटैक्स है, क्योंकि यह एक्सएमएल मानक के अनुरूप है -

<jsp:action_name attribute = "value" />

क्रिया तत्व मूल रूप से पूर्वनिर्धारित कार्य हैं। निम्न तालिका उपलब्ध JSP क्रियाओं को सूचीबद्ध करती है -

क्र.सं. सिंटेक्स और प्रयोजन
1

jsp:include

पेज के अनुरोध के समय एक फ़ाइल शामिल है।

2

jsp:useBean

एक जावा बीन को ढूँढता है या झटपट तैयार करता है।

3

jsp:setProperty

एक JavaBean की संपत्ति सेट करता है।

4

jsp:getProperty

एक जावाबीन की संपत्ति को आउटपुट में सम्मिलित करता है।

5

jsp:forward

एक नए पृष्ठ के लिए आगे की ओर।

6

jsp:plugin

ब्राउज़र-विशिष्ट कोड उत्पन्न करता है जो जावा प्लगइन के लिए एक OBJECT या EMBED टैग बनाता है।

7

jsp:element

XML तत्वों को गतिशील रूप से परिभाषित करता है।

8

jsp:attribute

डायनामिक रूप से परिभाषित XML तत्व की विशेषता को परिभाषित करता है।

9

jsp:body

गतिशील रूप से परिभाषित XML तत्व के शरीर को परिभाषित करता है।

10

jsp:text

जेएसपी पृष्ठों और दस्तावेजों में टेम्प्लेट पाठ लिखने के लिए उपयोग किया जाता है।

सामान्य गुण

दो विशेषताएं हैं जो सभी एक्शन तत्वों के लिए सामान्य हैं: द id विशेषता और scope विशेषता।

आईडी विशेषता

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

स्कोप विशेषता

यह विशेषता एक्शन तत्व के जीवनचक्र की पहचान करती है। आईडी विशेषता और स्कोप विशेषता सीधे संबंधित हैं, क्योंकि स्कोप विशेषता आईडी से जुड़ी वस्तु के जीवनकाल को निर्धारित करती है। स्कोप विशेषता के चार संभावित मान हैं:(a) page, (b)request, (c)session, तथा (d) application

<Jsp: शामिल हैं> कार्रवाई

यह क्रिया आपको उत्पन्न होने वाले पेज में फाइल डालने की सुविधा देती है। वाक्य विन्यास इस तरह दिखता है -

<jsp:include page = "relative URL" flush = "true" />

से भिन्न include निर्देश, जो उस समय जेएसपी पेज को एक सर्वलेट में अनुवादित करता है, उस समय फ़ाइल को सम्मिलित करता है, यह क्रिया उस समय फ़ाइल को सम्मिलित करती है जब पृष्ठ का अनुरोध किया जाता है।

तालिका में निम्नलिखित एक्शन से जुड़ी विशेषताओं को सूचीबद्ध किया गया है -

क्र.सं. विशेषता और विवरण
1

page

शामिल किए जाने वाले पृष्ठ का सापेक्ष URL।

2

flush

बूलियन विशेषता यह निर्धारित करती है कि शामिल संसाधन में शामिल होने से पहले उसका बफर फ्लश हो गया है या नहीं।

उदाहरण

आइए हम निम्नलिखित दो फाइलों को परिभाषित करें (a)date.jsp तथा (b) main.jsp निम्नानुसार है -

निम्नलिखित की सामग्री है date.jsp फ़ाइल -

<p>Today's date: <%= (new java.util.Date()).toLocaleString()%></p>

निम्नलिखित की सामग्री है main.jsp फ़ाइल -

<html>
   <head>
      <title>The include Action Example</title>
   </head>
   
   <body>
      <center>
         <h2>The include action Example</h2>
         <jsp:include page = "date.jsp" flush = "true" />
      </center>
   </body>
</html>

आइए अब हम इन सभी फाइलों को रूट डायरेक्टरी में रखते हैं और एक्सेस करने की कोशिश करते हैं main.jsp। आपको निम्न आउटपुट प्राप्त होंगे -

The include action Example

Today's date: 12-Sep-2010 14:54:22

<Jsp: useBean> लड़ाई

useBeanकार्रवाई काफी बहुमुखी है। यह पहली बार आईडी और स्कोप वैरिएबल का उपयोग करके किसी मौजूदा ऑब्जेक्ट को खोजता है। यदि कोई ऑब्जेक्ट नहीं मिलता है, तो यह निर्दिष्ट ऑब्जेक्ट बनाने की कोशिश करता है।

बीन लोड करने का सबसे सरल तरीका इस प्रकार है -

<jsp:useBean id = "name" class = "package.class" />

एक बार एक बीन क्लास लोड होने के बाद, आप उपयोग कर सकते हैं jsp:setProperty तथा jsp:getProperty सेम गुणों को संशोधित करने और पुनः प्राप्त करने की क्रियाएं।

निम्न तालिका उपयोग की क्रिया से जुड़ी विशेषताओं को सूचीबद्ध करती है -

क्र.सं. विशेषता और विवरण
1

class

बीन के पूर्ण पैकेज नाम को नामित करता है।

2

type

चर के प्रकार को निर्दिष्ट करता है जो ऑब्जेक्ट को संदर्भित करेगा।

3

beanName

सेम के नाम के रूप में java.beans.Beans वर्ग के तात्कालिक () विधि द्वारा निर्दिष्ट देता है।

आइए अब चर्चा करते हैं jsp:setProperty और यह jsp:getProperty इन कार्यों से संबंधित एक वैध उदाहरण देने से पहले की जाने वाली क्रियाएं।

<Jsp: setProperty> लड़ाई

setPropertyकार्रवाई एक बीन के गुणों को निर्धारित करती है। इस कार्रवाई से पहले बीन को पहले परिभाषित किया गया होगा। सेटप्रॉपर्टी एक्शन का उपयोग करने के दो मूल तरीके हैं -

आप उपयोग कर सकते हैं jsp:setProperty के बाद, लेकिन एक के बाहर jsp:useBean तत्व, जैसा कि नीचे दिया गया है -

<jsp:useBean id = "myName" ... />
...
<jsp:setProperty name = "myName" property = "someProperty" .../>

इस मामले में, jsp:setProperty इस बात पर ध्यान दिए बिना कि क्या एक नया बीन तुरंत तैयार किया गया था या एक मौजूदा बीन पाया गया था।

एक दूसरा संदर्भ जिसमें jsp: setProperty दिखाई दे सकता है a के शरीर के अंदर है jsp:useBean तत्व, जैसा कि नीचे दिया गया है -

<jsp:useBean id = "myName" ... >
   ...
   <jsp:setProperty name = "myName" property = "someProperty" .../>
</jsp:useBean>

यहाँ, jsp: setProperty को केवल तभी निष्पादित किया जाता है जब किसी नई वस्तु को त्वरित किया गया था, न कि यदि कोई मौजूदा पाया गया था।

निम्नलिखित तालिका सूची से जुड़ी विशेषताओं को सूचीबद्ध करती है setProperty कार्रवाई -

क्र.सं. विशेषता और विवरण
1

name

बीन को डिजाइन करता है जिसकी संपत्ति सेट की जाएगी। बीन को पहले परिभाषित किया गया होगा।

2

property

उस संपत्ति को इंगित करता है जिसे आप सेट करना चाहते हैं। "*" का एक मूल्य का अर्थ है कि सभी अनुरोध पैरामीटर जिनके नाम सेम संपत्ति के नाम से मेल खाते हैं उन्हें उचित सेटर विधियों में पास किया जाएगा।

3

value

वह मान जो दी गई संपत्ति को सौंपा जाना है। पैरामीटर का मान शून्य है, या पैरामीटर मौजूद नहीं है, सेटप्रॉपर्टी कार्रवाई को अनदेखा किया जाता है।

4

param

परम विशेषता अनुरोध पैरामीटर का नाम है जिसका मूल्य संपत्ति प्राप्त करना है। आप मूल्य और परम दोनों का उपयोग नहीं कर सकते, लेकिन यह न तो उपयोग करने के लिए अनुमति है।

<Jsp: getProperty> Action

getProperty कार्रवाई का उपयोग किसी दिए गए संपत्ति के मूल्य को प्राप्त करने के लिए किया जाता है और इसे एक स्ट्रिंग में परिवर्तित करता है, और अंत में इसे आउटपुट में सम्मिलित करता है।

GetProperty क्रिया में केवल दो विशेषताएँ होती हैं, जिनमें से दोनों की आवश्यकता होती है। GetProperty क्रिया का सिंटैक्स निम्नानुसार है -

<jsp:useBean id = "myName" ... />
...
<jsp:getProperty name = "myName" property = "someProperty" .../>

निम्न तालिका सूची से संबंधित आवश्यक विशेषताओं को सूचीबद्ध करती है getProperty कार्रवाई -

क्र.सं. विशेषता और विवरण
1

name

बीन का नाम जिसे पुनः प्राप्त करने की संपत्ति है। बीन को पहले परिभाषित किया गया होगा।

2

property

संपत्ति गुण बीन संपत्ति को पुनः प्राप्त करने का नाम है।

उदाहरण

आइए हम एक परीक्षण बीन को परिभाषित करें जिसका आगे हमारे उदाहरण में उपयोग किया जाएगा -

/* File: TestBean.java */
package action;
 
public class TestBean {
   private String message = "No message specified";
 
   public String getMessage() {
      return(message);
   }
   public void setMessage(String message) {
      this.message = message;
   }
}

उपरोक्त कोड को जनरेट करने के लिए संकलित करें TestBean.class फ़ाइल और सुनिश्चित करें कि आपने TestBean.class को कॉपी किया है C:\apache-tomcat-7.0.2\webapps\WEB-INF\classes\action फ़ोल्डर और CLASSPATH चर भी इस फ़ोल्डर में सेट किया जाना चाहिए -

अब निम्नलिखित कोड का उपयोग करें main.jspफ़ाइल। यह बीन को लोड करता है और सेट करता है / एक साधारण स्ट्रिंग पैरामीटर प्राप्त करता है -

<html>
   
   <head>
      <title>Using JavaBeans in JSP</title>
   </head>
   
   <body>
      <center>
         <h2>Using JavaBeans in JSP</h2>
         <jsp:useBean id = "test" class = "action.TestBean" />
         <jsp:setProperty name = "test"  property = "message" 
            value = "Hello JSP..." />
            
         <p>Got message....</p>
         <jsp:getProperty name = "test" property = "message" />
      </center>
   </body>
</html>

अब हम एक्सेस करने का प्रयास करते हैं main.jsp, यह निम्नलिखित परिणाम प्रदर्शित करेगा -

Using JavaBeans in JSP

Got message.... Hello JSP...

<Jsp: आगे> कार्रवाई

forward क्रिया वर्तमान पृष्ठ की कार्रवाई को समाप्त करती है और किसी अन्य संसाधन जैसे स्थैतिक पृष्ठ, किसी अन्य JSP पृष्ठ, या जावा मेडलेट के लिए अनुरोध को छोड़ती है।

निम्नलिखित का सिंटैक्स है forward कार्रवाई -

<jsp:forward page = "Relative URL" />

निम्नलिखित तालिका में आगे की कार्रवाई से जुड़ी आवश्यक विशेषताओं को सूचीबद्ध किया गया है -

क्र.सं. विशेषता और विवरण
1

page

किसी अन्य संसाधन जैसे कि स्थिर पृष्ठ, किसी अन्य JSP पृष्ठ, या जावा सर्वलेट के सापेक्ष URL शामिल होना चाहिए।

उदाहरण

आइए हम निम्नलिखित दो फाइलों का पुन: उपयोग करें (a) date.jsp तथा (b) main.jsp निम्नानुसार है -

निम्नलिखित की सामग्री है date.jsp फ़ाइल -

<p>Today's date: <%= (new java.util.Date()).toLocaleString()%></p>

निम्नलिखित की सामग्री है main.jsp फ़ाइल -

<html>
   <head>
      <title>The include Action Example</title>
   </head>
   
   <body>
      <center>
         <h2>The include action Example</h2>
         <jsp:forward page = "date.jsp" />
      </center>
   </body>
</html>

आइए अब हम इन सभी फाइलों को रूट डायरेक्टरी में रखते हैं और एक्सेस करने की कोशिश करते हैं main.jsp। यह नीचे की तरह कुछ परिणाम प्रदर्शित करेगा।

यहाँ इसने मुख्य पृष्ठ से सामग्री को छोड़ दिया और केवल अग्रेषित पृष्ठ से सामग्री प्रदर्शित की।

Today's date: 12-Sep-2010 14:54:22

<Jsp: plugin> क्रिया

pluginजावा घटक को JSP पेज में डालने के लिए क्रिया का उपयोग किया जाता है। यह ब्राउज़र के प्रकार को निर्धारित करता है और सम्मिलित करता है<object> या <embed> आवश्यकतानुसार टैग।

यदि आवश्यक प्लगइन मौजूद नहीं है, तो यह प्लगइन डाउनलोड करता है और फिर जावा घटक को निष्पादित करता है। जावा घटक या तो एक एप्लेट या एक जावाबीन हो सकता है।

प्लगइन कार्रवाई में कई विशेषताएं हैं जो जावा घटकों को प्रारूपित करने के लिए उपयोग किए जाने वाले सामान्य HTML टैग के अनुरूप हैं। <param> तत्व का उपयोग एप्लेट या बीन के मापदंडों को भेजने के लिए भी किया जा सकता है।

प्लगइन क्रिया का उपयोग करने का विशिष्ट सिंटैक्स निम्नलिखित है -

<jsp:plugin type = "applet" codebase = "dirname" code = "MyApplet.class"
   width = "60" height = "80">
   <jsp:param name = "fontcolor" value = "red" />
   <jsp:param name = "background" value = "black" />
 
   <jsp:fallback>
      Unable to initialize Java Plugin
   </jsp:fallback>
 
</jsp:plugin>

यदि आप रुचि रखते हैं तो आप कुछ एप्लेट का उपयोग करके इस क्रिया को आजमा सकते हैं। एक नया तत्व,<fallback> घटक विफल होने पर उपयोगकर्ता को भेजे जाने के लिए एक त्रुटि स्ट्रिंग निर्दिष्ट करने के लिए उपयोग किया जा सकता है।

The <jsp:element> Action

The <jsp:attribute> Action

The <jsp:body> Action

<jsp:element>, <jsp:attribute> तथा <jsp:body>XML तत्वों को गतिशील रूप से परिभाषित करने के लिए क्रियाओं का उपयोग किया जाता है। शब्द गतिशील रूप से महत्वपूर्ण है, क्योंकि इसका मतलब है कि XML तत्वों को संकलित समय के बजाय सांख्यिकीय रूप से अनुरोध समय पर उत्पन्न किया जा सकता है।

XML तत्वों को गतिशील रूप से परिभाषित करने के लिए एक सरल उदाहरण निम्नलिखित है -

<%@page language = "java" contentType = "text/html"%>
<html xmlns = "http://www.w3c.org/1999/xhtml"
   xmlns:jsp = "http://java.sun.com/JSP/Page">
   
   <head><title>Generate XML Element</title></head>
   
   <body>
      <jsp:element name = "xmlElement">
         <jsp:attribute name = "xmlElementAttr">
            Value for the attribute
         </jsp:attribute>
         
         <jsp:body>
            Body for XML element
         </jsp:body>
      
      </jsp:element>
   </body>
</html>

यह निम्न समय में निम्न HTML कोड का उत्पादन करेगा -

<html xmlns = "http://www.w3c.org/1999/xhtml" xmlns:jsp = "http://java.sun.com/JSP/Page">
   <head><title>Generate XML Element</title></head>
   
   <body>
      <xmlElement xmlElementAttr = "Value for the attribute">
         Body for XML element
      </xmlElement>
   </body>
</html>

<Jsp: पाठ> क्रिया

<jsp:text>JSP पृष्ठों और दस्तावेजों में टेम्प्लेट पाठ लिखने के लिए क्रिया का उपयोग किया जा सकता है। इस क्रिया के लिए सरल वाक्यविन्यास निम्नलिखित है -

<jsp:text>Template data</jsp:text>

टेम्पलेट के मुख्य भाग में अन्य तत्व नहीं हो सकते; इसमें केवल पाठ और ईएल अभिव्यक्तियाँ हो सकती हैं (ध्यान दें - ईएल अभिव्यक्तियों को बाद के अध्याय में समझाया गया है)। ध्यान दें कि XML फ़ाइलों में, आप इस तरह के भाव का उपयोग नहीं कर सकते हैं${whatever > 0}, क्योंकि संकेतों से अधिक अवैध हैं। इसके बजाय, उपयोग करेंgt रूप, जैसे ${whatever gt 0} या एक विकल्प एक में मान एम्बेड करने के लिए है CDATA अनुभाग।

<jsp:text><![CDATA[<br>]]></jsp:text>

यदि आपको शामिल करने की आवश्यकता है DOCTYPE उदाहरण के लिए, घोषणा XHTML, तुम भी उपयोग करना चाहिए <jsp:text> तत्व इस प्रकार है -

<jsp:text><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "DTD/xhtml1-strict.dtd">]]></jsp:text>

   <head><title>jsp:text action</title></head>
   
   <body>
      <books><book><jsp:text>  
         Welcome to JSP Programming
      </jsp:text></book></books>
   </body>
</html>

उपरोक्त उदाहरण के साथ और बिना कोशिश करें <jsp:text> कार्रवाई।