Servlet机制Pushlet原理及用法详解

 更新时间:2020年10月17日 15:10:26   作者:cuisuqiang  
这篇文章主要介绍了Servlet机制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 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后访问,该页面以五秒钟一个间隔,收到后台传来的数据!
工程部署后如下图展示

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

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

相关文章

  • Java中try catch 的基本用法示例

    Java中try catch 的基本用法示例

    这篇文章主要给大家介绍了关于Java中try catch 的基本用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 关于微服务使用Dubbo设置的端口和server.port的区别

    关于微服务使用Dubbo设置的端口和server.port的区别

    这篇文章主要介绍了关于微服务使用Dubbo设置的端口和server.port的区别,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java图形化界面设计之容器(JFrame)详解

    Java图形化界面设计之容器(JFrame)详解

    这篇文章主要介绍了Java图形化界面设计之容器(JFrame)详解,条理清晰,依次介绍了Java基本类(JFC),AWT和Swing的区别,Swing基本框架,图形化设计步骤以及组件容器的使用等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Mybatis-plus实现join连表查询的示例代码

    Mybatis-plus实现join连表查询的示例代码

    mybatis-plus在连表查询上是不行的,如果需要连表查询,就得乖乖的去写xml文件了,本文介绍了mybatis-plus-join框架,它支持连表查询,感兴趣的可以了解一下
    2023-08-08
  • 详解spring Boot Cli的配置和使用

    详解spring Boot Cli的配置和使用

    本篇文章主要介绍了详解spring Boot Cli的配置和使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • SpringBoot 调用外部接口的三种实现方法

    SpringBoot 调用外部接口的三种实现方法

    Spring Boot调用外部接口的方式有多种,常见的有以下三种方式:RestTemplate、Feign 和 WebClient,本文就详细介绍一下,感兴趣的可以了解一下
    2023-08-08
  • 详解SpringBoot 处理异常的几种常见姿势

    详解SpringBoot 处理异常的几种常见姿势

    这篇文章主要介绍了详解SpringBoot 处理异常的几种常见姿势,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • java 获取当前路径下的所有xml文档的方法

    java 获取当前路径下的所有xml文档的方法

    这篇文章主要介绍了java如何获取当前路径下的所有xml文档,需要的朋友可以参考下
    2014-05-05
  • 详解spring boot实现多数据源代码实战

    详解spring boot实现多数据源代码实战

    本篇文章主要介绍了详解spring boot实现多数据源代码实战,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • RabbitMQ中的prefetch_count参数详解

    RabbitMQ中的prefetch_count参数详解

    这篇文章主要介绍了RabbitMQ中的prefetch_count参数用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11

最新评论