b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

dwr防泼水?ssh框架dwr配置?Spring整合DWR comet 实现无刷新

电脑杂谈  发布时间:2016-06-26 22:01:45  来源:网络整理

你是否正在寻找关于dwr的内容?让我把最新的东西奉献给你:

dwr的comet(推)来实现简单的无刷新,comet是长连接的一种。通常我们要实现无刷新,一般会使用到Ajax。Ajax 应用程序可以使用两种基本的方法解决这一问题:一种方法是浏览器每隔若干秒时间向服务器发出轮询以进行更新,另一种方法是服务器始终打开与浏览器的连接并在数据可用时发送给浏览器。第一种方法一般利用setTimeout或是setInterval定时请求,并返回最新数据,这无疑增加了服务器的负担,浪费了大量的资源。而第二种方法也会浪费服务器资源,长期的建立连接;而相对第一种来说,第二种方式会更优于第一种方法;这里有一个一对多和多对一的关系,而comet向多个客户端推送数据就是一对多的关系。而具体使用哪种方式,要看你当前的需求而定,没有绝对的。

为什么使用 Comet?

轮询方法的主要缺点是:当扩展到更多客户机时,将生成大量的通信量。每个客户机必须定期访问服务器以检查更新,这为服务器资源添加了更多负荷。最坏的一种情况是对不频繁发生更新的应用程序使用轮询,例如一种 Ajax 邮件 Inbox。在这种情况下,相当数量的客户机轮询是没有必要的,服务器对这些轮询的回答只会是 “没有产生新数据”。虽然可以通过增加轮询的时间间隔来减轻服务器负荷,但是这种方法会产生不良后果,即延迟客户机对服务器事件的感知。当然,很多应用程序可以实现某种权衡,从而获得可接受的轮询方法。

尽管如此,吸引人们使用 Comet 策略的其中一个优点是其显而易见的高效性,。客户机不会像使用轮询方法那样生成烦人的通信量,并且事件发生后可立即发布给客户机。但是保持长期连接处于打开状态也会消耗服务器资源。当等待状态的 servlet 持有一个持久性请求时,该 servlet 会独占一个线程。这将限制 Comet 对传统 servlet 引擎的可伸缩性,因为客户机的数量会很快超过服务器栈能有效处理的线程数量。

如果本示例结合Jetty应用服务器效果会更好。

开发环境:

System:Windows

WebBrowser:IE6+、Firefox3+

JavaEE Server:tomcat5.0.2.8、tomcat6

IDE:eclipse、MyEclipse 8

开发依赖库:

JavaEE5、Spring 3.0.5、dwr 3

Email:hoojo_@126.com

Blog:

一、准备工作

1、 下载dwr的相关jar包

https://java.net/downloads/dwr/Development%20Builds/Build%20116/dwr.jar

程序中还需要spring的相关jar包

?name=org.springframework.spring&version=3.0.5.RELEASE

需要的jar包如下

clip_image002

2、 建立一个WebProject,名称dwrComet

在web.xml中添加dwr、spring配置如下:

org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath*:applicationContext-*.xml org.directwebremoting.servlet.DwrListener dwr-invoker org.directwebremoting.servlet.DwrServlet debug true pollAndCometEnabled true dwr-invoker /dwr/*

3、 在src目录加入applicationContext-beans.xml配置,这个配置专门配置bean对象,用来配置需要注入的对象。

?

4、 在WEB-INF目录添加dwr.xml文件,基本代码如下

?

以上的准备基本完毕,下面来完成无刷新代码

二、相关业务实现

1、 聊天实体类Model

id; private String msg; private Date time; //getter、setter}

2、 编写聊天信息的事件

serialVersionUID = 1L; public ChatMessageEvent(Object source) { super(source); }}

继承ApplicationEvent,构造参数用于传递发送过来的消息。这个事件需要一个器,一旦触发了这个事件,我们就可以向客户端发送消息。

3、 发送消息服务类,用户客户端发送消息。dwr需要暴露这个类里面的发送消息的方法

setApplicationContext(ApplicationContext ctx) throws BeansException { this.ctx = ctx; } /** *

以上就是关于dwr的全部内容,相信你一定会非常满意。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shenmilingyu/article-11017-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...