此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【happygen】截止到2008-07-14 11:28:21的历史汇总数据(不包括此帖):
发帖的总数量:0                        发帖的总分数:0                        每贴平均分数:0                        
回帖的总数量:1                        得分贴总数量:0                        回帖的得分率:0%                       
结贴的总数量:0                        结贴的总分数:0                        
无满意结贴数:0                        无满意结贴分:0                        
未结的帖子数:0                        未结的总分数:0                        
结贴的百分比:---------------------结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html

解决方案 »

  1.   

    你添加图片后重新加载一下listener.jsp;
    要是你是想比如客户端在浏览这个网页时,你添加了一个新的图片,此时在客户端肯定无法看到你的变化,这个是很正常的,如果你想让客户端看到变化,就要客户端进行刷新重新加载页面,要不就是让这个页面定时刷新,不过不建议这样做,这样无形中增加了服务器的负担,我认为客户一般不会有这样的要求
      

  2.   

    当然可以呀.
    应该有几种实现方式,高级点的,可以使用观察者模式.
    实现地简单点,可以在后台更新完成后,重新调用listener.jsp,让它重新从数据库里面取,或者直接把添加的图片的信息传给listener.jsp.
      

  3.   

    看看这篇文章http://www.javaeye.com/topic/102068
      

  4.   

    谢谢 楼上的  确实受益非浅!但是他们讨论的主要是swing和awt方面
    我现在主要想知道的是 如何让服务器通知页面刷新 这种在B/S模式下该怎么实现  比如是否可以在页面编写一个listener让他来监听服务器发出的消息!
      

  5.   

    1. 服务器端有了更新加载listener.jsp。这是个相对简单的实现,比如在action中部分实现于数据库的操作,然后完毕后在跳转到listener.jsp.页面从而实现一次重加载。2. 这种机制比定时刷新好,原因是:更改是个并不常见的动作,相对定时刷新而言它耗费的请求资源更少,对服务器压力更小。3.至于观察者模式,我个人认为除非你对数据的及时响应要求很高,那样可以时候关于观察者AWT等种的实现与web下原理是一样的,实际上这种监控在web环境下通常可以使用开源的组建完成,例如Spring中的监听器 或者Struts中的过滤器等等,不过我个人认为你的应用其实比较简单,没有必要采用如此复杂的操作。谢谢。
      

  6.   

    没看懂。IE除了刷新,怎么知道服务器端的变化?难道web的客户端可以监听服务器端?
      

  7.   


    可能我提到的观察者模式,你已经看过7楼的实例了,它实际上也是一种触发并重新查询的过程,避免不了,你所要求的性能问题.
    如果你的确是需要不进行重新的数据库查询,只能使用我前面提到的三种方法的最后一种.我刚才重新理解了一下你的意思,听你的意思是,你需要在服务器端做出更新后,触发客户端的改变.
    也就是说你需要的实现思路有两种:
    一种是,从客户端对服务器端进行监听
    另一种是,从服务器端对客户端进行触发在B/S架构中,第二种方法是不能实现的.只能采用第一种方式,下面给出详细实现技术和实现思路
    实现技术:ajax+web session+观察者模式变种
    实现思路:
    1.后台的action对数据进行了更新,即完成了数据库的操作后,将该更新数据放到session中,这里可能还需要一个标志变量,标识出该更新数据是否已被客户端取用过;
    2.客户端使用ajax技术,定时去后台查询session,取出未取过的数据,取后删除,或者标识置为已取.session有两种,一种是用户session,或者服务器共享缓存.
    不论采用哪一种,都必须确定,当前更新的数据对哪些客户端是有用的,因此需要使用一个类似观察者模式的方式,维护哪些客户端需要哪些数据.可完成的功能:
    1.将更新的任务交给了客户端;
    2.更新不需要查询数据库;可能存在的问题:
    1.对session的选择上,存在不确定性:建议使用服务器缓存,这样只需要存一份更新的数据;
    2.对session的处理上,怎样使客户端更新未更新过的数据的处理过程,除了实现思路中采用的方式,可能使用一个时间戳的方式更佳;
    3.需要维护的观察者列表,以及向观察者列表中填充更新过的数据的过程,需要占用很大CPU时间和内存;建议:
    这种方式的实现复杂度较高,要求的技术能力较高,性能上也存在许多不确定性.所以不建议使用,建议采用传统的方式,重新查询数据库并刷新页面~