2009-05-14 20 views
6

में एचटीएमएल रूपों के उपयोग के बिना पैरामीटर पास करना मैंने कुछ शोध किया है, और उदाहरण के अधिकांश उदाहरणों में मुझे डेटा एकत्र करने के लिए उपयोग फॉर्म (स्पष्ट रूप से उपयोगकर्ता इनपुट के लिए) मिलते हैं जो अनुरोध ऑब्जेक्ट के माध्यम से किसी अन्य जेएसपी पृष्ठ पर पास किया जाता है।जेएसपी

मेरा प्रश्न है: क्या पैरामीटर को HTML <form> टैग में सेट नहीं किया गया है, तो जेएसपी पृष्ठों के बीच पैरामीटर पार करना संभव है? की तरह कुछ

<a href="/foo.jsp?bar=baz">Go to the next JSP page</a>, बनाम:

<form method="get" action="/foo.jsp"> 
<input name="bar" value="baz"> 
</form> 

किसी भी तरह से यह getParameter या getParameterValues के माध्यम से पहुँचा जा सकता है

+1

मेरे लिए यह पूरी तरह स्पष्ट नहीं है कि "जेएसपी पृष्ठों के बीच पैरामीटर पास करें" से आपका क्या मतलब है? क्या वे जेएसपी पेज ब्राउज़र से अलग अनुरोध हैं या क्या यह सर्वर-साइड अनुरोध प्रेषण है? और आप किस प्रकार का पैरामीटर पास करना चाहते हैं? उपयोगकर्ता इनपुट, कुछ प्रसंस्करण/उपयोगकर्ता स्थिति, ...? – rudolfson

उत्तर

5

कोई रास्ता नहीं एक JSP पेज एक मैन्युअल रूप से निर्माण प्राप्त यूआरएल के बीच का अंतर है, जैसे बता सकते है

क्या आप यही पूछ रहे हैं?

3

आप आमतौर पर स्कोप्ड विशेषताओं (अनुरोध, सत्र या एप्लिकेशन में) में सर्वलेट/जेएसपी या जेएसपी पृष्ठों के बीच डेटा पास करते हैं। जैसे request.setAttribute("key", data) एक जेएसपी में "कुंजी" विशेषता सेट कर सकता है, और request.getAttribute("key") आपको यह डेटा अन्य जेएसपी में प्राप्त करता है (यदि एकाधिक जेएसपी एक ही अनुरोध संसाधित कर रहे हैं)।

अपने अनुरोध को लपेटकर नकली पैरामीटर बनाना और गेट पैरामीटर और इसी तरह की विधि को ओवरराइड करना संभव है, अगर आपको वास्तव में आवश्यकता है।

अद्यतन: मेरा उत्तर कई पार्टियों के बीच डेटा पास करने के बारे में बात कर रहा है जो सभी प्रक्रिया एक ही अनुरोध है। यह हो सकता है कि आप क्या चाहते हैं या नहीं, क्योंकि आपका प्रश्न स्पष्ट नहीं है।

17

एक जेएसपी पृष्ठ से दूसरे में जानकारी पास करने के कुछ तरीके हैं।

1. छुपे हुए मूल्य।

बस 'छिपे हुए' प्रकार के साथ किसी फ़ॉर्म के भीतर इनपुट फ़ील्ड में डेटा लिखें, उदा।

<input type="hidden" name="mydata" value="<%=thedata%>"> 

इस प्रकार लिखा गया डेटा संबंधित फॉर्म सबमिट होने पर वापस पोस्ट किया जाएगा। यह जानकारी को 'साथ ले जाने' का एक उपयोगी तरीका हो सकता है क्योंकि उपयोगकर्ता संवाद की एक श्रृंखला भरता है क्योंकि सभी राज्य उपयोगकर्ता पक्ष हैं और बैक और फॉरवर्ड बटन अपेक्षा के अनुसार काम करेंगे।

2. यूआरएल लेखन।

पृष्ठ पर लिंक में यूआरएल के पैरामीटर संलग्न करें, उदा।

<a href="another.jsp?mydata=<%=thedata>>Go!</a> 

यह एक फॉर्म तत्व प्रस्तुत करने की आवश्यकता को हटाते समय ग्राहक के साथ राज्य को भी बनाए रखता है।

3. कुकीज़।

खुद के लिए बात करनी चाहिए। राज्य अभी भी उपयोगकर्ता पक्ष है लेकिन अब इसे कुकी द्वारा संभाला जाता है। कुछ तरीकों से अधिक नाजुक क्योंकि कुछ लोग कुकीज़ अक्षम करते हैं। इसके अलावा पीठ और आगे बटन अप्रत्याशित बातों ऐसा कर सकते हैं अगर आप सावधान नहीं हैं

4. सर्वर साइड (सत्र)

अंत में आप एक JSP पर एक सत्र चर में डाटा स्टोर और अगले पर इसे पुनः प्राप्त कर सकता है, जैसे

session.setAttribute(String key, Object value) 

और

session.getAttribute(String key) 
यहाँ

राज्य है रखा सर्वर साइड जो कुछ लाभ (उपयोगकर्ता दूर ब्राउज़ करें और उसके स्थान पर खोने के बिना लौट सकते है, लेकिन में वापस आ गया है और आगे बटन बनाने के लिए जाता है ब्राउज़र एक सा अविश्वसनीय जब तक आप सावधान कर रहे हैं। इसके अलावा मूल्य सभी पृष्ठों के लिए उपलब्ध है।

हालांकि यह लाभ है कि जानकारी ग्राहक को भेजा कभी नहीं है और इस प्रकार अधिक सुरक्षित और अधिक छेड़छाड़ सबूत है।

+0

एक पांचवां तरीका सर्वर पक्ष पोस्ट बनाने के लिए है। –