हमारे आवेदन 30 मिनट के बाद बंद लॉग करता है और प्रवेश पृष्ठ रीडायरेक्ट कर दिया जाता, मैं web.xml में सत्र टाइमआउट को निर्दिष्ट कर रहा हूँ और redirecting.I के लिए एक requestProcessor का उपयोग कर संदेश उपयोगकर्ता को दिखाने के लिए कह रही है चाहते हैं आपका सत्र समाप्त हो गया एक बार सत्र समाप्त हो जाता मैं कैसे that.Auto लॉग ऑफ कर सकते हैं? मैं पृष्ठ पर त्रुटि संदेश संकेत करने के लिए चाहते हैं "सत्र टाइमआउट है, फिर से लॉगिन करें"। तो मैं सत्र का पता कैसे लगा सकता हूं टाइमआउट है? क्या कोई विधि स्वचालित रूप से ट्रिगर होगी?ऑटो लॉग ऑफ एक बार सत्र समाप्त हो
उत्तर
एक गतिविधि परीक्षक बनाएं जो किसी भी उपयोगकर्ता गतिविधि (माउसक्लिक, कीप्रेस) के स्थान पर हर मिनट जांचता है और उपयोगकर्ता सक्रिय होने पर सत्र को जीवित रखने के लिए सर्वर की तरफ दिल की धड़कन करता है और उपयोगकर्ता नहीं करता है सक्रिय। जब 30 मिनट (या जो भी डिफ़ॉल्ट सत्र समय समाप्ति सर्वर साइड पर स्थापित किया गया है) के लिए कोई गतिविधि नहीं है, तो एक रीडायरेक्ट प्रदर्शन करते हैं।
लिए यहाँ क्लिक करें और कुंजी दबाने की घटनाओं और आग ajax अनुरोध बाध्य करने के लिए jQuery की थोड़ी मदद के साथ एक किकऑफ़ उदाहरण है।
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
$.active = false;
$('body').bind('click keypress', function() { $.active = true; });
checkActivity(1800000, 60000, 0); // timeout = 30 minutes, interval = 1 minute.
});
function checkActivity(timeout, interval, elapsed) {
if ($.active) {
elapsed = 0;
$.active = false;
$.get('heartbeat');
}
if (elapsed < timeout) {
elapsed += interval;
setTimeout(function() {
checkActivity(timeout, interval, elapsed);
}, interval);
} else {
window.location = 'http://example.com/expired'; // Redirect to "session expired" page.
}
}
</script>
एक Servlet
जो /heartbeat
पर सुनता है और करता बनाएं मूल रूप से सिर्फ निम्नलिखित:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
request.getSession();
}
सत्र जीवित रखने के लिए।
जब आप सत्र में लॉग इन हुए प्रयोक्ता की दुकान, यह "पूर्ण रूप से अपने" हो जाएगा लॉग आउट जब भी सत्र समाप्त हो। इसलिए आपको उपयोगकर्ता को मैन्युअल रूप से लॉगआउट करने की आवश्यकता नहीं है।
आप सर्वलेट सत्र का उपयोग कर रहे हैं, तो आप अगर सत्र jsp/सर्वलेट लौटने isNew() पद्धति का उपयोग करके नया है देखने के लिए जाँच कर सकते हैं। यदि हां, तो उपयोगकर्ता का सत्र समाप्त हो गया है और आप प्रासंगिक संदेश प्रदर्शित कर सकते हैं।
उपयोगकर्ता सत्र समाप्ति संदेश केवल समय के बाद ही दिखाया जाना चाहिए, आपके मामले में यह लॉगआउट के बाद भी प्रदर्शित होगा, जिसकी मुझे – sarah
एक श्रोता वर्ग HttpSessionListener
को लागू करने बनाएँ और web.xml
में परिभाषित जब किसी भी सत्र नष्ट हो जाता है यह आपको सूचित करेंगे। sessionDestroyed()
विधि का प्रयोग करें।
http://www.mkyong.com/servlet/a-simple-httpsessionlistener-example-active-sessions-counter/
की आवश्यकता नहीं है उपरोक्त समाधान ब्राउज़र को एक संवाद दिखाने के लिए मजबूर नहीं करेगा। –
उपरोक्त समाधान एप्लिकेशन को लॉगआउट के बाद भी संदेश को संकेत देने के लिए मजबूर करेगा, यह 30 मिनट का समाप्ति समय नहीं देखेगा और संदेश दिखाएगा – sarah
अपने JSP के अंदर एक जावास्क्रिप्ट उपयोगिता समारोह को शामिल करें और सर्वर हर 31 मिनट पिंग:
एक पूर्ण उदाहरण देखें। ऊपर उल्लेख किया उपयोगिता समारोह आंतरिक रूप से setTimeout() जे एस फ़ंक्शन का उपयोग किया जाना चाहिए।
setTimeout ("checkServerSession()", /* intervalInMilliSeconds */ 31000);
ध्यान दें कि
checkServerSession()
एक नियमित रूप से जे एस समारोह जो HTTP अनुरोध लागू किए जा सकते है। अगर अनुरोध सफल सत्र मौजूद है तो अन्यथा उपयोगकर्ता को संकेत दिखाएं।
मुझे एक उदाहरण बताएं, यह कैसे काम किया जा सकता है – sarah
- 1. एक्सएचआर लोडिंग समाप्त हो गया [...] लॉग संदेश
- 2. PHP: HTTP बेसिक - लॉग ऑफ
- 3. एएसपी.नेट सत्र समाप्त हो गया है या नहीं मिला -> सत्र सत्र सत्र (रिपोर्टिंग सेवाएं)
- 4. सत्र की अवधि समाप्त हो गई है या नहीं, एएसपीनेट
- 5. पीएचपी सत्र का समय समाप्त
- 6. टॉमकैट सत्र अप्रत्याशित रूप से समाप्त हो रहे हैं
- 7. माइक्रोसॉफ्ट रिपोर्ट व्यूअर: सत्र की अवधि समाप्त हो गई त्रुटियां
- 8. session.cookie_lifetime = 0 के दौरान सत्र बंद होने पर सत्र क्यों समाप्त नहीं हो रहा है?
- 9. PHP सत्र जल्द ही समाप्त हो जाते हैं
- 10. सी # कुकी - संपत्ति समाप्त हो जाएगी
- 11. फार्म प्रमाणीकरण समय समाप्त बनाम सत्र का समय समाप्त
- 12. सर्वर पर सत्र पहचानकर्ता को समाप्त करें
- 13. क्या होता है जब एक ऑटो-वृद्धिशील कॉलम समाप्त हो जाता है?
- 14. जब ब्राउज़र बंद हो जाता है तो Omniauth सत्र समाप्त हो जाता है
- 15. सत्र को कभी भी समाप्त नहीं होना चाहिए
- 16. पीएचपी कैसे पता लगाता है कि एक सत्र का समय समाप्त हो गया है?
- 17. ग्रहण मेनू बार (ऑटो-छुपाएं)
- 18. समस्याएं समय समाप्त हो गया हो रही घबराहट Analytics में घटनाओं
- 19. लगातार प्रमाणीकरण टोकन समाप्त हो रहा है
- 20. जेएसएफ वेब अनुप्रयोग में 'सत्र समाप्त हो गया' को संभालना, जेबॉस एएस 5
- 21. सत्र समाप्त होने पर लॉग इन पेज पर रीडायरेक्ट कैसे करें (एएसपी.नेट 3.5 फॉर्मऑथन)
- 22. वसंत-सुरक्षा और jQuery का उपयोग कर समाप्त हो चुके सत्र को कैसे संभालें?
- 23. एएसपी.नेट "सत्र समय समाप्त" काउंटर (perfmon.exe)
- 24. सत्र समय समाप्त होने पर अजाक्स कॉल
- 25. समाप्त हो चुके प्रश्न और एपेंगेन
- 26. समाप्ति समय 'कुकी के अंत में' समाप्त होने पर कुकी कब समाप्त हो जाती है?
- 27. लाइफटाइम ऑफ एएसपी.नेट स्टेटिक वैरिएबल
- 28. मैं कैसे सुनिश्चित कर सकता हूं कि उपयोगकर्ता केवल एक बार लॉग इन हो?
- 29. कैश्ड आइटम कभी नहीं समाप्त हो रही
- 30. प्रक्रिया समाप्त हो जाता है कारण StackOverflowException
मैं अलर्ट संदेश प्रदर्शित करना चाहता हूं 30 मिनट के बाद, मैं उपरोक्त स्क्रिप्ट को कैसे बदल सकता हूं, मैंने वेब.एक्सएमएल – sarah
में सत्र समय को परिभाषित किया है यह स्क्रिप्ट पॉप अप दिखाती है भले ही एप्लिकेशन उपयोग में है। – sarah
यह वास्तव में तब हो सकता है जब आपके पास एक ही सत्र में कई विंडो खुलती हैं। यह एक बुनियादी किकऑफ उदाहरण था। आपको कुछ कदम आगे बढ़ने की आवश्यकता होगी। उपयोगकर्ता सक्रिय होने तक सत्र को जीवित रखने के लिए सर्वर पक्ष में आग अजाजक चुनाव। आप [मेरे इस अन्य उत्तर] में एक उदाहरण पा सकते हैं (http://stackoverflow.com/questions/2319020/mvc-with-jquery-handling- सत्र-expire/2319211#2319211)। – BalusC