1

我有一个“搜索”页面,可让用户按选项选择一些搜索。这些选项包括由数据库填充的许多下拉列表。这些下拉菜单可能会改变,但很少会改变(最多一个月一次)。

现在我们的页面每次加载页面以填充这些下拉列表时都会访问数据库,页面加载大约需要 3-4 秒。我希望它缓存页面服务器端,并且每隔一小时左右才处理一次 jsp。任何进来的请求都应该得到已处理 jsp 的最新输出,但不会导致服务器重新处理它。也就是说,我希望页面刷新始终与 get 方法分开,因此现在用户不必再等待 0.5 秒来获取页面。

是否可以像在asp中一样在服务器端缓存jsp页面(是否可以在服务器端缓存asp页面?)来解决这个问题?一般采用什么方法来解决这个问题?我可以想到解决方案,但如果已经开发出常见的最佳实践,我不想重新发明轮子,我知道它们一定是这样的。

谢谢!

4

3 回答 3

2

我不知道 jsp 缓存服务器端,但您也可以缓存数据库的结果,因为这很可能是最慢的部分。

我总是将ehcache与 spring 和 aop 一起使用来实现对 java 方法结果的非侵入式缓存。

于 2012-07-16T13:28:04.100 回答
1

JSTLc:set呢?这里是菜单缓存的例子:

<c:if test="${empty JSPCACHE_menu}">
  <c:set var="JSPCACHE_menu" scope="session">
    <ul id="user-menu">...</ul>
  </c:set>
</c:if>
${JSPCACHE_menu}
于 2014-12-16T19:10:11.417 回答
0

如果您使用的是弹簧,那么我认为弹簧缓存抽象也是为了救援。我在缓存控制器方法和一些服务方法的输出的相同场景中使用了它。Spring 缓存很好地利用了缓存作为横切关注点。

于 2012-07-16T14:14:39.413 回答