दिलचस्प पोस्ट
फाइल अपलोड करने के लिए एमवीसी में अजाक्स। बेनिफॉर्म सी ++ कोड से मानव पठनीय एएसटी प्राप्त करें यह लौटने से बचने के लिए कन्स्ट्रक्टर किस मूल्य वापस कर सकता है? क्या HTML 4/5 के साथ JSF + फेसलेट उपयोग करना संभव है? अजगर में वर्तमान समय कैसे प्राप्त करें? स्क्रीन के आकार, वर्तमान वेब पेज और ब्राउज़र विंडो को प्राप्त करें क्या एक विदेशी कुंजी स्वतः एक सूचकांक बनाती है? पायथन में मैं कैसे "सीडी" करूँ? जावा विधि से 2 मान वापस कैसे करें? क्या मैं एचटीएमएल 5 नंबर इनपुट के स्पिन बॉक्स को छिपा सकता हूं? कैसे ScrollView के अंदर GridView डाल करने के लिए वीबीए में उप-डीडी की सूची प्राप्त करें एंड्रॉइड पर Google क्लाउड मैसेजिंग में पंजीकरण आईडी को संभालना <Div> अंदर <p> एक अतिरिक्त जोड़ रहा है <p> मैं अज्ञात लंबाई की एक इनपुट स्ट्रिंग कैसे पढ़ सकता हूं?

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(); }