是这样: 我在本机上做了一个小的B/S系统.而且是在本机是 服务器端。 
把该系统部署到 tomcat5.5上去后,自己在本机上测试,一切都比较正常。 而后,其他机器访问我的系统出现了问题:1:   其他机器访问我的系统,进行一些 添加,删除,修改等 操作时: 操作是成功的,但是再一次 请求页面时刚刚删除的 数据还在原来的页面上(包括添加和修改等一些操作)。  而我看看自己的 tomcat都显示操作的确是成功的, 数据库的记录是正确的改变,日志信息也是正确的。   而且我在本机上的 浏览器做 添删改 的操作时,页面都会 及时的 变动数据。2: 自己考虑了下是不是IE的缓存的缘故: 我自己清除IE缓存后,关闭IE浏览器,但 客户端的IE还是有问题。
可能我有点说的复杂: 主要问题是:  在客户端上操作时,对上一次的数据操作IE 没有改变。如: 在客户端PC上 在a.jsp对某一条记录 进行 删除, 回到 查询的页面 记录还在那里, 但是数据已经删除,服务器端能正常显示出 正确的信息。
 望各位前辈多加指教

解决方案 »

  1.   

    回到 查询的页面 记录还在那里
    不知道你怎么回的查询页面1.数据库的修改操作要commit
    2.页面上修改之后生成新的页面要重新查询DB生成一次
      

  2.   

    to wcj10051891:
                客户端显示的 刚删除的数据还存在,但 实际上在 服务器端 该数据已经成功删除了
      

  3.   

    你这样试看看
     
    禁止服务器端缓存:
    response.setHeader("Pragma","No-cache");response.setHeader("Cache-Control","no-cache");response.setDateHeader("Expires", 0); 
    客户端禁止缓存
    在<head></head>之间加:
    <META HTTP-EQUIV="pragma" CONTENT="no-cache"><META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"><META HTTP-EQUIV="expires" 》
      

  4.   

    你是否用了history.back(-1)?返回时刷新一下看看
      

  5.   

    <meta http-equiv="Expires" CONTENT="0"> 
              
      

  6.   

    to   wcj10051891: 
                            客户端显示的   刚删除的数据还存在,但   实际上在   服务器端   该数据已经成功删除了 
    是否使用了缓存(类似Map,List之类,位于内存中),也就是缓存了之前查询出的结果到内存中,而页面展现逻辑是从这个缓存中读取的数据,而不是重新查询数据库,
    也就是该缓存与数据库未能同步,
      

  7.   

          to  wcj10051891:  
     测试页面 没有使用缓存
      

  8.   

              我的main.jsp 左边是一个工具栏: 
    右边是一个Frame里面嵌套了个 aaa.jsp;  aaa.jsp每次加载它都会自动去访问一次 DB,并返回ResultSet ,而且显示相应的数据 。 是不是要在 这个 aaa.jsp里设置 禁止缓存之类的啊?
      

  9.   

    >  客户机上对每次的   操作     要在页面上刷新下,数据才能正确显示出来
    web与单机程序的区别,web需要刷新。
    也可以用ajax的局刷减少刷新范围。
      

  10.   

    "internet 选项"-> "常规"   "浏览历史记录设置" -> "检查所存网页较新版本"  选择 "每次访问网页时"
      

  11.   

    我的main.jsp   左边是一个工具栏:   
    右边是一个Frame里面嵌套了个   aaa.jsp;     aaa.jsp每次加载它都会自动去访问一次   DB,并返回ResultSet   ,而且显示相应的数据   。   是不是要在   这个   aaa.jsp里设置   禁止缓存之类的啊?
    ------------------------------------------------------------
      我想了解下你,增删改操作完成之后是怎么回到结果显示页面的?     从你的问题看来,是显示的本地历史记录,并没有重新请求一次服务器,导致不同步,与禁止缓存没关系!
    建议变换方式重新请求服务器端jsp页面
      

  12.   

    to wcj10051891:
                  比如增加一条记录: DAO 成功以后 返回一个参数给 Servlet,然后我判断返回参数的值(int isSucceed》0),然后是: [code=Java]request.getRequestDispatcher("infomationAnswer.jsp").forward(request, response);code]
      

  13.   

    response.setHeader("Cache-Control", "no-cache");
    这种方法可以设置页面不缓存
      

  14.   

    to   wcj10051891: 
                                比如增加一条记录:   DAO   成功以后   返回一个参数给   Servlet,然后我判断返回参数的值(int   isSucceed》0),然后是:   
    [code=Java]request.getRequestDispatcher("infomationAnswer.jsp").forward(request,   response);code]
    -------------------------------------------------

    request.getRequestDispatcher("infomationAnswer.jsp").forward(request,   response)
    换成response.sendRedirect("infomationAnswer.jsp");试试
      

  15.   

            现在有个问题就是:   我左边是一个 工具菜单栏,比如有:
    1: <a href="infomationQuestion.jsp">查看信息</a>2: 点击后,右边Frame里面的infomationQuestion.jsp又显示出 之前未修改的数据 (实际已经改动成功了)是不是 不应该用 <a>标记进行 页面的跳转啊?  
      

  16.   

    这里显示的是历史记录,也就是并没有重新请求服务器,之前也做过类似的,用链接<a>跳转,都是在当前浏览器窗口显示下个页面,未用Frame,你换换,看是否是Frame框架引起的
      

  17.   

    用没用hibernate  session清空了吗?还有数据库记得提交。应该没有什么问题
      

  18.   

         to wcj10051891:
                       Frame框架引起的? 大哥能不说明白一点么?
      

  19.   

            很感谢大家的 意见~~  最终还是通过一个 中间的页面进行跳转来实现我要的功能(实现的方式还是比较笨的)感谢wcj10051891以及关注此贴的朋友!