Servlet机制Pushlet原理及用法详解
程序员文章站
2022-06-22 09:27:14
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后访问,该页面以五秒钟一个间隔,收到后台传来的数据!
工程部署后如下图展示
每次访问时,后台都会打印增加到管理中的用户信息,当关闭浏览器后,服务器会在超时后自动清理!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。