Servlet機(jī)制Pushlet原理及用法詳解
Pushlet(一種comet 架構(gòu)的實(shí)現(xiàn))是基于Servlet 機(jī)制,數(shù)據(jù)從server端的Java 對象直接推送(push)到客戶端瀏覽器的(動態(tài))HTML 頁面,而無需任何Java applet 或者插件的幫助。
- 在MyEclipse中創(chuàng)建工程。附件包含了從官方下載的Pushlet包已經(jīng)本次的源碼包,直接導(dǎo)入到開發(fā)工具即可。
- 在創(chuàng)建的工程中增加pushlet.jar,log4j.jar??截恜ushlet.properties,sources.properties到WEB-INF下??截恆jax-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,該類包含一個內(nèi)部類
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清理其他,定義自己發(fā)布的內(nèi)容
source1=com.HelloWorldPlushlet$HwPlushlet
在JSP中調(diào)用
<%@ 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后訪問,該頁面以五秒鐘一個間隔,收到后臺傳來的數(shù)據(jù)!
工程部署后如下圖展示
每次訪問時(shí),后臺都會打印增加到管理中的用戶信息,當(dāng)關(guān)閉瀏覽器后,服務(wù)器會在超時(shí)后自動清理!
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于微服務(wù)使用Dubbo設(shè)置的端口和server.port的區(qū)別
這篇文章主要介紹了關(guān)于微服務(wù)使用Dubbo設(shè)置的端口和server.port的區(qū)別,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12Java圖形化界面設(shè)計(jì)之容器(JFrame)詳解
這篇文章主要介紹了Java圖形化界面設(shè)計(jì)之容器(JFrame)詳解,條理清晰,依次介紹了Java基本類(JFC),AWT和Swing的區(qū)別,Swing基本框架,圖形化設(shè)計(jì)步驟以及組件容器的使用等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11Mybatis-plus實(shí)現(xiàn)join連表查詢的示例代碼
mybatis-plus在連表查詢上是不行的,如果需要連表查詢,就得乖乖的去寫xml文件了,本文介紹了mybatis-plus-join框架,它支持連表查詢,感興趣的可以了解一下2023-08-08SpringBoot?調(diào)用外部接口的三種實(shí)現(xiàn)方法
Spring Boot調(diào)用外部接口的方式有多種,常見的有以下三種方式:RestTemplate、Feign 和 WebClient,本文就詳細(xì)介紹一下,感興趣的可以了解一下2023-08-08詳解spring boot實(shí)現(xiàn)多數(shù)據(jù)源代碼實(shí)戰(zhàn)
本篇文章主要介紹了詳解spring boot實(shí)現(xiàn)多數(shù)據(jù)源代碼實(shí)戰(zhàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07RabbitMQ中的prefetch_count參數(shù)詳解
這篇文章主要介紹了RabbitMQ中的prefetch_count參數(shù)用法,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11