दिलचस्प पोस्ट
Dll के लिए .NET फ़्रेमवर्क संस्करण निर्धारित करें पायथन में एकल अंडरस्कोर "_" वेरिएबल का उद्देश्य क्या है? मैं एक JAX-WS webservice क्लाइंट के लिए टाइमआउट कैसे सेट करूं? क्या System.nanoTime () पूरी तरह बेकार है? अंतराल सेट / कुशल ओवरलैप जुड़ने के बीच ओवरलैपिंग ढूँढना एंड्रॉइड – लैंडस्केप मोड अक्षम करें? SQL सर्वर में एन पंक्तियां चुनना TreeView कुछ नोड्स द्वारा चेकबॉक्स हटाएं ओवल आकार या सर्कल आकार पर यूआईमेजेस कैसे फसल करें? प्रोलॉग उत्तराधिकारी अंकन का परिणाम अधूरा परिणाम और अनंत लूप जीसीसी एक * ए * ए * ए * ए * ए (ए * ए * ए) * (ए * ए * ए) को क्यों अनुकूलित नहीं करता? मैं C ++ में एक छोटा शब्द कैसे लिखूं? डाटाब्लूल से ब्लॉब? लाइव इवेंट्स का उपयोग करके jQuery का ड्रैग एंड ड्रॉप सी / सी ++ प्रोग्रामिंग भाषा का आरंभीकरण आरम्भ करें?

JSF 2.0 में सत्र को कैसे अमान्य करना है?

JSF 2.0 एप्लिकेशन के भीतर सत्र को अमान्य करने का सबसे अच्छा तरीका क्या है? मुझे पता है कि जेएसएफ खुद सत्र को संभाल नहीं करता है। अभी तक मैं मिल सकता है

private void reset() { HttpSession session = (HttpSession) FacesContext.getCurrentInstance() .getExternalContext().getSession(false); session.invalidate(); } 
  1. क्या यह विधि सही है? ServletAPI को छूने के बिना कोई रास्ता है?
  2. एक परिदृश्य पर विचार करें जिसमें एक @SessionScoped सत्र @SessionScoped यूज्यूएफ़ उपयोगकर्ता के प्रवेश-लॉगआउट को संभालता है। मेरे पास एक ही बीन में यह विधि है अब जब मैं reset() विधि को कॉल करने के बाद आवश्यक डीबी अपडेट कर रहा हूं, तो मेरे वर्तमान सत्र का क्या होगा जो बीन से निकला है? यहां तक ​​कि बीन खुद ही HttpSession में जमा हो गया है?

वेब के समाधान से एकत्रित समाधान "JSF 2.0 में सत्र को कैसे अमान्य करना है?"

सबसे पहले, क्या यह विधि सही है? ServletAPI को छूने के बिना कोई रास्ता है?

आप Servlet API को प्राप्त करने के बिना सत्र को अमान्य करने के लिए ExternalContext#invalidateSession() का उपयोग कर सकते हैं

 @ManagedBean @SessionScoped public class UserManager { private User current; public String logout() { FacesContext.getCurrentInstance().getExternalContext().invalidateSession(); return "/home.xhtml?faces-redirect=true"; } // ... } 

मेरे वर्तमान सत्र का क्या होगा जो बीन से निकल जाएगा? यहां तक ​​कि बीन खुद ही एचटीटीपी सत्र में जमा हो गया है?

यह अभी भी वर्तमान प्रतिक्रिया में सुलभ होगा, लेकिन यह अगले अनुरोध में अब और नहीं होगा। इस प्रकार यह महत्वपूर्ण है कि अनुपयुक्त होने के बाद एक रीडायरेक्ट (एक नया अनुरोध) निकाल दिया गया है, अन्यथा आप अभी भी पुराने सत्र से डेटा प्रदर्शित कर रहे हैं एक पुनर्निर्देशन faces-redirect=true जोड़कर किया जा सकता है faces-redirect=true परिणाम के रूप में, जैसा कि मैंने ऊपर के उदाहरण में किया था। पुनर्निर्देश भेजने का एक अन्य तरीका ExternalContext#redirect() का उपयोग कर रहा है।

 public void logout() throws IOException { ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext(); ec.invalidateSession(); ec.redirect(ec.getRequestContextPath() + "/home.xhtml"); } 

इसका इस्तेमाल हालांकि इस संदर्भ में संदिग्ध है क्योंकि नेविगेशन परिणाम का उपयोग सरल है।

 public void logout() { FacesContext.getCurrentInstance().getExternalContext().invalidateSession(); }