2010-03-22 82 views
0

我想將一個JSP的結果存儲在一個字符串中。如何將JSP的結果存儲在字符串中?

例如,我希望能夠調用一個函數,如:

String result = ProcessJsp("/jspfile.jsp"); 

而且,這一定是相當有效的。向jsp發送url請求並存儲它將不起作用,因爲我正在Google App Engine上運行,而且我不確定這會有多慢,並且還有一個配額可用於獲取多少url提取量。

我怎麼能這樣做?

下面是我對如何做到這一點的想法,雖然我不知道這是否會工作,我希望有更簡單的東西:

RequestDispatcher("/jspfile.jsp").include(hreq, hresp),但不是把真正的HttpResponse對象在那裏,你把你自己的地方getWriter()方法返回的東西寫入您的字符串或內存緩衝等。

+0

爲什麼它會太慢? – 2010-03-22 20:48:23

+0

或多或少的一個dup:http://stackoverflow.com/questions/1152786/looking-for-a-capturing-impl-of-httpservletresponsewrapper – skaffman 2010-03-22 20:52:24

+0

@Thor它將不得不出去一個路由器,然後回來吧?我想將它存儲在字符串中的原因是通過緩存部分jsps來加速我的web應用程序。 – Kyle 2010-03-22 20:53:09

回答

1

在評論中,您聲明您的目標是緩存部分JSP頁面。我假設你正在使用動態包含,而不是客戶端請求(例如,Ajax)。

如果前者是您的最佳解決方案 - 而不是自己寫的東西 - 則應按照說明將EHCache集成到應用服務器的堆棧中。或者,如果您想自己編寫一些內容,請按照相同的流程創建您自己的緩存過濾器。

如果您想要緩存將從客戶端訪問的內容,那麼我建議在您的應用服務器前放置一臺Web服務器(例如Apache和mod_cache)。

+0

感謝您的迴應,你知道什麼方法EHCache用於獲取JSP的結果? – Kyle 2010-03-22 21:10:03

+0

我給你一個鏈接的原因。 – Anon 2010-03-22 21:11:18

+0

只是希望你知道,而不是我通過他們的源代碼搜索。 – Kyle 2010-03-22 21:13:44

相關問題