जेएसपी में अभिव्यक्ति भाषा
अभिव्यक्ति भाषा (ई.एल.) क्या है?
अभिव्यक्ति भाषा (ईएल) एक ऐसी प्रणाली है जो संग्रहीत डेटा की पहुंच को सरल बनाती है Java बीन घटक और अन्य ऑब्जेक्ट जैसे अनुरोध, सत्र और अनुप्रयोग, आदि।
JSP में कई ऑपरेटर हैं जिनका उपयोग EL में अभिव्यक्ति करने के लिए अंकगणितीय और तार्किक ऑपरेटर की तरह किया जाता है। इसे JSP 2.0 में पेश किया गया था
अभिव्यक्ति भाषा (ईएल) का जेएसपी सिंटैक्स
ई.एल. का वाक्यविन्यास :$(अभिव्यक्ति)
- जेएसपी में, ब्रेसेज़ में जो कुछ भी मौजूद होता है उसका मूल्यांकन रनटाइम पर किया जाता है तथा आउटपुट स्ट्रीम पर भेजा जाता है।
- अभिव्यक्ति एक वैध EL अभिव्यक्ति है और इसे स्थैतिक पाठ के साथ मिश्रित किया जा सकता है तथा अन्य अभिव्यक्ति के साथ संयोजित करके बड़ी अभिव्यक्ति बनाई जा सकती है।
JSP में एक्सप्रेशन कैसे काम करता है, इस बारे में बेहतर जानकारी पाने के लिए, हम नीचे दिए गए उदाहरण को देखेंगे। इस उदाहरण में, हम देखेंगे कि दो संख्याओं (1+2) को जोड़ने और क्रमशः आउटपुट प्राप्त करने के लिए EL का उपयोग ऑपरेटर के रूप में कैसे किया जाता है।
<%@ 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 JSP1</title> </head> <body> <a>Expression is:</a> ${1+2}; </body> </html>
कोड की व्याख्या:
- कोड लाइन 11: एक्सप्रेशन लैंग्वेज (ईएल) को वहां सेट किया गया है जहां हम दो संख्याओं 1+2 को जोड़ रहे हैं, इसलिए यह 3 आउटपुट देगा।
जब आप उपरोक्त कोड निष्पादित करेंगे, तो आपको निम्नलिखित आउटपुट प्राप्त होगा।
उत्पादन:
- अभिव्यक्ति है: 3 (चूंकि संख्या 1+2 जोड़ी जाएगी और आउटपुट के रूप में काम करेगी)
प्रवाह नियंत्रण कथन:
जेएसपी की शक्ति प्रदान करता है Java एप्लिकेशन में एम्बेड किया जाना है। हम सभी API और बिल्डिंग ब्लॉक का उपयोग कर सकते हैं Java in जेएसपी प्रोग्रामिंग इसमें नियंत्रण प्रवाह विवरण शामिल हैं जिसमें निर्णय लेना और लूप विवरण शामिल हैं।
नीचे दो प्रकार के प्रवाह नियंत्रण कथन वर्णित हैं;
- निर्णय लेने संबंधी वक्तव्य
- लूप विवरण
निर्णय लेने संबंधी वक्तव्य:
JSP में निर्णय लेने वाला कथन इस बात पर आधारित होता है कि शर्त सेट सत्य है या असत्य। कथन तदनुसार व्यवहार करेगा।
नीचे दो प्रकार के निर्णय लेने वाले वक्तव्यों का वर्णन किया गया है:
- यदि – अन्यथा
- स्विच
जेएसपी यदि-अन्यथा
"यदि अन्यथा" कथन सभी नियंत्रण प्रवाह कथनों का मूल है, और यह प्रोग्राम को कोड के निश्चित भाग को तभी निष्पादित करने के लिए कहता है जब विशेष परीक्षण सत्य का मूल्यांकन करता है।
इस स्थिति का उपयोग एक से अधिक स्थितियों के परीक्षण के लिए किया जाता है कि वे सत्य हैं या असत्य।
- यदि पहली शर्त सत्य है तो “if ब्लॉक” निष्पादित होता है और
- यदि यह गलत है तो “else block” निष्पादित किया जाता है
if – else कथन के लिए सिंटैक्स:
If(test condition) { //Block of statements } else { //Block of statements }
इस उदाहरण में, हम चर लेकर और मान की जाँच करके “if else” स्थिति का परीक्षण करने जा रहे हैं कि क्या चर उसके आरंभिक मान से मेल खाता है:
<%@ 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 JSP2</title> </head> <body> <%! int month=5; %> <% if(month==2){ %> <a>Its February</a> <% }else{ %> <a>Any month other than February</a> <%} %> </body> </html>
कोड का स्पष्टीकरण:
- कोड लाइन 10: अभिव्यक्ति टैग में महीने नामक चर को 5 से आरंभ किया गया है
- कोड लाइन 11: ईएल टैग में "यदि शर्त" है जो यह बताती है कि यदि महीना 2 के बराबर है (शर्त का परीक्षण यहां सत्य या असत्य के रूप में किया जाता है)
- कोड लाइन 12: यदि शर्त सत्य है अर्थात चर महीना 2 है तो यह आउटपुट स्ट्रीम पर प्रिंट करेगा
- कोड लाइन 13-15: यदि उपरोक्त if शर्त विफल हो जाती है तो यह अन्य सभी मामलों के लिए else भाग में चली जाएगी जहां कथन आउटपुट स्ट्रीम पर प्रिंट होगा और शर्त बंद हो जाएगी
जब आप उपरोक्त कोड निष्पादित करेंगे, तो आपको निम्नलिखित आउटपुट प्राप्त होगा।
आउटपुट:
- चूँकि हमारे पास महीना 5 है जो #2 (फरवरी) के बराबर नहीं है। इसलिए, हमारे पास आउटपुट है “फरवरी के अलावा कोई भी महीना” (महीना 5 के रूप में उल्लेख किया गया है इसलिए अन्य निष्पादित हैं)
जेएसपी स्विच
स्विच स्टेटमेंट के मुख्य भाग को "स्विच ब्लॉक" कहा जाता है।
- स्विच केस का उपयोग संभावित निष्पादन पथों की संख्या की जांच करने के लिए किया जाता है।
- स्विच का उपयोग सभी डेटा प्रकारों के साथ किया जा सकता है
- स्विच स्टेटमेंट में एक से अधिक केस और एक डिफ़ॉल्ट केस शामिल होता है
- यह अभिव्यक्ति का मूल्यांकन करता है और फिर मिलान मामले के बाद सभी कथनों को निष्पादित करता है
स्विच स्टेटमेंट के लिए सिंटैक्स:
switch (operator) { Case 1: Block of statements break; Case 2: Block of statements break; case n: Block of statements break; default: Block of statements break; }
- स्विच ब्लॉक एक पैरामीटर से शुरू होता है, जो ऑपरेटर है जिसे पास किया जाना चाहिए और
- फिर अलग-अलग मामले होते हैं जो शर्त प्रदान करते हैं और जो भी ऑपरेटर से मेल खाता है उस मामले को निष्पादित किया जाता है।
नीचे दिए गए उदाहरण में, हमने एक चर सप्ताह परिभाषित किया है, और इसका मिलान उस मामले से किया जाता है जो भी सत्य है। इस मामले में, सप्ताह 2 है इसलिए 2nd केस का मिलान किया गया है, और आउटपुट मंगलवार है:
<%@ 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 JSP3</title> </head> <body> <%! int week=2; %> <% switch(week){ case 0: out.println("Sunday"); break; case 1: out.println("Monday"); break; case 2: out.println("Tuesday"); break; case 3: out.println("wednesday"); break; case 4: out.println("Thursday"); break; case 5: out.println("Friday"); break; default: out.println("Saturday"); } %> </body> </html>
कोड की व्याख्या:
- कोड लाइन 10: अभिव्यक्ति टैग में सप्ताह नामक चर को 2 से आरंभ किया गया है
- कोड लाइन 11: ईएल टैग में स्विच केस की शुरुआत वहां होती है जहां सप्ताह को पैरामीटर के रूप में पास किया जाता है
- कोड लाइन 12 – 29: केस 0 से लेकर केस 5 तक सभी मामलों का उल्लेख किया गया है, जहाँ सप्ताह पैरामीटर का मान केसों से मेल खाता है, और तदनुसार आउटपुट प्रिंट होता है। इस मामले में, मान 2 है इसलिए इस मामले में केस 2 निष्पादित किया जाएगा। यहाँ “out” JSP का क्लास है जो जेनरेटेड रिस्पॉन्स के लिए आउटपुट स्ट्रीम लिखता है और “println” उस क्लास का एक तरीका है।
- कोड लाइन 30-32: यदि उपरोक्त सभी मामले विफल हो जाते हैं तो यह डिफ़ॉल्ट भाग में चला जाएगा और निष्पादित हो जाएगा, जहां कथन आउटपुट स्ट्रीम पर प्रिंट होगा और स्थिति बंद हो जाएगी
जब आप उपरोक्त कोड निष्पादित करेंगे, तो आपको निम्नलिखित आउटपुट प्राप्त होगा।
आउटपुट:
- इस केस में आउटपुट मंगलवार है क्योंकि इसे दूसरा केस कहा जाता है।
लूप विवरण
JSP फॉर लूप
इसका उपयोग किसी निश्चित स्थिति के लिए तत्वों की पुनरावृत्ति के लिए किया जाता है, और इसके तीन पैरामीटर होते हैं।
- परिवर्तनीय काउंटर आरंभीकृत किया गया है
- लूप निष्पादित होने तक की स्थिति
- काउंटर को बढ़ाना होगा
फॉर लूप सिंटैक्स:
For(inti=0;i<n;i++) { //block of statements }
इस उदाहरण में, हमारे पास for loop है जो तब तक चलता है जब तक counter दी गई संख्या से कम नहीं हो जाता:
<%@ 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 JSP4</title> </head> <body> <%! int num=5; %> <% out.println("Numbers are:"); for(int i=0;i<num;i++){ out.println(i); }%> </body> </html>
कोड के लिए स्पष्टीकरण:
- कोड लाइन 10: अभिव्यक्ति टैग में “num” नामक चर को 5 से आरंभ किया गया है
- कोड लाइन 11-14: ईएल टैग में, "आउट" जेएसपी का क्लास है और "प्रिंटलाइन" आउट की विधि है जो आउटपुट स्ट्रीम में प्रिंट करता है और फॉर लूप शुरू होता है जिसमें तीन पैरामीटर होते हैं:
- चर i को 0 पर आरंभ किया गया है,
- शर्त दी गई है जहाँ i स्थानीय चर num से कम है,
- और प्रत्येक बार लूप के पुनरावृति होने पर i की मात्रा बढ़ाई जाती है।
"forloop" के मुख्य भाग में, JSP का एक वर्ग होता है जो println विधि का उपयोग करके आउटपुट स्ट्रीम में प्रिंट करता है, जहाँ हम वेरिएबल i को प्रिंट कर रहे हैं।
जब आप उपरोक्त कोड निष्पादित करेंगे, तो आपको निम्नलिखित आउटपुट प्राप्त होगा।
आउटपुट:
- उत्पादन Numbers 0 1 2 3 4 हैं। इस उदाहरण में, हम शर्त दे रहे हैं कि जब तक काउंटर किसी चर के बराबर से कम न हो जाए, तब तक "फॉर लूप" को निष्पादित किया जाना चाहिए। संख्या 5 है, इसलिए लूप 0 से शुरू होगा और 4 (5 बार) तक चलेगा। इसलिए आउटपुट।
JSP While लूप
इसका प्रयोग पुनरावृत्ति करने के लिए किया जाता है तत्व जिसमें इसकी स्थिति का एक पैरामीटर है।
सिंटेक्स:
While(i<n) { //Block of statements }
इस उदाहरण में, हमारे पास एक while लूप है जो तब तक दोहराया जाएगा जब तक दिन काउंटर के बराबर से अधिक न हो जाए:
<%@ 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 JSP5</title> </head> <body> <%! int day=2; int i=1; %> <% while(day>=i){ if(day==i){ out.println("Its Monday"); break;} i++;} %> </body> </html>
कोड का स्पष्टीकरण:
- कोड लाइन 10: अभिव्यक्ति टैग में i नामक चर को 1 से आरंभ किया गया है तथा दिन को 2 से आरंभ किया गया है
- कोड लाइन 11-17: ईएल टैग में, "जबकि लूप" तब तक दोहराया जाएगा जब तक कि हमारे पास एक शर्त सेट न हो, जैसे कि यदि दिन i चर से बड़ा या बराबर है तो यह सत्य होगा। (दिन> = i) इसके भीतर "यदि स्थिति" (दिन i के बराबर है) और "यदि स्थिति" सत्य है तो यह आउटपुट स्ट्रीम प्रिंट करेगा, और यह while लूप से बाहर निकल जाएगा अन्यथा i चर बढ़ जाता है और लूप दोहराया जाता है।
जब हम कोड निष्पादित करेंगे, तो हमें निम्नलिखित आउटपुट प्राप्त होगा
आउटपुट है:
- इस कोड का आउटपुट होगा “its Monday".
JSP Operaमरोड़
JSP Operaटोर अपने अधिकांश अंकगणितीय और तार्किक ऑपरेटरों का समर्थन करता है जो इसके द्वारा समर्थित हैं जावा अभिव्यक्ति भाषा (ईएल) टैग के भीतर। अक्सर इस्तेमाल किए जाने वाले ऑपरेटर नीचे दिए गए हैं:
ऑपरेटर निम्नलिखित हैं:
. | बीन प्रॉपर्टी या मैप प्रविष्टि तक पहुँचें |
[] | किसी सारणी या सूची तत्व तक पहुँचें |
() | मूल्यांकन क्रम बदलने के लिए उप-अभिव्यक्ति को समूहीकृत करें |
+ | इसके अलावा |
- | किसी मान का घटाव या निषेध |
* | गुणन |
/ या div | विभाजन |
% या मॉड | मोडुलो (शेष) |
== या समतुल्य | समानता के लिए परीक्षण |
!= या ne | असमानता के लिए परीक्षण |
< या lt | से कम के लिए परीक्षण |
> या जीटी | इससे अधिक के लिए परीक्षण करें |
<= या ले | कम या बराबर के लिए परीक्षण करें |
>= या जीई | अधिक या बराबर के लिए परीक्षण |
&& या और | तार्किक AND के लिए परीक्षण |
|| या या | तार्किक OR के लिए परीक्षण |
! या नहीं | यूनरी बूलियन पूरक |
खाली | रिक्त चर मानों के लिए परीक्षण करें |
इस उदाहरण में,
- हम दो चर num1 और num2 घोषित कर रहे हैं और फिर एक चर num3 लेते हैं, जहाँ हम num1 और num2 को जोड़ने के लिए JSP ऑपरेटर + by का उपयोग करते हैं और num3 प्राप्त करते हैं।
- फिर हम JSP ऑपरेटर (!=, >) और का उपयोग करके यह जाँचते हैं कि num3 0 के बराबर तो नहीं है।
- फिर एक अन्य चर num4 लें, num1 और num2 को गुणा करके हमें num4 प्राप्त होता है।
इन सभी संख्याओं को हमारे आउटपुट के रूप में प्रिंट किया जाना चाहिए:
<%@ 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 JSP6</title> </head> <body> <% int num1=10; int num2 = 50; int num3 = num1+num2; if(num3 != 0 || num3 > 0){ int num4= num1*num2; out.println("Number 4 is " +num4); out.println("Number 3 is " +num3); }%> </body> </html>
कोड का स्पष्टीकरण:
- कोड लाइन 10: अभिव्यक्ति टैग में num1 नामक चर को 10 और num2 नामक चर को 50 पर आरंभीकृत किया गया है
- कोड लाइन 11: चर num3, num1 और num2 का योग है जहाँ हम योग ऑपरेटर का उपयोग कर रहे हैं
- कोड लाइन 12-16: EL टैग में, हमने OR कंडीशन का इस्तेमाल किया है जो तार्किक ऑपरेटर और अंकगणितीय ऑपरेटर है, यह जाँचने के लिए कि if कंडीशन में num3 0 से बड़ा है या नहीं। OR का इस्तेमाल तब किया जाता है जब कोई एक कंडीशन सत्य होती है, ऐसे मामले में यह “if केस” में प्रवेश करेगा जहाँ हम दो संख्याओं “num1” और “num2” को गुणा कर रहे हैं और “num4” में आउटपुट प्राप्त कर रहे हैं और यह आउटपुट स्ट्रीम को प्रिंट करेगा।
जब आप उपरोक्त कोड निष्पादित करेंगे, तो आपको निम्नलिखित आउटपुट प्राप्त होगा।
आउटपुट:
- पहला आउटपुट है संख्या 4 500 है (चर num4 जो num1*num2 है)
- दूसरा आउटपुट है संख्या 3 60 है (चर num3 जो num1+num2 है)
सारांश
- जेएसपी एक्सप्रेशन लैंग्वेज (ईएल) जावाबीन्स घटकों में संग्रहीत डेटा के लिए एप्लिकेशन तक पहुंच को आसान बनाता है।
- यह उन अभिव्यक्तियों को बनाने की भी अनुमति देता है जो अंकगणितीय और तार्किक दोनों हैं।
- EL टैग के भीतर हम पूर्णांक, फ्लोटिंग पॉइंट संख्या, स्ट्रिंग और बूलियन मान का उपयोग कर सकते हैं।
- JSP में हम EL टैग का उपयोग करके लूप और निर्णय लेने वाले कथनों का भी उपयोग कर सकते हैं