दिलचस्प पोस्ट
सी ++ वेक्टर के तत्वों का योग कैसे करें? PHP के साथ मेमोरी में एक हेरफेर करें (डिस्क पर एक अस्थायी फ़ाइल बनाने के बिना) एंड्रॉइड – एप्लिकेशन (एपीके) अधिकतम आकार कैसे रस्सी में एक सरणी के रूप में एक टुकड़ा पाने के लिए? आप एक अंतरफलक के सभी कार्यान्वयन कैसे प्राप्त करते हैं? एंड्रॉइड स्रोत कोड का मुख्य तरीका क्या नहीं है और अभी भी चल रहा है? कार्यक्षेत्र-संरेखित छवि स्विंग जीयूआई कक्षाओं और श्रोताओं के साथ जेफाइलक्लोसर का उपयोग करना रूबी के लिए "|| =" परिचालित स्टैंड क्या है Centos 7 – खुले फ़ायरवॉल पोर्ट Scanf () का उपयोग करते हुए एक लाइन को पढ़ना अच्छा नहीं है? जावा – एक सीएसवी फ़ाइल में तार लेखन प्रमाणीकरण और प्राधिकरण विफलताओं के लिए लॉगिन पृष्ठ पर प्राधिकृत अनुमति क्यों अनुप्रेषित करता है? XmlSerializer श्रृंखलाबद्ध सामान्य इंटरफ़ेस की सूची क्यों नहीं मेरे कमजोर संदर्भ स्पष्ट कर रहे हैं के बाद मजबूत लोग चले गए हैं?

GetAttribute () और getParameter () के बीच का अंतर

HttpServletRequest वर्ग के भीतर getAttribute() और getParameter() तरीकों के बीच अंतर क्या है?

वेब के समाधान से एकत्रित समाधान "GetAttribute () और getParameter () के बीच का अंतर"

  • getParameter() HTTP अनुरोध मापदंडों को रिटर्न। क्लाइंट से सर्वर पर पास हो गए उदाहरण के लिए http://example.com/servlet?parameter=1 केवल String वापस कर सकते हैं

  • getAttribute() केवल सर्वर-साइड उपयोग के लिए है – आप ऐसे एट्रिब्यूट्स के साथ अनुरोध को भरते हैं जिसे आप उसी अनुरोध के भीतर उपयोग कर सकते हैं। उदाहरण के लिए – आप सर्वलेट में एक विशेषता सेट करते हैं, और इसे जेएसपी से पढ़ें। किसी भी ऑब्जेक्ट के लिए इस्तेमाल किया जा सकता है, केवल स्ट्रिंग नहीं

आम तौर पर, एक पैरामीटर एक स्ट्रिंग मान होता है जिसे क्लाइंट से सर्वर पर भेजा जाने वाला सबसे अधिक जाना जाता है (जैसे एक फॉर्म पोस्ट) और सर्वलेट अनुरोध से प्राप्त किया गया इसका निराशाजनक अपवाद ServletContext प्रारंभिक पैरामीटर है जो स्ट्रिंग मापदंड हैं जो web.xml में कॉन्फ़िगर किए गए हैं और सर्वर पर मौजूद हैं।

एक विशेषता एक सर्वर चर है जो एक निर्दिष्ट क्षेत्र के भीतर मौजूद है:

  • application , पूरे आवेदन के जीवन के लिए उपलब्ध है
  • session , session के जीवन के लिए उपलब्ध है
  • request , केवल request के जीवन के लिए उपलब्ध है
  • page (केवल जेएसपी), केवल वर्तमान जेएसपी पेज के लिए उपलब्ध है

यह जानना महत्वपूर्ण है कि विशेषताएं पैरामीटर नहीं हैं

विशेषताओं के लिए वापसी प्रकार एक ऑब्जेक्ट है , जबकि पैरामीटर के लिए रिटर्न टाइप स्ट्रिंग हैgetAttribute(String name) विधि को कॉल करते समय, ध्यान रखें कि विशेषताओं को डाली जाना चाहिए।

इसके अतिरिक्त, कोई सर्वलेट विशिष्ट विशेषताओं नहीं है , और कोई सत्र पैरामीटर नहीं हैं

