pushlet的主动推送,下面是自己做的实例,请大家多多指点。
第一步:创建一个类
package com.cm.service;
import java.io.Serializable;
import nl.justobjects.pushlet.core.Dispatcher;
import nl.justobjects.pushlet.core.Event;
public class MyPushSource implements Serializable {
private static Event instance=null;
public static synchronized Event getInstance(){
if(instance==null){
String eventSource ="/nimade/myevent1";
instance=Event.createDataEvent(eventSource);
// logger.info();
}
return instance;
}
public static void pullEvent(String field,String eventVal){
String women="/nimade/myevent1";
Event event =Event.createDataEvent(women);
// event.setField(field,eventVal);
String iiiii="<table align=\"center\" border=\"1\" ><tr><td>ok11</td><td>ok12</td></tr><tr><td>ok21</td><td>ok22</td></tr></table>";
event.setField("key1",iiiii);
Dispatcher.getInstance().multicast(event);
}
}
步骤二:
配置文件(web.xml
)
<servlet>
<servlet-name> pushlet</servlet-name >
<servlet-class> nl.justobjects.pushlet.servlet.Pushlet</servlet-class >
<load-on-startup> 3</ load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name> pushlet</servlet-name >
<url-pattern> /pushlet.srv</url-pattern >
</servlet-mapping>
步骤三:
书写jsp
<%@ page language ="java" import="java.util.*" pageEncoding= "utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://" +request.getServerName()+":"+request.getServerPort()+path+ "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head >
<script type="text/javascript" src="js/ajax-pushlet-client.js" ></script>
<script type="text/javascript">
PL._init();
PL.joinListen( '/nimade/myevent1');
function onData(event) {
var data=event.get("key1" );
document.getElementById( "display").innerHTML=data;
}
</script >
</head >
<body >
<div id="display">
</div >
<br> <%--
<table align="center" border="1" >
<tr>
<td>ok111</td>
<td>ok121</td>
</tr>
<tr>
<td>ok211</td>
<td>ok221</td>
</tr>
</table>--%>
</body >
</html>