我使用Java + struts2 + JSP作爲Web應用程序框架。
我必須通過struts動作將一些巨大的對象傳遞給我的jsp頁面。這會導致頁面負載過重,另一方面會導致服務器的帶寬消耗。
有沒有辦法通過struts2將壓縮對象發送到jsp頁面並在那裏解壓縮?如果你想提高客戶的下載速度,在你的網絡服務器使gzip壓縮是否可以通過struts2將壓縮對象發送到JSP頁面?
:
我使用Java + struts2 + JSP作爲Web應用程序框架。
我必須通過struts動作將一些巨大的對象傳遞給我的jsp頁面。這會導致頁面負載過重,另一方面會導致服務器的帶寬消耗。
有沒有辦法通過struts2將壓縮對象發送到jsp頁面並在那裏解壓縮?如果你想提高客戶的下載速度,在你的網絡服務器使gzip壓縮是否可以通過struts2將壓縮對象發送到JSP頁面?
:
如果您需要將您的服務器端內部的數據,檢查此。
聽起來像你需要用JavaScript解壓縮文件。 This Answer實際上提供了一個鏈接到這樣的JavaScript。我不知道這個想法有多實用。
謝謝,我可能會使用「deflate/inflate」方法來壓縮對象。這js似乎是有用的。 – 2010-09-04 07:08:19
這個問題對於如何將對象從動作類傳遞到JSP頁面有點模糊,但在我看來,應用程序不是在執行請求期間轉發請求,而是發出一個客戶端 - 方重新指向一個新的頁面。
在JSP/servlet模型中,轉發是服務器的內部轉發,並且不會導致客戶端提出新的請求。另一方面,重定向會導致瀏覽器被迫按照服務器的指示進入新頁面。
如果可能,您應該調查使用forwards,這是Struts中默認的機制來顯示視圖。這隻會降低服務器的帶寬需求。
關於JSP頁面中大量內存消耗的主題,您可能需要對應用程序進行剖析,以推斷JSP的'巨大'加載時間是由於這些對象還是由於額外的客戶端請求導致以上。如果沒有這樣的配置文件報告指出CPU和內存使用率,那麼宣稱對象膨脹導致高頁面加載時間是不合理的。
這裏的場景是: 我在我的struts動作類中有一個Collection
感謝提示,因爲我在這個方法中得到了整個響應被壓縮,這似乎更實際。我會研究它。 – 2010-09-04 07:46:22
我剛剛在tomcat上啓用了壓縮,它使我的主要響應小了10倍。 – 2010-09-05 10:48:01