pushlet 之 Pushlet使用手把手实例

Pushlet(一种comet 架构的实现)是基于Servlet 机制,数据从server端的Java 对象直接推送(push)

到客户端浏览器的(动态)HTML 页面,而无需任何Java applet 或者插件的帮助。

  • 在MyEclipse中创建工程。附件包含了从官方下载的Pushlet包已经本次的源码包,直接导入到开发工具即可。
  • 在创建的工程中增加pushlet.jar,log4j.jar。拷贝pushlet.properties,sources.properties到WEB-INF下。
  • 拷贝ajax-pushlet-client.js到WebRoot下。
  • 配置web.xml

Xml代码  

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE web-app
  3. PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  4. "http://java.sun.com/dtd/web-app_2_3.dtd">
  5. <!-- $Id: web.xml,v 1.7 2005/02/21 17:21:49 justb Exp $ -->
  6. <web-app>
  7. <!-- Define the pushlet servlet -->
  8. <servlet>
  9. <servlet-name>pushlet</servlet-name>
  10. <servlet-class>nl.justobjects.pushlet.servlet.Pushlet</servlet-class>
  11. <load-on-startup>3</load-on-startup>
  12. </servlet>
  13. <!-- Define the Servlet Mappings. -->
  14. <!-- The pushlet -->
  15. <servlet-mapping>
  16. <servlet-name>pushlet</servlet-name>
  17. <url-pattern>/pushlet.srv</url-pattern>
  18. </servlet-mapping>
  19. </web-app>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<!-- $Id: web.xml,v 1.7 2005/02/21 17:21:49 justb Exp $ -->
<web-app>
	<!-- Define the pushlet servlet -->
	<servlet>
		<servlet-name>pushlet</servlet-name>
		<servlet-class>nl.justobjects.pushlet.servlet.Pushlet</servlet-class>
		<load-on-startup>3</load-on-startup>
	</servlet>
	<!-- Define the Servlet Mappings. -->
	<!-- The pushlet -->
	<servlet-mapping>
		<servlet-name>pushlet</servlet-name>
		<url-pattern>/pushlet.srv</url-pattern>
	</servlet-mapping>
</web-app>
  • 后台代码HelloWorldPlushlet.java,该类包含一个内部类

Java代码  

  1. package com;
  2. import nl.justobjects.pushlet.core.Event;
  3. import nl.justobjects.pushlet.core.EventPullSource;
  4. public class HelloWorldPlushlet {
  5. static public class HwPlushlet extends EventPullSource {
  6. // 休眠五秒
  7. @Override
  8. protected long getSleepTime() {
  9. return 5000;
  10. }
  11. @Override
  12. protected Event pullEvent() {
  13. Event event = Event.createDataEvent("/cuige/he");
  14. event.setField("mess", "hello,world!Plushlet!");
  15. return event;
  16. }
  17. }
  18. }
package com;
import nl.justobjects.pushlet.core.Event;
import nl.justobjects.pushlet.core.EventPullSource;
public class HelloWorldPlushlet {
	static public class HwPlushlet extends EventPullSource {
		// 休眠五秒
		@Override
		protected long getSleepTime() {
			return 5000;
		}
		@Override
		protected Event pullEvent() {
			Event event = Event.createDataEvent("/cuige/he");
			event.setField("mess", "hello,world!Plushlet!");
			return event;
		}
	}
}
  • sources.properties清理其他,定义自己发布的内容

Java代码  

  1. source1=com.HelloWorldPlushlet$HwPlushlet
source1=com.HelloWorldPlushlet$HwPlushlet
  • 在JSP中调用

Jsp代码  

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <meta http-equiv="Pragma" content="no-cache" />
  6. <script type="text/javascript" src="ajax-pushlet-client.js"></script>
  7. <script type="text/javascript">
  8. PL._init();
  9. PL.joinListen(‘/cuige/he‘);
  10. function onData(event) {
  11. alert(event.get("mess"));
  12. // 离开
  13. // PL.leave();
  14. }
  15. </script>
  16. </head>
  17. <body>
  18. <center>
  19. <h1>
  20. my first pushlet!
  21. </h1>
  22. </center>
  23. </body>
  24. </html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<meta http-equiv="Pragma" content="no-cache" />
		<script type="text/javascript" src="ajax-pushlet-client.js"></script>
		<script type="text/javascript">
			PL._init();
			PL.joinListen(‘/cuige/he‘);
			function onData(event) {
				alert(event.get("mess"));
				// 离开
				// PL.leave();
			}
		</script>
	</head>
	<body>
		<center>
		<h1>
			my first pushlet!
		</h1>
		</center>
	</body>
</html>
  • 将工程部署到Tomcat后访问,该页面以五秒钟一个间隔,收到后台传来的数据!

工程部署后如下图展示

