1、基础概念:Pushlet是一种comet实现:在Servlet机制下,数据从server端的Java对象直接推送(push)到(动态)HTML页面,而无需任何Java applet或者插件的帮助。
2、什么事comet请参照
http://www.ibm.com/developerworks/cn/web/wa-lo-comet/
3、不多说了直接贴一个最简单的例子,
1)将pushlet.jar包导入自己的项目;
2)将pushlet.properties、sources.properties导入到src目录下
3)修改web.xml文件如下(url-pattern暂时设置为/pushlet.srv)
<servlet-name>pushlet</servlet-name>
<servlet-class>nl.justobjects.pushlet.servlet.Pushlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>pushlet</servlet-name>
<url-pattern>/pushlet.srv</url-pattern>
</servlet-mapping>
4)编写一个java类如下
import java.io.UnsupportedEncodingException;
import nl.justobjects.pushlet.core.Event;
import nl.justobjects.pushlet.core.EventPullSource;
public class HelloWorldPlushlet implements Serializable {
private static final long serialVersionUID = 1L;
static public class HelloWorldEvent extends EventPullSource {
@Override
protected long getSleepTime() {
return 1000; // 刷新时间
}
@Override
protected Event pullEvent() {
Event event = Event.createDataEvent("/source/event");// 事件标识
String s = "你好";
s = toISO88591(s);
event.setField("msg", s);// 封装参数
return null;
}
}
public static String toISO88591(String str) {
try {
str = new String(str.getBytes("UTF-8"), "ISO-8859-1");
} catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
}
return str;
}
}
上面有一个中文的处理方法,toISO88591()不然不支持中文。
还有就是注意Event event = Event.createDataEvent("/source/event");// 事件标识
5)编写jsp文件如下<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>index.html</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="js/ajax-pushlet-client.js"></script>
<script type="text/javascript">
PL._init();
PL.joinListen('/source/event');//事件标识 在数据源中引用
function onData(event) {
alert(event.get("msg"));
}
</script>
</head>
<body>
test
</body>
</html>
PL.joinListen('/source/event');//事件标识 在数据源中引用,注意跟上面的红色部分保持一致。
6)下面说一下web.xml中<url-pattern>的配置问题,查看ajax-pushlet-client.js源码会发现有下面这段代码_getWebRoot: function() {
/** Return directory of this relative to document URL. */
if (PL.webRoot != null) {
return PL.webRoot;
}
//derive the baseDir value by looking for the script tag that loaded this file
var head = document.getElementsByTagName('head')[0];
var nodes = head.childNodes;
for (var i = 0; i < nodes.length; ++i) {
var src = nodes.item(i).src;
if (src) {
var index = src.indexOf("lib/ajax-pushlet-client.js");
if (index >= 0) {
PL.webRoot = src.substring(0, index);
break;
}
}
}
return PL.webRoot;
},
注意var index = src.indexOf("lib/ajax-pushlet-client.js");这句话 这个方法就是取webRoot跟路径的,所以<url-pattern>的设置跟这里有关系,还有就是跟你使用ajax-pushlet-client.js的jsp页面有关系,我上面的jsp页面中src="js/ajax-pushlet-client.js"是这样导入js包的,所以我把ajax-pushlet-client.js中的代码改为var index = src.indexOf("js/ajax-pushlet-client.js");取根路径了,大家可以测试一下就明白了。
7)最后启动程序,大家就可以看到每一秒弹出一个“你好”窗口了。
分享到:
相关推荐
【Pushlet服务器推技术】是一种实时通信技术,主要用于构建...在压缩包文件“pushlet”中,可能包含了实现Pushlet技术的源代码、配置文件和示例应用,供开发者学习和参考,以便在自己的项目中集成和使用Pushlet服务。
Pushlet 2.0.3是该技术的一个特定版本,可能包含以下关键特性: 1. **持久连接**:通过保持一个开放的HTTP连接,服务器可以在任何时候向客户端发送数据,而无需等待新的HTTP请求。 2. **多路复用**:一个连接可以...
Pushlet 是一个开源的、基于Java的实时信息发布系统,它采用推送技术(Push Technology)实现服务器向客户端实时发送数据,而无需客户端频繁发起请求。这种技术在实时性要求高的场景,如股票交易、在线聊天、实时...
总的来说,Comet框架的Pushlet实现是一种高效的服务器推送技术,它通过持久化连接解决了传统Web应用实时性不强的问题,对于需要实时数据更新的应用场景具有显著的优势。开发者可以利用Pushlet轻松构建出实时交互的...
Pushlet是基于Comet技术的一种实现,它为Java开发者提供了一种高效的服务器推送解决方案。 一、Comet技术 Comet是一种允许服务器长时间保持HTTP连接的技术,它打破了传统的Web应用模型,即客户端发起请求,服务器...
在IT行业中,Pushlet是一种基于Java的推送技术,主要用于实现实时的数据传输,尤其是在Web应用中创建...通过学习和实践"pushlet实现简单的用户聊天",开发者可以掌握这种技术,并将其应用于各种复杂的实时交互应用中。
【服务器推送技术——PushLet应用详解<一>】 在当今的互联网应用中,实时性成为了不可或缺的需求,无论是即时通讯、在线游戏还是股票交易,都需要服务器能够主动向客户端推送信息,而不是传统的请求-响应模式。这...
【基于Pushlet推技术的网络应用程序开发的研究】这篇论文探讨了Pushlet技术在构建网络应用程序中的应用,Pushlet是一种服务器推(Server Push)技术,它允许服务器主动地将实时更新的数据推送到客户端的浏览器,而...
服务器推 pushlet 服务器推 pushlet 服务器推 pushlet 服务器推 pushlet
Pushlet是一种基于Java的实时数据推送技术,它允许服务器向客户端主动推送数据,而无需客户端持续不断地轮询请求。在Web应用中,Pushlet能够显著提高用户体验,因为它减少了延迟并优化了服务器资源的使用。本示例...
本文主要讨论了一种基于Comet服务器推技术的Pushlet实现,这种技术允许服务器向客户端实时推送数据,而无需客户端持续发起请求。 Comet技术是一种优化的Web通信模式,其核心思想是利用持久化HTTP连接来实现实时数据...
PushLet是一种基于Java的实时推送技术,用于在服务器和客户端之间进行双向通信,尤其是在Web应用中实现数据的即时更新。这个实例"PushLet实例,可直接运行"提供了一个完整的、可以直接执行的PushLet项目,包括必要的...
Pushlet是一种基于Java的实时数据推送技术,由荷兰JustObjects公司开发。Pushlet库的核心功能是实现实时的服务器向客户端推送数据,而无需客户端频繁发起请求,这大大提高了网络应用的效率和用户体验。以下是对...
Pushlet是Java中的一种推技术,它允许服务器主动向客户端推送数据,而不仅仅是响应客户端的请求。在Web应用中,这种技术打破了传统的HTTP长轮询或短轮询机制,提供了实时性更好的通信方式。本篇内容主要围绕"Pushlet...
"pushlet.jar 和示例工程"是一个专注于实现服务器端向客户端主动推送消息的框架,它在Web开发领域中扮演着重要角色。...而提供的压缩包资源则为学习和实践Pushlet提供了便利,是深入研究和应用这一框架的重要资料。
Pushlet是一种基于HTTP长轮询技术的轻量级推送服务,它允许服务器主动向客户端推送数据,而无需客户端持续发起请求。这种技术在实时性要求较高的应用场景,如在线聊天、股票更新、游戏状态同步等中,有着广泛的应用...
Pushlet是服务器推送技术的一种早期实现,由Jackrabbit项目开发,它基于Java Servlet和JavaServer Pages (JSP) 技术。Pushlet的核心理念是通过长连接保持客户端与服务器之间的通信,从而实现实时数据推送。 Pushlet...
Pushlet是Comet技术的一种具体实现,它们都旨在解决Web应用中的实时性问题。在服务器端,Pushlet使用`EventSource`和`EventSourceManager`来管理和处理事件,`EventSource`实现了`Runnable`接口,可以在多线程环境中...