我正在開發一個使用GXT,Hibernate,mysql等的Web應用程序。應用程序有一個登錄頁面。實際上,當會話過期時,我遇到了設置登錄頁面的問題。我們可以在web.xml文件中設置超時時間,但在這種情況下,我們不能重定向到登錄頁面。可以告訴我如何實現這一點。GXT:如何在會話過期時引入登錄頁面
5
A
回答
2
我用當會話過期時在服務器端拋出異常的概念,然後試圖在客戶端捕獲異常。我不知道是否有更好的方法來做到這一點。
2
你不能做一個服務器端重定向,因爲應用程序完全是AJAX。你可以做的是使用GWT Timer類,並且爲你的每一個RPC調用檢查/重置定時器。如果「會話」過期,則通過歷史令牌重定向到登錄頁面。這是最簡單的辦法,我
一些其他閱讀:
2
在服務器端,您可以檢查會話是否過期,如果是,則拋出自定義異常。 在客戶端,在每次異步調用時,都會檢查這種已知情況並對其做出反應。您可以創建AsyncCallback
一個抽象類,你將繼承每個GWT RPC調用:
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從服務器到客戶端觸發一個事件。
相關問題
- 1. 如何移動到登錄頁面,如果會話過期
- 2. 當會話過期時,ASP.NET MVC重定向到登錄頁面
- 3. 會話過期時重定向到登錄頁面+ silex
- 4. 會話到期時通過AJAX導航到登錄頁面
- 5. 在會話過期後重定向到登錄頁面
- 6. Laravel 5.4在auth會話過期後返回登錄頁面
- 7. 會話登錄頁面
- 8. 會話在Backbone.js中過期後,如何自動重定向到登錄頁面?
- 9. Symfony重定向到會話過期後的登錄頁面
- 10. 當會話過期時,Spring MVC會將用戶重定向到登錄頁面
- 11. 會話過期並重定向到登錄頁面後清除登錄字段?
- 12. 在Ajax調用中會話過期時避免顯示登錄頁面
- 13. 過期的登錄頁面
- 14. 如何獲取Facebook頁面的頁面登錄access_token,該頁面不會過期?
- 15. redict在會話過期後登錄
- 16. 在django登錄頁面的會話
- 17. 會話停留在登錄頁面
- 18. 如何在用戶會話過期時重定向到頁面?
- 19. 當會話已過期時,Grails顯示登錄頁面異步請求
- 20. 如何在多個頁面上創建的任何會話的會話時間重定向到登錄頁面?
- 21. 顯示會話過期消息更長的時間重定向當會話過期時登錄頁
- 22. 會話過期後嘗試註銷導致登錄頁面重定向到登錄頁面
- 23. 登錄頁面不會在過濾器
- 24. 如何在會話超時時在登錄頁面中顯示錯誤消息
- 25. 如何讓這個PHP登錄類創建不會過期的登錄會話?
- 26. Cordova和Django登錄,會話過期
- 27. 會話過期,請重新登錄
- 28. SuiteCRM - 無法登錄 - 會話已過期
- 29. 如何在html中爲登錄頁面創建會話
- 30. 如何在會話令牌過期時將用戶重定向到登錄頁面?