簡體   English   中英

攔截傳出的servlet http請求

[英]Intercepting outgoing servlet http requests

我正在研究一個學校項目,我從中查詢並從中央服務器接收一些相當大的XML文檔。 這在開始時很好,因為我很少提出這些請求(HTTP GET),但隨着項目的進展,我想出了更多關於這些數據的事情,現在我有servlet請求3或4個XML文檔,每個文檔都在它是自己獨立的GET請求,導致頁面生成時間超過25秒。

不可能改變數據的服務方式,也不可能改變它的請求方式,因為我有一個相當大的代碼庫,並且它不像它應該的那樣解耦。

有什么聰明的方法可以在我的servlet執行這些GET請求時進行監聽,攔截它們,並且可能為它們提供本地緩存版本? 數據不易變,因此不需要“實時”數據。

到目前為止,我還沒有找到有關收聽Tomcat發出的OUT請求的信息......

我認為很多將取決於您的緩存命中率。 如果定期請求相同的3-4個文檔(或一些小組文檔),則可能有本地高速緩存代理服務器(如Squid)。 可以將Java 配置為使用代理服務器進行HTTP請求。

您可以使用HttpFilter實現此功能。 它可以用作緩存。 如果請求的文檔已經在緩存中,則返回它; 如果沒有將HTTP請求轉發給您的servlet。

我最終使用ContextListener在啟動時加載大部分數據,以及servlet上下文屬性中的“到期日期”。 它使一些啟動緩慢(9個GetRequests到中央服務器!),但大大減少了我們的頁面加載時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM