我有一個相當大的基於戰爭的網絡應用程序。當我啓動它時,即使應用程序未啓動,Tomcat也會立即允許連接。因此,用戶在加載應用程序之前會得到一個空白頁面。啓動大型網絡應用程序時的空白頁面
我看到一些網絡應用程序在應用程序加載時顯示「網頁應用程序正在啓動,請稍候」頁面。有沒有一種簡單的技術讓java應用程序能夠做到這一點?
我有一個相當大的基於戰爭的網絡應用程序。當我啓動它時,即使應用程序未啓動,Tomcat也會立即允許連接。因此,用戶在加載應用程序之前會得到一個空白頁面。啓動大型網絡應用程序時的空白頁面
我看到一些網絡應用程序在應用程序加載時顯示「網頁應用程序正在啓動,請稍候」頁面。有沒有一種簡單的技術讓java應用程序能夠做到這一點?
我懷疑你的servlet在init()
方法中做了很多初始化。你可以將它卸載到一個單獨的線程上,並記錄該線程何時完成?您可以提供一個servlet filter,它檢查該線程和中斷請求的進度(帶有「請稍候」)消息,直到初始化線程完成。
+1。 'init()'不限於servlet,可以是上下文監聽器(通常用於Spring /某些其他框架)或其他過濾器。因此,在插入過濾器的地方你必須小心,否則在所有事情都被初始化之前,它甚至不能控制。 – ChssPly76 2009-09-18 16:59:09
看起來像這種功能應該內置到容器中...就像應用程序仍在加載時容器顯示503頁面一樣。 – manalang 2009-09-18 18:15:42
聽起來好像是一些長時間運行的初始化正在對Web應用程序的第一次調用發生,如可能連接到數據庫並預先填充某些信息。我的建議是確定導致延遲的原因,然後讓容器啓動時加載的servlet開始初始化過程。指示此初始化完成時的靜態字段可用於決定是否顯示「請稍等」頁面,或直接轉到正常的Web應用程序。 – monceaux 2009-09-18 20:15:31
當您在複雜系統上工作時,很難避免在初始化或重新加載階段長時間等待。你必須從各個方面解決這個問題。
這是從我自己的經驗了一些建議,
問題是您需要多長時間啓動一次應用程序?我預計,在應用程序啓動後,它應該運行良好,直到下一次您關閉服務器進行維護時,應該不會太頻繁。 – 2009-09-18 16:59:36
@vincent,當我們部署一個新版本時,這只是一個真正的問題。我很樂意看到使用更友好的頁面而不是空白頁面。 – manalang 2009-09-18 18:14:49