亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? browseradapter.java

?? Java下Comet的實現框架Pushlet例子。 實現實時推送數據到客戶端。 服務器每隔30-500MS產生一個隨機數
?? JAVA
字號:
// Copyright (c) 2000 Just Objects B.V. <just@justobjects.nl>
// Distributable under LGPL license. See terms of license at gnu.org.

package nl.justobjects.pushlet.core;

import nl.justobjects.pushlet.util.Log;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;

/**
 * Generic implementation of ClientAdapter for browser clients.
 *
 * @author Just van den Broecke - Just Objects &copy;
 * @version $Id: BrowserAdapter.java,v 1.6 2007/11/09 13:15:35 justb Exp $
 */
public class BrowserAdapter implements ClientAdapter, Protocol {

	public static final String START_DOCUMENT =
			"<html><head><meta http-equiv=\"Pragma\" content=\"no-cache\"><meta http-equiv=\"Expires\" content=\"Tue, 31 Dec 1997 23:59:59 GMT\"></head>"
					+ "<body>"
					+ "\n<script language=\"JavaScript\"> var url=\" \"; \nfunction refresh() { document.location.href=url; }</script>";
	public static final String END_DOCUMENT = "</body></html>";

	private PrintWriter servletOut;
	private HttpServletResponse servletRsp;
	private int bytesSent;

	/**
	 * Constructor.
	 */
	public BrowserAdapter(HttpServletResponse aServletResponse) {
		servletRsp = aServletResponse;
	}

	/**
	 * Generic init.
	 */
	public void start() throws IOException {
		// Keep servlet request/response objects until page ends in stop()
		// Content type as HTML
		servletRsp.setStatus(HttpServletResponse.SC_OK);
		servletRsp.setContentType("text/html;charset=UTF-8");

		// http://www.junlu.com/msg/45902.html
		// Log.debug("bufsize=" + aRsp.getBufferSize());
		servletOut = servletRsp.getWriter();
		send(START_DOCUMENT);
	}

	/**
	 * Push Event to client.
	 */
	public void push(Event anEvent) throws IOException {
		Log.debug("BCA event=" + anEvent.toXML());

		// Check if we should refresh
		if (anEvent.getEventType().equals(Protocol.E_REFRESH)) {
			// Append refresh and tail of HTML document
			// Construct the JS callback line to be sent as last line of doc.
			// This will refresh the request using the unique id to determine
			// the subscriber instance on the server. The client will wait for
			// a number of milliseconds.
			long refreshWaitMillis = Long.parseLong(anEvent.getField(P_WAIT));

			// Create servlet request for requesting next events (refresh)
			String url = anEvent.getField(P_URL);
			String jsRefreshTrigger = "\n<script language=\"JavaScript\">url=\'" + url + "\';\n setTimeout(\"refresh()\", " + refreshWaitMillis + ");\n</script>";


			send(jsRefreshTrigger + END_DOCUMENT);
		} else {
			send(event2JavaScript(anEvent));
		}
	}

	/**
	 * End HTML page in client browser.
	 */
	public void stop() {
		// To be garbage collected if adapter remains active
		servletOut = null;
	}

	/**
	 * Send any string to browser.
	 */
	protected void send(String s) throws IOException {
		// Send string to browser.
		// Log.debug("Adapter: sending: " + s);
		if (servletOut == null) {
			throw new IOException("Client adapter was stopped");
		}

		servletOut.print(s);

		servletOut.flush();

		// Note: this doesn't seem to have effect
		// in Tomcat 4/5 if the client already disconnected.
		servletRsp.flushBuffer();

		bytesSent += s.length();
		Log.debug("bytesSent= " + bytesSent);
		// Log.debug("BCA sent event: " + s);
	}

	/**
	 * Converts the Java Event to a JavaScript function call in browser page.
	 */
	protected String event2JavaScript(Event event) throws IOException {

		// Convert the event to a comma-separated string.
		String jsArgs = "";
		for (Iterator iter = event.getFieldNames(); iter.hasNext();) {
			String name = (String) iter.next();
			String value = event.getField(name);
			String nextArgument = (jsArgs.equals("") ? "" : ",") + "'" + name + "'" + ", \"" + value + "\"";
			jsArgs += nextArgument;
		}

		// Construct and return the function call */
		return "<script language=\"JavaScript\">parent.push(" + jsArgs + ");</script>";
	}

}

