में सत्र में डेटा सहेजना मैं जे (2) ईई और वेब ऐप विकास की दुनिया में नया हूं लेकिन मैं इसके आस-पास अपना रास्ता तलाश रहा हूं और बहुत कुछ सीख रहा हूं। हर दिन मेरे लिए नई खोज का एक शानदार यात्रा है।जेएसएफ
मैं वर्तमान में एक परियोजना पर काम कर रहा हूं जिसमें मैं ग्लासफ़िश v2 पर विजुअल जेएसएफ वुडस्टॉक का उपयोग कर रहा हूं। मैं जेएसएफ के लिए भी काफी नया हूं।
ऐसे समय होते हैं जब मुझे अनुरोधों के बीच कुछ वस्तुओं को सहेजने की आवश्यकता होती है (उदाहरण के लिए MyObject कहें)। और जो मैंने अभी तक पढ़ और समझ लिया है, मुझे इन ऑब्जेक्ट्स को अलग-अलग अनुरोधों के बीच सहेजने के लिए सत्रों का उपयोग करने की आवश्यकता है। अब तक सब ठीक है।
बिल्कुल यह कैसे करना है जहां मेरी चिंता झूठ है। मुझे पता है कि जेएसपी में आप session.setAttribute("myObj", myObject)
का उपयोग कर सकते हैं जो ऑब्जेक्ट को कुकीज़ या यूआरएल रीराइट्स या छुपा फॉर्म वैरिएबल का उपयोग करके क्लाइंट साइड पर सहेज लेगा।
दूसरी तरफ, जेएसएफ में मैं सत्र स्कोप्ड बीन्स का उपयोग करता हूं, उदाहरण के लिए सत्रबीन 1 कहता हूं, और सत्र बीन 1 गुणों के रूप में वस्तुओं को सहेजता हूं (उदा। SessionBean1.setSomeOjb(myObj)
)। क्या इस के बारे में जाने का यह सही तरीका है?
मुझे लगता है कि इस तरह से ऐसा करने से सर्वर के अंत में स्मृति उपयोग में वृद्धि होगी क्योंकि प्रत्येक अनुरोध सत्र स्कीप्ड बीन, सत्र बीन 1 और सत्र बीन 1 में सहेजे गए myObject उदाहरणों द्वारा उपयोग की गई स्मृति का एक नया उदाहरण तैयार करेगा।
मैंने पढ़ा है कि आप FacesContext.getExternalContext().getSession/getSessionMap()
का उपयोग कर सकते हैं जो क्लाइंट साइड पर सत्र चर को सहेज लेगा।
तो आप किस विधि का सुझाव देंगे कि मैं सत्र का अनुरोध करने के लिए ऑब्जेक्ट्स को सहेजने के लिए सत्र स्कैन बीन या सत्रमैप का उपयोग करता हूं?
धन्यवाद।
"प्रत्येक अनुरोध सत्र स्कोप्ड बीन का एक नया उदाहरण तैयार करेगा" यह पूरी तरह से गलत है –