这里指的不是基于HTTP协议的cache-control。例如,短时间内,连续对某一个servlet进行访问,服务器执行servlet目标的时候,只会执行一次,第2次以后的请求结构都是Tomcat从缓存提取的运算结果。现在我想对这个缓存进行如,无效或者是缩短缓存时间的设定,是否有办法?

解决方案 »

  1.   

    知道memcached,不知道有没有什么用处。
      

  2.   

    我的情况是这样的:
    1.使用DWR,通过Ajax提取数据列表(同时请求三个列表);
    2.同样使用DWR,通过Ajax对数据更新;
    3.数据更新后,对1的数据重新更新问题是:  到了步骤3时,第三个列表无法显示最新数据。HTTP通信层没有缓存,服务器只返回200。
    通信协议是http 1.1,cache-control都是no-cache
      

  3.   

    是不是要用Context,当一个应用启动时候·就会对应创建一个Context。唯一的!
    你可以写一个类继承ContextListener,将你要做的事放入到Context中!
      

  4.   

    你这个从逻辑上就实现不了,因为servlet实现的是业务逻辑,既然是逻辑(而不是固定数据),那么就需要输入数据,然后才能输出数据,那么你的数据就不是固定的,怎么可能从缓存读取结果呢,memcached实现的是单个对象的缓存,hibernate的实现机制就是基于此实现的,要实现缓存,除非你的数据是固定数据才能实现,逻辑实现不了。
      

  5.   

    "短时间内,连续对某一个servlet进行访问,服务器执行servlet目标的时候,只会执行一次,第2次以后的请求结构都是Tomcat从缓存提取的运算结果。 "
      这个说法是不正确的
      

  6.   

    在tomcat/bin目录下,找到“catalina.sh” 文件,在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上增加如下代码:JAVA_OPTS="-server -Xms1024m -Xmx1024m  -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "其中,-Xms1024m -Xmx1024m  分别为初始化缓存和最大缓存的值,一般设为相同。
      

  7.   

    应该是这个东东吧,-Xms1024m -Xmx1024m
      

  8.   

    -Xms512m -Xmx1024m其中521是最小值; 1024是最大值。
    根据服务器内存设置。。修改catalina.bat文件:
    set JAVA_OPTS=-Xms512m -Xmx768mset CATALINA_OPTS=%CATALINA_OPTS% -Dsun.io.useCanonCaches=false
      

  9.   

    修改catalina.bat文件:
    set JAVA_OPTS=-Xms512m -Xmx768mset CATALINA_OPTS=%CATALINA_OPTS% -Dsun.io.useCanonCaches=false