每次访问时,后台都会打印增加到管理中的用户信息,当关闭浏览器后,服务器会在超时后自动清理!

pushlet 之 Pushlet使用手把手实例

时间: 2024-08-29 11:44:09

pushlet 之 Pushlet使用手把手实例的相关文章

pushlet推送实例 转载

Pushlet(一种comet 架构的实现)是基于Servlet 机制,数据从server端的Java 对象直接推送(push)到客户端浏览器的(动态)HTML 页面,而无需任何Java applet 或者插件的帮助. 在MyEclipse中创建工程.附件包含了从官方下载的Pushlet包已经本次的源码包,直接导入到开发工具即可. 在创建的工程中增加pushlet.jar,log4j.jar.拷贝pushlet.properties,sources.properties到WEB-INF下.拷贝a

开源框架Pushlet入门_java_web

开源框架Pushlet入门 一.comet基本概念 1.comet是一个用于描述客户端和服务器之间交互的术语,即使用长期保持的http连接来在连接保持畅通的情况下支持客户端和服务器间的事件驱动的通信. 2.传统的web系统的工作流程是客户端发出请求,服务器端进行响应,而comet则是在现有技术的基础上,实现服务器数据.事件等快速push到客户端,所以会出现一个术语"服务器推"技术. 二.push实现方式 1.原理: 利用jsp/servel技术,在不关闭http流的情况下push数据到

pushlet

自己准备做一个小游戏,租个云服务,然后挂在网上,可以跟同学一起玩,不过首先布置的是,这个游戏是否能实现,多人在线网页游戏,考虑到是否能够实时查询,在网上借鉴了下聊天原理,http长连接,搜索到pushlet可以满足要求,特来学习 首先网上下载了jar包,根据http://blog.csdn.net/lupeng0527/article/details/19019585提到,可以自制maven jar,所以学着达成jar包了 借鉴这个人写的文章:http://www.cnblogs.com/lin

SSH集成Pushlet

首先是需要的资源: 1).pushlet.jar 2).ajax-pushlet-client.js 第一步.web.xml配置servlet <servlet> <servlet-name>pushlet</servlet-name> <servlet-class>com.newgsn.tvmall.pushlet.servlet.Pushlet</servlet-class> <load-on-startup>1</load

使用Pushlet将消息从服务器端推送到客户端

使用Pushlet来实现服务器端向客户端推送信息 1.   实现方式: 有两种实现方式: 1.         通过配置文件来实现定时的从服务器端向客户端推送信息 2.         通过API主动向另外一端推送信息 以下分别给予介绍. 2.   特别注意 在开始测试之前,有三点非常重要,需要实现讲明,否则程序将会无法正常运行: 2.1.     JSP页面上的设定 JSP页面上必须添加以下代码以确保Pushlet能够正确的获得后台服务的地址: <base href="<%=req

【pushlet学习】具体实战

业务需求: 1. 前端界面需要实时显示空调.照明等设备的状态, 如:空调电压.空调电流.光照强度等,这些量每一个称作一个测点: 2. 不同的用户登录系统后,用户只能看到自己设备的运行状态,而看不到其他人设备的运行状态: 3. 由于每个用户的设备类型.种类.个数等都不相同,因此每个用户需要查询测点也不相同: 4. 当多个用户同时登陆系统时,其实就是在多个浏览器上打开多个浏览界面,去查看自己设备运行状态, 即:多个浏览器上的多个界面对后台请求的测点是不同的,例如: 用户1:<测点1,测点2,测点3,

pushlet服务端推送

---------------------在jsp页面中加入---------------------- <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <base href=

基于Pushlet实现的Web版报价系统

项目的原因需要实现基于Web版的网上报价查询系统.用户需求很简单就是客户通过登录网站后,可以对产品提交买卖价格,系统有个集中展示屏幕来展示10档最优买入和卖出价格.对于上述功能的实现无外乎有两种实现方式: 推送(Push)技术: 一种建立在服务器上的机制,由服务器主动将信息发往客户端的技术.Push技术的优势在于信息主动性和及时性. 拉(Pull)技术: 客户机主动请求信息,采用客户端定时刷新页面,可使用Ajax技术实现,每隔N秒自动Reload一次,如果在此期间Server端数据发生变化,客户

Pushlet浏览器长连接通讯

原文链接:http://cuisuqiang.iteye.com/blog/1416771 Pushlet(一种comet 架构的实现)是基于Servlet 机制,数据从server端的Java 对象直接推送(push)到客户端浏览器的(动态)HTML 页面,而无需任何Java applet 或者插件的帮助. 在MyEclipse中创建工程.附件包含了从官方下载的Pushlet包已经本次的源码包,直接导入到开发工具即可. 在创建的工程中增加pushlet.jar,log4j.jar.拷贝push