2010-03-22 39 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

相关问题