इस पोस्ट को @ बोजो के उत्तर से कनेक्ट करने के उद्देश्य से लिखा गया है, जो अतिरिक्त जानकारी है जो अन्य लोगों के लिए उपयोगी हो सकता है

request.getParameter ()

हम अनुरोध मापदंडों को निकालने के लिए request.getParameter() का उपयोग करते हैं (यानी HTML फॉर्म पोस्ट करके भेजा गया डेटा)। request.getParameter() हमेशा String मान देता है और डेटा ग्राहक से आता है।

request.getAttribute ()

हम request.getAttribute() का प्रयोग करते हैं, ताकि ऑब्जेक्ट को सर्वर की ओर से अनुरोध के दायरे में जोड़ा जा सके, अर्थात request.setAttribute() का उपयोग कर। आप किसी भी तरह के ऑब्जेक्ट को यहां जोड़ सकते हैं, Strings , कस्टम ऑब्जेक्ट्स, वास्तव में कोई ऑब्जेक्ट आप अनुरोध को विशेषता जोड़ते हैं और अनुरोध को एक और संसाधन के लिए अग्रेषित करते हैं, ग्राहक को इसके बारे में नहीं पता है। इसलिए यह सभी कोड हैंडलिंग आमतौर पर जेएसपी / सर्विसलेट में होगा। आप अतिरिक्त जानकारी जोड़ने और मौजूदा अनुरोध को अग्रेषित / दूसरे संसाधन के लिए रीडायरेक्ट करने के लिए request.setAttribute() का उपयोग कर सकते हैं।

उदाहरण के लिए, first.jsp पर विचार करें,

 //First Page : first.jsp <%@ page import="java.util.*" import="java.io.*"%> <% request.setAttribute("PAGE", "first.jsp");%> <jsp:forward page="/second.jsp"/> 

और second.jsp:

 <%@ page import="java.util.*" import="java.io.*"%> From Which Page : <%=request.getAttribute("PAGE")%><br> Data From Client : <%=request.getParameter("CLIENT")%> 

अपने ब्राउज़र से, first.jsp चलाएं? क्लाइंट = आप और आपके ब्राउज़र पर आउटपुट है

 From Which Page : *first.jsp* Data From Client : you 

getParameter() getAttribute() और getParameter() बीच मूलभूत अंतर यह है कि पहली विधि एक ( getParameter() ) जावा ऑब्जेक्ट को निष्कर्ष getParameter() और getParameter() स्ट्रिंग मान प्रदान करता है। दोनों मामलों के लिए एक नाम दिया जाता है ताकि इसका मान (यह स्ट्रिंग या जावा बीन हो) को देखा जा सके और निकाला जा सके।

GetAttribute और getParameter के बीच का अंतर यह है कि getParameter एक पैरामीटर के मान वापस करेगा जो एक HTML प्रपत्र द्वारा सबमिट किया गया था या यह क्वेरी स्ट्रिंग में शामिल किया गया था। getAttribute आपके द्वारा अनुरोध में सेट किए गए ऑब्जेक्ट को रिटर्न देता है, केवल एक ही तरीका है जिसे आप RequestDispatcher के साथ जोड़ सकते हैं आप किसी अन्य संसाधन (JSP / Servlet) के अनुरोध को अग्रेषित करने के लिए एक RequestDispatcher का उपयोग करते हैं इसलिए आपके अनुरोध को अग्रेषित करने से पहले आप एक विशेषता सेट कर सकते हैं जो अगले संसाधन के लिए उपलब्ध होगा।

getParameter – का उपयोग आपको क्लाइंट के एचटीएमएल पेज से प्राप्त जानकारी प्राप्त करने के लिए किया जाता है

getAttribute – यह पहले से एक या एक ही JSP या Servlet पेज में निर्धारित पैरामीटर प्राप्त करने के लिए उपयोग किया जाता है

असल में, यदि आप अग्रेषित हैं या सिर्फ एक जेएसपी / सर्वलेट से दूसरे में जा रहे हैं, तो जब तक आप एक ऑब्जेक्ट में डाल देना नहीं चुनते हैं और एक सत्र चर में जमा करने के लिए सेट-

GetAttribute का उपयोग करना, आप सत्र चर पुनः प्राप्त कर सकते हैं।