/*
 * $Log: BrowserAdapter.java,v $
 * Revision 1.6  2007/11/09 13:15:35  justb
 * add charset=UTF-8 in returned HTTP content types
 *
 * Revision 1.5  2006/05/15 11:52:53  justb
 * updates mainly for AJAX client
 *
 * Revision 1.4  2006/05/06 00:10:11  justb
 * various chgs but not too serious...
 *
 * Revision 1.3  2005/02/28 12:45:59  justb
 * introduced Command class
 *
 * Revision 1.2  2005/02/21 11:50:44  justb
 * ohase1 of refactoring Subscriber into Session/Controller/Subscriber
 *
 * Revision 1.1  2005/02/18 10:07:23  justb
 * many renamings of classes (make names compact)
 *
 * Revision 1.12  2005/02/15 13:30:23  justb
 * changes for Tomcat buffering (now working in tc4 and 5.0)
 *
 * Revision 1.11  2005/01/24 22:45:58  justb
 * getting safari to work
 *
 * Revision 1.10  2005/01/18 16:46:27  justb
 * buffer size setting ignored by tomcat workings
 *
 * Revision 1.9  2004/10/24 12:58:18  justb
 * revised client and test classes for new protocol
 *
 * Revision 1.8  2004/09/20 22:01:38  justb
 * more changes for new protocol
 *
 * Revision 1.7  2004/09/03 22:35:37  justb
 * Almost complete rewrite, just checking in now
 *
 * Revision 1.6  2004/08/15 16:00:15  justb
 * enhancements to pull mode
 *
 * Revision 1.5  2004/08/13 23:36:05  justb
 * rewrite of Pullet into Pushlet "pull" mode
 *
 * Revision 1.4  2003/08/15 08:37:40  justb
 * fix/add Copyright+LGPL file headers and footers
 *
 * Revision 1.3  2003/08/12 09:57:05  justb
 * replaced all print statements to Log.*() calls
 *
 * Revision 1.2  2003/05/18 16:15:07  justb
 * support for XML encoded Events
 *
 * Revision 1.1.1.1  2002/09/24 21:02:30  justb
 * import to sourceforge
 *
 * Revision 1.1.1.1  2002/09/20 22:48:17  justb
 * import to SF
 *
 * Revision 1.1.1.1  2002/09/20 14:19:02  justb
 * first import into SF
 *
 * Revision 1.5  2002/04/15 20:42:41  just
 * reformatting and renaming GuardedQueue to EventQueue
 *
 * Revision 1.4  2000/12/27 22:39:35  just
 * no message
 *
 * Revision 1.3  2000/10/30 14:15:47  just
 * no message
 *
 *
 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
波多野结衣在线aⅴ中文字幕不卡| 亚洲码国产岛国毛片在线| 91蝌蚪porny成人天涯| 国产精品一区二区三区99| 日本亚洲最大的色成网站www| 亚洲成人av免费| 亚洲h在线观看| 奇米影视一区二区三区| 免费成人你懂的| 久久精品国产亚洲一区二区三区| 青青草国产精品97视觉盛宴| 麻豆精品国产91久久久久久| 麻豆91免费观看| 国产一区二区精品久久| 国产成人精品网址| 97久久超碰精品国产| 欧美日韩一区三区| 日韩女优电影在线观看| 日本一区二区免费在线观看视频| 日本一二三四高清不卡| 亚洲欧美一区二区三区极速播放 | 亚洲国产精品成人综合| 中文字幕一区二区三区四区不卡| 亚洲精品视频一区| 蜜臀99久久精品久久久久久软件| 国产精品一级二级三级| av在线免费不卡| 欧美电影影音先锋| 久久久国际精品| 国产精品的网站| 依依成人精品视频| 蜜臀av性久久久久蜜臀av麻豆| 成人欧美一区二区三区白人| 亚洲福利电影网| 日本vs亚洲vs韩国一区三区| 久久99精品久久久久久久久久久久 | 成人黄色a**站在线观看| 成人中文字幕电影| 99久久免费精品高清特色大片| 色综合色狠狠综合色| 欧美日韩一区视频| 久久综合999| 亚洲欧美日韩国产中文在线| 亚洲一二三区在线观看| 美女脱光内衣内裤视频久久影院| 国产福利一区二区| 欧美精品乱人伦久久久久久| 成人免费毛片aaaaa**| av亚洲产国偷v产偷v自拍| 色美美综合视频| 在线播放中文字幕一区| 国产精品视频免费看| 夜夜爽夜夜爽精品视频| 国产专区欧美精品| 色噜噜偷拍精品综合在线| 日韩一区二区免费视频| 中文成人综合网| 无吗不卡中文字幕| 高清在线不卡av| 欧美人伦禁忌dvd放荡欲情| 欧美国产激情二区三区 | 日韩一级在线观看| 亚洲素人一区二区| 久久99精品久久久久久动态图| www.成人网.com| 日韩你懂的在线播放| 亚洲与欧洲av电影| www.色综合.com| 欧美三级韩国三级日本一级| 亚洲国产精品高清| 久久精品久久综合| 欧美性猛交xxxx乱大交退制版| 久久精品水蜜桃av综合天堂| 亚洲成av人综合在线观看| 不卡电影一区二区三区| 日韩精品一区在线| 天堂午夜影视日韩欧美一区二区| jvid福利写真一区二区三区| 久久婷婷综合激情| 美腿丝袜亚洲一区| 717成人午夜免费福利电影| 亚洲综合无码一区二区| fc2成人免费人成在线观看播放 | 黑人精品欧美一区二区蜜桃| 欧美日韩亚洲高清一区二区| 亚洲精选视频在线| 风间由美一区二区av101| 久久久久国产精品厨房| 极品少妇xxxx精品少妇| 精品成人一区二区三区四区| 日韩中文欧美在线| 欧美久久久久久久久久| 天天免费综合色| 欧美视频精品在线观看| 亚洲国产视频一区| 色综合久久久久网| 中文字幕中文在线不卡住| 成av人片一区二区| 国产精品入口麻豆九色| 国产自产v一区二区三区c| 精品卡一卡二卡三卡四在线| 久久国产三级精品| 久久精品亚洲精品国产欧美kt∨| 国产精品正在播放| 欧美激情一区在线| av在线不卡免费看| 亚洲电影一级片| 欧美一二三区在线| 东方aⅴ免费观看久久av| 国产日本亚洲高清| 91豆麻精品91久久久久久| 国产精品视频一区二区三区不卡| 国产999精品久久久久久绿帽| 一区二区三区免费| 91精品综合久久久久久| 国产福利精品导航| 亚洲色图.com| 91麻豆精品国产自产在线观看一区| 日韩va欧美va亚洲va久久| 久久婷婷久久一区二区三区| 岛国av在线一区| 亚洲高清视频的网址| 精品日韩一区二区三区免费视频| 丁香五精品蜜臀久久久久99网站| 亚洲免费在线观看| 日韩美女视频在线| 91在线精品秘密一区二区| 日本在线观看不卡视频| 欧美国产精品中文字幕| 日本高清视频一区二区| 国产传媒久久文化传媒| 亚洲国产wwwccc36天堂| 国产无人区一区二区三区| 欧美亚洲一区二区在线| 国产一区二区伦理片| 一区二区日韩电影| 国产亚洲成av人在线观看导航| 欧美视频一区在线观看| 国产福利视频一区二区三区| 天堂一区二区在线| 中文字幕一区二区三区乱码在线| 日韩亚洲欧美成人一区| www.亚洲精品| 韩国成人福利片在线播放| 国产精品二三区| 精品国产露脸精彩对白| 欧美二区在线观看| 色狠狠色狠狠综合| 粉嫩av亚洲一区二区图片| 日本在线不卡视频| 亚洲国产日韩精品| 国产精品不卡在线| 久久久亚洲欧洲日产国码αv| 欧美日韩在线亚洲一区蜜芽| 91在线观看成人| 成人午夜碰碰视频| 粉嫩在线一区二区三区视频| 免费高清在线一区| 日韩国产精品91| 国产精品妹子av| 亚洲人成精品久久久久| 国产精品成人一区二区艾草| 2021中文字幕一区亚洲| 欧美zozo另类异族| 日韩欧美国产午夜精品| 欧美一区三区二区| 91精品国产高清一区二区三区蜜臀| 色94色欧美sute亚洲13| 99精品视频一区二区三区| 成人高清免费观看| 不卡在线观看av| 波多野结衣精品在线| jlzzjlzz欧美大全| 91美女在线视频| 欧美精品777| 欧美一区二区视频在线观看2022| 在线播放亚洲一区| 日韩欧美一级在线播放| 精品国产污网站| 久久久国产精品午夜一区ai换脸| 久久久亚洲高清| 国产精品美女一区二区三区| 国产精品国模大尺度视频| 亚洲欧美日韩国产综合在线| 亚洲免费伊人电影| 亚洲精品视频在线观看免费| 蜜臀久久99精品久久久画质超高清 | 日韩欧美国产电影| 久久综合九色综合欧美98| 国产午夜精品福利| 亚洲欧美日韩系列| 日韩精品一二三四| 国产乱子伦一区二区三区国色天香| 国产精品香蕉一区二区三区| 成人美女视频在线观看18| 国产精品一二三区| 97精品久久久久中文字幕 | 成人涩涩免费视频| 日本黄色一区二区| 日韩美女在线视频|