我想将JSP的结果存储在字符串中。
例如,我希望能够调用以下函数:
String result = ProcessJsp("/jspfile.jsp");
另外,这必须相当有效。向jsp发出url请求然后再存储它是行不通的,因为我正在Google App Engine上运行,而且我不确定这样做的速度有多慢,并且还可以为获取的url数量设置配额。
我该怎么办?
这是我关于如何执行此操作的想法,尽管我不确定它是否可行,并且希望有一些更简单的方法:
请执行
RequestDispatcher("/jspfile.jsp").include(hreq, hresp)
,但不要在其中放置真正的HttpResponse对象,而是在getWriter()
方法返回写入String或内存缓冲区等内容的位置放置自己的对象。 最佳答案
在注释中,您声明您的目标是缓存JSP页面的某些部分。我假设您使用的是动态包含,而不是客户端请求(例如Ajax)。
如果是前者,最好的解决方案(而不是自己编写)是遵循将EHCache集成到应用程序服务器堆栈中的说明。或者,如果您想自己写东西,请遵循相同的过程,但是创建自己的缓存过滤器。
如果要缓存将从客户端访问的内容,则建议将Web服务器(例如具有mod_cache的Apache)放置在应用程序服务器的前面。