– प्राप्त पीरामेटर () :

 <html> <body> <form name="testForm" method="post" action="testJSP.jsp"> <input type="text" name="testParam" value="ClientParam"> <input type="submit"> </form> </body> </html> <html> <body> <% String sValue = request.getParameter("testParam"); %> <%= sValue %> </body> </html> 

request.getParameter("testParam") को "testParam" नामक इनपुट बॉक्स के पोस्ट किए गए फॉर्म से मूल्य मिलेगा जो "क्लाइंट परम" है। यह तब इसे प्रिंट करेगा, इसलिए आपको स्क्रीन पर "क्लाइंट परम" देखना चाहिए। इसलिए request.getParameter () ग्राहक को सबमिट किए गए मान को पुनः प्राप्त करेगा। आपको सर्वर साइड पर मान मिलेगा

getAttribute (): request.getAttribute() , यह सब सर्वर साइड किया गया है आप अनुरोध को विशेषता जोड़ते हैं और आप किसी अन्य संसाधन के लिए अनुरोध सबमिट करते हैं, ग्राहक को इसके बारे में नहीं पता है। इसलिए यह सभी कोड हैंडलिंग आमतौर पर servlets में होगा। GetAttribute हमेशा ऑब्जेक्ट लौटाता है

एक अन्य मामले जब आप का उपयोग करना चाहिए .getParameter() है जब jsp में मापदंडों के साथ अग्रेषित करना:

 <jsp:forward page="destination.jsp"> <jsp:param name="userName" value="hamid"/> </jsp:forward> 

userName , आप इस तरह userName एक्सेस कर सकते हैं:

 request.getParameter("userName") 

से http://www.coderanch.com/t/361868/Servlets/java/request-getParameter-request-getAttribute

ए "पैरामीटर" क्लाइंट से सर्वर पर भेजा जाने वाला नाम / मान जोड़ी है – आमतौर पर, किसी HTML फ़ॉर्म से पैरामीटर में केवल स्ट्रिंग मान हो सकते हैं। कभी-कभी (उदाहरण के लिए एक GET अनुरोध का उपयोग करें) आप इन एन्कोडेड सीधे यूआरएल में देखेंगे (प्रत्येक के बाद प्रपत्र नाम = मूल्य में, और प्रत्येक जोड़ी एक से अलग हो जाएगी) अन्य बार, वे POST जैसे तरीकों का उपयोग करते समय, अनुरोध के शरीर में शामिल होते हैं।

एक "विशेषता" एक सर्वर-स्थानीय स्टोरेज तंत्र है – स्कॉप्ड एंट्रीब्यूज़ में संग्रहीत कुछ भी कभी भी सर्वर के बाहर प्रेषित नहीं हो जाता है, जब तक आप स्पष्ट रूप से ऐसा नहीं करते। विशेषताएँ स्ट्रिंग नाम हैं, लेकिन ऑब्जेक्ट मानों को संग्रहीत करें नोट करें कि गुण जावा (वे जावा ऑब्जेक्ट्स को संग्रहीत करते हैं) के लिए विशिष्ट हैं, जबकि पैरामीटर प्लेटफ़ॉर्म-स्वतंत्र हैं (वे केवल सामान्य बाइट्स से बना स्ट्रिंग हैं)।

कुल में कुल चार गुण हैं: "पृष्ठ" (केवल जेएसपी और टैग फाइलों के लिए), "अनुरोध" (वर्तमान ग्राहक के अनुरोध तक सीमित, अनुरोध पूरा होने के बाद नष्ट हो गया है), "सत्र" (ग्राहक के सत्र में संग्रहीत, अवैध सत्र समाप्त होने के बाद), "एप्लिकेशन" (आपके आवेदन के संपूर्ण नियोजित जीवनकाल के दौरान एक्सेस करने के लिए सभी घटकों के लिए मौजूद है)।

निचला रेखा है: क्लाइंट से डेटा प्राप्त करते समय पैरामीटर का उपयोग करें, केवल अपने अनुप्रयोग द्वारा आंतरिक रूप से उपयोग के लिए सर्वर पर वस्तुओं को संग्रहीत करते समय स्कॉन्द विशेषता का उपयोग करें।

GetAttribute () और getParameter () के बीच मूलभूत अंतर वापसी का प्रकार है।

 java.lang.Object getAttribute(java.lang.String name) java.lang.String getParameter(java.lang.String name)