声明:本代码来源于北京圣思园张龙讲师
package com.jereh;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.AsyncContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name="SecondServlet",urlPatterns="/SecondServlet",asyncSupported=true)
// 蓝色字体表示servlet3.0(默认情况下为false)允许异步操作
public class SecondServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter out = resp.getWriter();
out.println("servlet starts:" + new Date());
out.flush(); //刷新缓冲区
AsyncContext context = req.startAsync();
Thread thread = new MyThread(context) ;
thread.start();
out.println("servlet ends"+new Date());
}
}
-------------------------------------------分割线下为线程部分-----------------------------------------------------------------------------------------------------
package com.jereh;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.AsyncContext;
import javax.servlet.ServletResponse;
public class MyThread extends Thread {
private AsyncContext context ;
public MyThread(AsyncContext context)
{
this.context = context ;
}
@Override
public void run() {
try {
ServletResponse response = context.getResponse();
PrintWriter out = response.getWriter();
out.println("async starts:"+ new Date());
Thread.sleep(7000);
out.println("async ends:"+ new Date());
context.complete(); // 通知主线程,该线程已经完成
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
Servlet3.0 异步处理 页面推送 Comet 实例
servlet 3.0 异步 推送 聊天室,application.js里的上下文路径修改成当前上下文,就可以运行了。
servlet3.0使用手册,这里面有详细的api参考,使用很方便
用servlet3.0异步技术,实现推送信息至客户端的聊天室
主要介绍了Java中Servlet3.0异步处理的原理以及遇到的问题分析,需要的朋友参考一下。
Servlet3.0新特性解析_02_Servlet3.0的异步支持与反向Ajax深入详解Servlet3.0新特性解析_02_Servlet3.0的异步支持与反向Ajax深入详解
servlet3.0jar下载,非常好用的控制器工具类包,servlet3.0jar下载,非常好用的控制器工具类包,
Servlet3.0新特性解析_03_Servlet3.0监听器、过滤器实现方式详解及Servlet的动态注册剖析
Servlet 是 Java EE 规范体系的重要组成部分,也是 Java 开发人员必须具备的基础...本文主要介绍了 Servlet 3.0 引入的若干重要新特性,包括异步处理、新增的注解支持、可插性支持等等,为读者顺利向新版本过渡扫清障碍
* @project servlet3.0 * servlet3.0的文件上传 * @date:2012-5-21 *在创建项目的时候首先添加Tomcat7.x的支持,然后把apache-tomcat-7.0.27\conf\web.xml拷贝到项目WEB-INF目录下 *把之前的web.xml覆盖.. 配置...
servlet 3,jar 包综合;用于javaEE servlet 3.0 开发使用。
基于servlet3.0手写springmvc,实现了IOC和处理器映射器以及处理器映射器功能。
servlet3.0.zip
个人整理的JavaServlet 3.0的API,按Java6 API的风格整理
servlet3.0-demo, 上传文件demo,基于注解开发
Servlet 3.0 源码文件,可以在myeclipse中查看servlet的代码,方便编程
servlet3.0相关的包 包含 sevlet servlet-api jstl jstl-impl相关版本的包
非常好的学习Servlet3.0资料。特此共享。
maven servlet 3.0 eclipse config video