`
yesjavame
  • 浏览: 691847 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

一段Server Push的调试

阅读更多

现在能搜索到的99年最早的在国内介绍Server Push的文章就是自己那篇"Server Push具体实现",今天调试竟然花了很长时间

才正常工作。放在这里做记录吧:

package test;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Test extends HttpServlet{
public void service(HttpServletRequest request,HttpServletResponse response)
throws IOException
{
ServletOutputStream out = response.getOutputStream();
String strBoundary = "myRandomString";
response.setContentType("multipart/x-mixed-replace;boundary=" + strBoundary);

out.print("--"+strBoundary+"\r\n");
out.print("Content-type: image/jpeg\r\n\r\n");
File f = new File("d:/96.jpg");
byte[] buf = new byte[(int)f.length()];
FileInputStream in = new FileInputStream(f);
in.read(buf);
in.close();
out.write(buf);
out.flush();

try{
Thread.sleep(2000);
}catch(Exception e){}
for(int i = 0; i < 10; i++){
out.print("--"+strBoundary+"\r\n");
out.print("Content-type: text/html\r\n\r\n");
out.print("<script>alert(1)</script>\r\n\r\n");
out.flush();
try{
Thread.sleep(1000);
}catch(Exception e){}
}
out.print("--"+strBoundary+"--\r\n");
}
}

分享到:
评论

相关推荐

    轻量级消息推送client&server

    - **消息存储**:为了防止消息丢失,服务器可能需要存储一段时间内的消息,以便客户端在网络不稳定时可以获取。 3. **Struts2在消息推送中的应用**: - **控制器**:Struts2的Action类可以作为服务器端的消息处理...

    pushlet 例子

    在长轮询中,服务器在没有新数据时不会立即响应,而是等待一段时间或直到有新数据为止,这样减少了不必要的网络交互,提高了实时性。 综上所述,Pushlet例子主要涵盖了以下知识点: 1. Comet技术:一种让服务器能...

    应用于Android手机硬件开发调试的adb工具包

    adb(Android Debug Bridge)是Android系统提供的一款强大的命令行工具,用于帮助开发者进行设备通信、数据传输和应用程序调试。在Android手机硬件开发调试过程中,adb工具包起着至关重要的作用。下面将详细介绍adb...

    php笔试+面试 pdf很权威的东西哦

    5. JavaScript定时器:文档中展示了如何使用setTimeout函数来实现在打开网页一段时间后自动跳转到另一个网页的功能。这在需要用户在一定时间后进行页面跳转或提交表单等操作时非常有用。 6. PHP全局变量$_SERVER:...

    nginx 1.7.11.3 Gryphon(增加启动和停止脚本).rar

    在这个配置中,`live`指令开启直播功能,`record off`表示不保存流媒体文件,而`push`指令则将流推送到另一个备用服务器。 **监控和调试** 为了确保服务的正常运行,需要监控Nginx的日志文件,如`error.log`和`...

    集成了nginx-http-flv-module 1.2.7模块的64位nginx程序

    push rtmp://remote-server/live; } } } http { ... server { listen 80; location /live/ { flv_live on; alias /path/to/flv/files/; } } } ``` 上述配置开启了一个RTMP服务器,并定义了一个名为`...

    【明日科技】实战突击javaweb整合开发1-4章

    3. **JSP(JavaServer Pages)**:JSP是Servlet的另一种表现形式,更侧重于视图层。它允许在HTML中嵌入Java代码,简化了页面开发。理解JSP指令、脚本元素、EL(Expression Language)和JSTL(JavaServer Pages ...

    nginx-1.19.6_nginx-http-flv-module(64位)

    - **logs**: 记录Nginx的日志文件,包括错误日志和访问日志,这对于调试和监控服务器状态至关重要。 **配置和使用** 使用Nginx-1.19.6并集成HTTP-FLV-Module,你需要编辑`conf/nginx.conf`,添加或修改以下配置段...

    Windows漏洞利用开发系列教程第四部分:Egg-寻蛋

    文中还展示了一段寻蛋指令的实例,其中包含了一些汇编语言指令,比如push、pop、int、cmp、jmp等。这些指令联合使用实现了一个程序,该程序能逐个字节地搜索内存,直到找到之前设定的egg头(如例子中的b33f),然后...

    PHP入门电子书

    由于给出的部分内容实际上是一段无法识别的文字,因此我们将主要依据标题、描述以及标签来展开相关的知识点。 ### PHP基础知识 #### 1. PHP简介 - **定义**:PHP是一种开源的服务器端脚本语言,常用于Web开发。 - ...

    毕业实习报告

    此外,还需要深入理解短信和彩信的业务机制,包括长短信处理、Push消息、计费系统、状态报告和短信流程等,同时熟悉不同类型的短彩网关。 【实习过程】 实习过程通常分为几个阶段,首先是公司内部的集训,让学生...

    INFORMATIC_培训

    - **高可用性(HA)**:Informatica支持高可用性配置,如Server Grid、Session On Grid等,以保证系统的稳定运行。 - **团队协作开发**:通过Team Based Development功能,支持多人协作开发,提高开发效率。 - **元...

    ECP项目开发资料(初学者使用)

    4. **数据库管理**:ECP系统通常涉及数据存储和检索,因此,SQL语言和关系型数据库管理系统(如MySQL、Oracle或SQL Server)的基础知识是必要的。此外,NoSQL数据库如MongoDB也可能被用于非结构化数据处理。 5. **...

    vue.config.js配置介绍

    config.plugins.push(new MyCustomWebpackPlugin()); } }; ``` 7. `devServer`: 这里可以配置开发服务器的参数,如代理(proxy)、端口(port)、自动打开浏览器(open)等。例如,配置一个反向代理到后端...

    windowsnt 技术内幕

    Group) 理解删除一个组的影响 域控制器(Domain Controller)简介 成员服务器(Member Server) 备份域控制器(Backup Domain Controller)的升级 将一个主域控制器降级为备份域控制器 把成员服务器升级为域控制器 域控制...

    C++连接并使用MySQL数据库

    * mysql_debug():用给定字符串做一个DBUG_PUSH。 * mysql_drop_db():抛弃一个数据库。该函数不推荐;而使用SQL命令DROP DATABASE。 * mysql_dump_debug_info():让服务器将调试信息写入日志文件。 * mysql_eof():...

    has-lab.github.io

    在进行代码贡献或修改前,开发者通常会先拉取(Pull)最新的源代码到本地,然后执行一个名为`./run_server`的脚本来启动服务器,这使得他们可以在本地查看和调试网站的运行效果,而不是直接在GitHub上进行。...

    Contacts

    My JSON Server是一个基于Node.js的服务,允许开发者快速搭建一个假的API,用于测试和原型设计。你可以通过HTTP请求来GET、POST、PUT、DELETE数据,就像操作真实的数据库一样。在这个例子中,路径"/kholehk/Contacts...

Global site tag (gtag.js) - Google Analytics