首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

Tomcat6推送技术的施用

2013-08-04 
Tomcat6推送技术的使用CometEvent event.... event.setTimeout(30*1000)orevent.getHttpServletRequest()

Tomcat6推送技术的使用
Tomcat6推送技术的施用Tomcat6推送技术的施用Tomcat6推送技术的施用Tomcat6推送技术的施用

CometEvent event.... event.setTimeout(30*1000);
Tomcat6推送技术的施用Tomcat6推送技术的施用Tomcat6推送技术的施用Tomcat6推送技术的施用

or

Tomcat6推送技术的施用Tomcat6推送技术的施用Tomcat6推送技术的施用Tomcat6推送技术的施用
event.getHttpServletRequest().setAttribute("org.apache.tomcat.comet.timeout", new Integer(30 * 1000));
Tomcat6推送技术的施用Tomcat6推送技术的施用Tomcat6推送技术的施用Tomcat6推送技术的施用

This sets the timeout to 30 seconds. Important note, in order to set this timeout, it has to be done on the?BEGIN?event. The default value is?soTimeout

?

?

??????简单的Comet servlet代码示例:

package com.easyway.comet.pushlet;import java.io.*;import javax.servlet.ServletException;import javax.servlet.http.*;import org.apache.catalina.CometEvent;import org.apache.catalina.CometProcessor;import org.apache.catalina.CometEvent.EventType;/** * Tomcat6推送技术通过时现实tomcat的推送接口CometProcessor实现的servlet实现推送技术,在 * servlet中out.close()方法不能使用,否則不能持續推送信息. * <p>功能描述,该部分必须以中文句号结尾。<p> * * 创建日期  2013-7-21<br> * @author  longgangbai <br> * @version $Revision$ $Date$ * @since   3.0.0 */public class CometServlet extends HttpServlet implements CometProcessor {    //    private static final long serialVersionUID = 1L;    public void event(CometEvent e) throws IOException, ServletException {        if (e.getEventType() == EventType.BEGIN) {            // fill in code handling here           HttpServletResponse response = e.getHttpServletResponse();            PrintWriter out = response.getWriter();            out.write("Hello world");            out.flush();             //System.out.println("message sent");        }else if (e.getEventType() == EventType.READ) {        }else if (e.getEventType() == EventType.ERROR) {        }else if(e.getEventType() == EventType.END){        }              // and continue handing other events    }}

?

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  <display-name>CometTomcat6</display-name>  <servlet>     <servlet-name>cometTomcet6</servlet-name>     <servlet-class>com.easyway.comet.pushlet.CometServlet</servlet-class>  </servlet>  <servlet-mapping>      <servlet-name>cometTomcet6</servlet-name>      <url-pattern>/cometServlet</url-pattern>  </servlet-mapping>  <welcome-file-list>    <welcome-file>index.html</welcome-file>    <welcome-file>index.htm</welcome-file>    <welcome-file>index.jsp</welcome-file>    <welcome-file>default.html</welcome-file>    <welcome-file>default.htm</welcome-file>    <welcome-file>default.jsp</welcome-file>  </welcome-file-list></web-app>

?

html界面代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head> <script> //服务器端代码类似与普通Ajax代码,其中,需要注意的是:request.readyState值如果设置为4,浏览器会处于长期等待状态,而收不到响应消息,设置为3后,firefox浏览器正常,但IE不能正常获得消息 function CometEx() {   var request =  new XMLHttpRequest();   request.open("GET", "http://localhost:8080/CometTomcat6/cometServlet", true);   request.onreadystatechange = function() {     if (request.readyState == 3 && request.status == 200) {            alert(request.responseText);          }   }   request.send(null); } </script><body onload="CometEx();"></body></html>

?

热点排行