2013-02-22 16 views
6

मेरे पास HTTP अनुरोध javax.servlet.http.HttpServletRequest है जो JAX-RS का उपयोग कर जावा वेब सेवा में संभाले गए कुछ कोड में उपयोग किए जाने वाले मान में गुजर रहा है। जावा में POST फ़ंक्शन application/json का उपभोग कर रहा है। अनुरोध में पारित होने के दो संभावित मूल्य हैं, एक X और अन्य Y पर कॉल करें, मान लें कि दोनों स्ट्रिंग्स हैं। अनुरोध को कम से कम को दो मान्य मानों में से एक को 'मान्य' माना जाना आवश्यक है।गुम तत्व - शून्य या खाली?

जब अनुरोध आता है, तो X प्रदान किया जाता है और Y पूरी तरह से अनुरोध से बाहर रखा गया है, यह देखने के लिए उचित तरीका क्या है कि Y है? क्या आप यह देखने के लिए जांच करेंगे कि Y.isEmpty() या Y == null है? X प्रदान करने की गारंटी नहीं है Y मौजूद है, और इसके विपरीत।

+1

क्या आप सर्वलेट एपीआई के संदर्भ में बात कर रहे हैं? अर्थात। आप 'ServletRequest # getParameter()' और इसी तरह के बारे में बात कर रहे हैं? कृपया कम से कम शामिल एपीआई को स्पष्ट/टैग करें। मानक जावा एसई एपीआई में ऐसी कोई बात नहीं है। – BalusC

+1

अधिक जानकारी के साथ प्रश्न अद्यतन किया गया। यह जेएक्स-आरएस का उपयोग करने वाली एक जावा वेब सेवा है, और विशिष्ट कार्य JSON – Walls

+0

का उपभोग कर रहा है भविष्य में प्रश्न 'javax.servlet। * 'API से जुड़े प्रश्नों में, कृपया' [servlets] 'टैग का उपयोग करें। – BalusC

उत्तर

13

है में मौजूद है ,

http://example.com/context/servlet?x=foo 

तो यह null वापस आ जाएगी:

String x = request.getParameter("x"); // "foo" 
String y = request.getParameter("y"); // null 

एक पैरामीटर निर्दिष्ट किया जाता है, लेकिन इतना की तरह एक मूल्य नहीं है, तो

http://example.com/context/servlet?x=foo&y 

तो इसे रिक्त स्ट्रिंग वापस आ जाएगी:

String x = request.getParameter("x"); // "foo" 
String y = request.getParameter("y"); // "" 

भावना, सही बनाता है?

+0

स्पष्टीकरण के लिए धन्यवाद, यह उत्तर बिल्कुल वही है जो मुझे चाहिए था। फिर से धन्यवाद और मुझे भविष्य में servlets टैग याद होगा। (जब यह मुझे देता है स्वीकार करेगा) – Walls

+0

आपका स्वागत है। – BalusC

1

टेस्ट करता है, तो एक पैरामीटर अनुरोध

httpServletRequest.getParameter("Y") == null 

निम्नलिखित कोड पैरामीटर का मान का परीक्षण करती है अगर यह एक पैरामीटर पर सब इतना तरह तय नहीं है तो वर्तमान

if (httpServletRequest.getParameter("Y") != null) 
{ 
    String value = httpServletRequest.getParameter("Y"); 

    // Put your test code here. Include a empty value check 
} 
+0

आपको लाइन 'स्ट्रिंग मान = httpServletRequest.getParameter ("वाई") को स्थानांतरित करना चाहिए;' अगर-खंड से पहले अनुरोध को दो बार मूल्यांकन नहीं किया जाना चाहिए। –

+1

कोड कोड का एक ब्लॉक होने का इरादा नहीं है। मैं केवल यह इंगित कर रहा हूं कि पैरामीटर पारित किया गया है या नहीं। और उसके बाद पैरामीटर के मान की जांच करने के लिए इसका उपयोग कैसे करें। – mightyrick

+3

ओह, मैं देखता हूं, इसलिए दो बार पैरामीटर का अनुरोध करना यह दिखाने के लिए एक व्यावहारिक विकल्प है कि इसके साथ क्या करना है; मैं सहमत हूं, यह प्रत्येक पंक्ति का उद्देश्य स्पष्ट बनाता है। –

संबंधित मुद्दे