当前位置: 萬仟网 > IT编程>开发语言>JavaScript > Servlet机制Pushlet原理及用法详解

Servlet机制Pushlet原理及用法详解

2020年10月17日  | 萬仟网IT编程  | 我要评论
pushlet(一种comet 架构的实现)是基于servlet 机制,数据从server端的java 对象直接推送(push)到客户端浏览器的(动态)html 页面,而无需任何java applet

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 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,该类包含一个内部类

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清理其他,定义自己发布的内容

source1=com.helloworldplushlet$hwplushlet

在jsp中调用

<%@ 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后访问,该页面以五秒钟一个间隔,收到后台传来的数据!
工程部署后如下图展示

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
Copyright © 2017-2020  萬仟网 保留所有权利. 粤ICP备17035492号