2011-03-01 13 views
8

मैं जावा ईई 6 पर एक किताब पढ़ रहा हूँ और मैं निम्नलिखित भागों के साथ मुलाकात की:सत्र सेम के संवादी राज्य

"स्टेटलेस: सत्र सेम तरीकों के बीच कोई बातचीत राज्य होता है, और किसी भी उदाहरण हो सकता है किसी भी ग्राहक के लिए इस्तेमाल किया। "

"स्टेटफुल: सत्र बीन में बातचीतत्मक स्थिति होती है, जिसे एक उपयोगकर्ता के लिए विधियों में बनाए रखा जाना चाहिए।"

"बातचीत स्थिति" का क्या अर्थ है? क्या किसी को असली दुनिया का उदाहरण समझाने के लिए है?

अग्रिम धन्यवाद।

II। बीन्स का यह वर्गीकरण इतना महत्वपूर्ण क्यों है? यह या तो शुरुआती स्पष्टीकरण के साथ कुछ भी नहीं बताता है (शुरुआत में) तो आपको धन्यवाद, मुझे तार्किक अंतर मिला, लेकिन इस तरह का व्यवहार इतना महत्वपूर्ण क्यों है?

उत्तर

11

सबसे बुनियादी, "बातचीत स्थिति" में उदाहरण फ़ील्ड के मान को संदर्भित किया गया है।

स्टेटलेस सत्र बीन्स के लिए, कंटेनर गारंटी नहीं देता है कि बाद की विधि चालान उसी ईजेबी इंस्टेंस (पूल से) का उपयोग करेंगे, इसलिए आप यह नहीं मान सकते कि जब आप बीन विधि को कॉल करते हैं तो आपके द्वारा रखे गए मूल्य अभी भी वहां होंगे जब आप विधि को फिर से कॉल करते हैं (या बीन की दूसरी विधि)।

राज्यव्यापी सत्र बीन्स के लिए, कंटेनर गारंटी देता है कि बाद की कॉल एक ही ईजेबी इंस्टेंस का उपयोग करेगी, इसलिए आप उदाहरण फ़ील्ड मान रख सकते हैं।

उदाहरण के लिए, कहें कि आपके पास एक बीन है जिसमें वृद्धि() और पुनर्प्राप्ति() विधि है। वृद्धि संग्रहित मूल्य को बढ़ाती है, और पुनर्प्राप्त वर्तमान संग्रहित मूल्य प्राप्त करता है।

एक स्टेटलेस सत्र बीन के लिए, यदि आप वृद्धि() विधि को 5 बार कहते हैं, तो यह गारंटी नहीं है कि जब आप पुनर्प्राप्ति() करते हैं, तो आपको 5 मिल जाएगा। यह कंटेनर पर निर्भर करता है जो ईजेबी आपके कॉल को सौंपा जाएगा। तो यदि आपको एक नया ईजेबी उदाहरण सौंपा गया है, तो आपको शून्य मिलेगा। यह भी संभव है कि कंटेनर ने आपके ईजेबी इंस्टेंस को साफ़ नहीं किया है, इसलिए 5 प्राप्त करना संभव हो सकता है - लेकिन इसकी गारंटी नहीं है।

एक राज्य सत्र सत्र बीन के लिए, यदि आप मूल्य को पुनर्प्राप्त करते समय 5 गुना वृद्धि विधि कहते हैं, तो आपको 5 मिलेंगे। कंटेनर गारंटी देता है कि पहली बार इस्तेमाल किए जाने वाले ईजेबी का उपयोग सभी के लिए किया जाएगा बाद की कॉल

+0

धन्यवाद आप समय और प्रयास के लिए, यदि आप समय है आप मेरी दूसरी द्वितीय व्याख्या कर सकते हैं। सवाल ? – cscsaba

4

एक बातचीत स्थिति का असली दुनिया उदाहरण शॉपिंग कार्ट होगा। एक उपयोगकर्ता शॉपिंग कार्ट में एक से एक आइटम जोड़ सकता है और फिर चेकआउट कॉल कर सकता है। सभी अतिरिक्त समय

मान लीजिए कि कार्ट राज्यपूर्ण है, यानी यह बातचीत स्थिति रखेगी।

cart.add(item1); // suppose cart keep tracks of item by adding it to ArrayList 
cart.add(item2); 

cart.checkOut(); // at this stage both item1 and item2 would be there in ArrayList. 

यदि कार्ट स्टेटलेस है, तो प्रत्येक कॉल पिछले लोगों से स्वतंत्र होगी और चेकआउट पर इसमें कुछ भी नहीं हो सकता है।

आपके दूसरे बिंदु दोनों बीन्स के व्यवहार में अंतर के कारण भेद आवश्यक है। राज्य को बनाए रखना संसाधनों की आवश्यकता है इसलिए राज्य के बीन्स स्टेटलेस बीन्स के रूप में स्केलेबल नहीं हैं।

+0

आपके लिए समय और प्रयास धन्यवाद, यदि आपके पास समय है तो आप अपना दूसरा द्वितीय समझा सकते हैं। सवाल ? – cscsaba

+0

धन्यवाद फिर से एर्जी। – cscsaba

0
प्रश्न के दूसरे भाग के बारे में

, से जावा ईई 6 ट्यूटोरियल आप पढ़ सकते हैं निम्नलिखित:

जब touse सत्र बीन्स

यदि निम्न में से कोई

स्टेटफुल सत्र सेम उपयुक्त हैं शर्तें सच हैं।

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

प्रदर्शन में सुधार करने के लिए, यदि आप इनमें से कोई भी विशेषता रखते हैं तो आप एक स्टेटलेस सत्र बीन चुन सकते हैं।

  • बीन के राज्य में किसी विशिष्ट ग्राहक के लिए कोई डेटा नहीं है।
  • एक विधि विधि आमंत्रण में, बीन सभी ग्राहकों के लिए एक सामान्य कार्य करता है। उदाहरण के लिए, आप एक ऑनलाइन आदेश की पुष्टि करने वाले ईमेल भेजने के लिए एक स्टेटलेस सत्र बीन का उपयोग कर सकते हैं।
  • बीन एक वेब सेवा लागू करता है।

Java EE 6 Tutorial

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