2010-05-04 15 views
5

मैं GXT, Hibernate, mysql आदि का उपयोग कर एक वेब एप्लिकेशन विकसित कर रहा हूं। एप्लिकेशन के लिए एक लॉगिन पृष्ठ है। असल में मुझे सत्र समाप्त होने पर लॉगिन पेज सेट करने में समस्या हो रही है। हम web.xml फ़ाइल में टाइमआउट सेट कर सकते हैं लेकिन उस स्थिति में हम लॉगिन पेज पर रीडायरेक्ट नहीं कर सकते हैं। क्या आप मुझे बता सकते हैं कि इसे कैसे प्राप्त किया जाए।GXT: सत्र समाप्त होने पर लॉगिन पृष्ठ कैसे लाया जाए

उत्तर

2

मैं सर्वर साइड में एक अपवाद फेंक जब सत्र समाप्त हो की अवधारणा का इस्तेमाल किया और उसके बाद की है करने की कोशिश की ग्राहक पक्ष में अपवाद पकड़ो। मुझे नहीं पता कि ऐसा करने का कोई बेहतर तरीका है या नहीं।

2

आप सर्वर साइड रीडायरेक्ट नहीं कर सकते क्योंकि एप्लिकेशन पूरी तरह से AJAX है। आप क्या कर सकते हैं जीडब्ल्यूटी टाइमर क्लास का उपयोग करें और अपने आरपीसी कॉल में से प्रत्येक के लिए टाइमर को चेक/रीसेट करें। यदि "सत्र" समाप्त हो जाता है तो आप इतिहास टोकन के माध्यम से लॉगिन पृष्ठ पर रीडायरेक्ट करते हैं। यह मेरे लिए सबसे आसान तरीका था

कुछ अन्य पठन:

http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/b9eab8daaa993c83/d0192d356045e061?pli=1

http://gwt-ext.com/forum/viewtopic.php?f=9&t=1682

2

सर्वर की तरफ, आप जांच सकते हैं कि सत्र की समयसीमा समाप्त हो गई है और यदि ऐसा है, तो कस्टम अपवाद फेंक दें। क्लाइंट साइड पर, प्रत्येक एसिंक कॉल पर आप इस ज्ञात स्थिति के लिए चेक करते हैं और इसके प्रति प्रतिक्रिया करते हैं।

public abstract class SessionExpiredAwareAsyncCallback<T> implements AsyncCallback<T> { 

    @Override 
    public void onSuccess(T returnObject) { 
     doOnSuccess(returnObject); 
    } 

    @Override 
    public void onFailure(Throwable exception) { 
     if (exception instanceof SessionExpiredException) { 
      goToLoginPage(); 
     } else { 
      doOnFailure(exception); 
     } 
    } 

    public abstract doOnSuccess(T returnObject); 

    public abstract doOnFailure(Throwable exception); 
} 
1

आप ग्राहक के लिए सर्वर से एक ईवेंट सक्रिय करने gwteventservice उपयोग कर सकते हैं: आप AsyncCallback के लिए एक अमूर्त वर्ग है कि आप प्रत्येक GWT RPC कॉल के लिए उपवर्ग बना सकते हैं।

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

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