JSP में मुझे URL से पैरामीटर कैसे मिलते हैं?
उदाहरण के लिए मेरे पास एक URL है जिसे www.somesite.com/Transaction_List.jsp?accountID=5
मैं प्राप्त करना चाहता हूं। 5.
क्या कोई अनुरोध है। सत्रांक ("खाता") जैसे सत्र या कुछ समान है?
JSP में मुझे URL से पैरामीटर कैसे मिलते हैं?
उदाहरण के लिए मेरे पास एक URL है जिसे www.somesite.com/Transaction_List.jsp?accountID=5
मैं प्राप्त करना चाहता हूं। 5.
क्या कोई अनुरोध है। सत्रांक ("खाता") जैसे सत्र या कुछ समान है?
जवाबों:
GET अनुरोध में, क्वेरी स्ट्रिंग (URL पर प्रश्न चिह्न के बाद का डेटा) से अनुरोध पैरामीटर लिया जाता है। उदाहरण के लिए, URL http://hostname.com?p1=v1&p2=v2 में दो अनुरोध पैरामीटर हैं - - p1 और P2। पोस्ट अनुरोध में, अनुरोध पैरामीटर क्वेरी स्ट्रिंग और पोस्ट किए गए डेटा दोनों से लिया जाता है जो अनुरोध के शरीर में एन्कोडेड है।
यह उदाहरण प्रदर्शित करता है कि जनरेट किए गए आउटपुट में अनुरोध पैरामीटर के मूल्य को कैसे शामिल किया जाए:
Hello <b><%= request.getParameter("name") %></b>!
यदि पृष्ठ URL से एक्सेस किया गया था:
http://hostname.com/mywebapp/mypage.jsp?name=John+Smith
परिणामी उत्पादन होगा:
Hello <b>John Smith</b>!
यदि नाम क्वेरी स्ट्रिंग पर निर्दिष्ट नहीं है, तो आउटपुट होगा:
Hello <b>null</b>!
यह उदाहरण किसी स्क्रिप्ट में क्वेरी पैरामीटर के मान का उपयोग करता है:
<%
if (request.getParameter("name") == null) {
out.println("Please enter your name.");
} else {
out.println("Hello <b>"+request. getParameter("name")+"</b>!");
}
%>
यूनिफाइड एक्सप्रेशन लैंग्वेज के निहित वस्तुओं के बारे में , जावा ईई 5 ट्यूटोरियल लिखते हैं:
प्रबल वस्तु
JSP अभिव्यक्ति भाषा निहित वस्तुओं के एक सेट को परिभाषित करती है:
pageContext
: जेएसपी पेज के लिए संदर्भ। सहित विभिन्न वस्तुओं के लिए पहुँच प्रदान करता है:
servletContext
: JSP पेज के सर्वलेट और उसी एप्लिकेशन में निहित किसी भी वेब घटक के लिए संदर्भ। वेब संदर्भ तक पहुँच देखें।session
: ग्राहक के लिए सत्र वस्तु। ग्राहक स्थिति बनाए रखना देखें।request
: JSP पेज के निष्पादन को ट्रिगर करने का अनुरोध। अनुरोध से जानकारी प्राप्त करना देखें ।response
: JSP पृष्ठ द्वारा प्रतिक्रिया लौटा दी गई। प्रतिक्रियाएँ देखना।- इसके अलावा, कई निहित वस्तुएँ उपलब्ध हैं जो निम्नलिखित वस्तुओं तक आसानी से पहुँच प्रदान करती हैं:
param
: एकल मान के लिए अनुरोध पैरामीटर नाम को मैप करता हैparamValues
: मूल्यों के एक सरणी के लिए एक अनुरोध पैरामीटर नाम मैप्सheader
: किसी एकल मान के लिए अनुरोध हेडर नाम को मैप करता हैheaderValues
: मूल्यों के एक सरणी के लिए एक अनुरोध हेडर नाम मैप्सcookie
: एकल कुकी के लिए कुकी नाम को मैप करता हैinitParam
: मैप्स एक संदर्भ इनिशियलाइज़ेशन पैरामीटर नाम को एक मूल्य पर- अंत में, ऐसी वस्तुएं हैं जो स्कोप ऑब्जेक्ट्स का उपयोग करके वर्णित विभिन्न स्कूप किए गए चर तक पहुंच की अनुमति देती हैं।
pageScope
: मैप्स पेज-स्कोपेड वैरिएबल नाम उनके मानों के लिएrequestScope
: मैप्स अनुरोध-स्कोप किए गए वैरिएबल नामों को उनके मानों के लिए कहते हैंsessionScope
: मैप्स सेशन-स्कोप्ड वैरिएबल नेम को उनके वैल्यूज मेंapplicationScope
: मैप्स एप्लीकेशन-स्कोप्ड वैरिएबल नेम को उनके मानों तक
दिलचस्प भाग बोल्ड में हैं :)
इसलिए, अपने प्रश्न का उत्तर देने के लिए, आपको इसे इस तरह से उपयोग करने में सक्षम होना चाहिए (ईएल का उपयोग करके):
${param.accountID}
या, JSP स्क्रिप्टलेट्स (अनुशंसित नहीं) का उपयोग कर :
<%
String accountId = request.getParameter("accountID");
%>
ईएल (JSP अभिव्यक्ति भाषा) का उपयोग करें:
${param.accountID}
<c:out value="${param.accountID}" />
ऐसा करने के लिए JSTL का उपयोग करें ।
अगर मैं यहाँ एक टिप्पणी जोड़ सकता हूँ ...
<c:out value="${param.accountID}"></c:out>
मेरे लिए काम नहीं करता है (यह एक 0 प्रिंट करता है)।
इसके बजाय, यह काम करता है:
<c:out value="${param['accountID']}"></c:out>
request.getParameter("accountID")
वह है जो आप ढूंढ रहे हैं। यह जावा सर्वलेट एपीआई का हिस्सा है। अधिक जानकारी के लिए http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html देखें ।
उदाहरण आप सब्जेक्ट रिकॉर्ड को इसके subject_id से हटाना चाहते थे
@RequestMapping(value="subject_setup/delete/{subjectid}",method = RequestMethod.GET)
public ModelAndView delete(@PathVariable int subjectid) {
subjectsDao.delete(subjectid);
return new ModelAndView("redirect:/subject_setup");
}
और पैरामीटर का उपयोग आपकी क्वेरी पर इनपुट के लिए किया जाएगा
public int delete(int subjectid) {
String sql = "update tbl_subject set isdeleted= '1' where id = "+subjectid+"";
return template.update(sql);
}
www.somesite.com/Transaction_List.jsp?accountID=5
इसके लिए java में URL
एक मेथड कॉल request.getParameter
है, यदि आप यहाँ एक कास्ट चाहते हैं int
, उसी तरह स्ट्रिंग वैल्यू के लिए string
। अपनी आवश्यकता के लिए, बस पृष्ठ में पंक्ति के नीचे अतीत कॉपी करें,
int accountId =(int)request.getParameter("accountID");
अब आप accountId
पूरे पृष्ठ में इस मान का उपयोग कर सकते हैं ।
यहां accountId
पैरामीटर का नाम है आप इसका उपयोग करके एक से अधिक पैरामीटर भी प्राप्त कर सकते हैं, लेकिन यह काम नहीं करता है। यह केवल GET
विधि के साथ काम करेगा यदि आप POST
अनुरोध को हिट करते हैं तो उनकी त्रुटि होगी।
आशा है कि यह उपयोगी है।