所谓异步处理就是指数据发送方发送数据给数据接收方后,不必等待数据接收方作出响应,可以继续发送下一个数据的通信方式。
Servlet 3.0版本提供了相关异步处理的功能,具体实现方式如下:
- 需要使用注解在对应Servlet配置asyncSupported=true,表示当前Servlet支持异步。
- 通过Request对象的startAsync(Request, Response)方法获取异步上下文对象。
- 通过异步上下文对象调用start(new Runnable(){})方法开始异步处理,Runnable类的run()方法提供具体异步的逻辑代码。
根据上述步骤,通过一个代码实例演示。
@WebServlet(urlPatterns="/async",asyncSupported=true)
public class AsyncServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, final HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().print("马上开始:<br/>");
resp.getWriter().flush();
final AsyncContext ac = req.startAsync(req, resp);
ac.start(new Runnable() {
@Override
public void run() {
try {
for (char ch = 'A'; ch <= 'Z'; ch++) {
resp.getWriter().print(ch);
resp.getWriter().flush();
Thread.sleep(250);
}
ac.complete();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
});
}
}
转载说明:请注明作者及原文链接,谢谢!
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
Servlet 是 Java EE 规范体系的重要组成部分,也是 Java 开发人员必须具备的基础...本文主要介绍了 Servlet 3.0 引入的若干重要新特性,包括异步处理、新增的注解支持、可插性支持等等,为读者顺利向新版本过渡扫清障碍
Servlet3.0新特性解析_02_Servlet3.0的异步支持与反向Ajax深入详解Servlet3.0新特性解析_02_Servlet3.0的异步支持与反向Ajax深入详解
NULL 博文链接:https://fanshuyao.iteye.com/blog/1688318
Servlet3.0 异步处理 页面推送 Comet 实例
JavaEE 6Servlet 3.0 中的新特性 • 易于开发和部署 • 模块化web.xml • 动态配置 • 异步Servlet • Servlet 3.0 — 易于开发 – 主要关注点 • 增强了API 以便使用SE 5 中新的语言特性 – 例如:批注、泛型...
用servlet3.0异步技术,实现推送信息至客户端的聊天室
servlet 3.0 聊天室 推送 异步
主要介绍了详解Servlet 3.0/3.1 中的异步处理,实例分析了servlet 3.0异步处理的技巧,非常具有实用价值,需要的朋友可以参考下
在spring 3.2 及以后版本中增加了对请求的异步处理,这篇文章主要介绍了Spring Boot实现异步请求(Servlet 3.0),感兴趣的小伙伴们可以参考一下。
主要介绍了Java中Servlet3.0异步处理的原理以及遇到的问题分析,需要的朋友参考一下。
本篇文章主要介绍了servlet3异步原理与实践,详细的介绍了servlet和异步的流程使用,具有一定的参考价值,有兴趣的可以了解一下
通过Servlet 3.0 AsyncContext导出服务的方法 如何获得? 您可以将其用作Maven依赖项: < groupId>org.jmmo < artifactId>async-hessian < version>1.1 或在以下位置下载最新版本: : 如何使用它? 创建...
TOMCAT 7新特性 1 使用随机数去防止跨站脚本攻击。 2 改变了安全认证中的jessionid的机制,防止session攻击。 3 内存泄露的侦测和防止 4 在war文件外使用别名去存储静态内容。 TOMCAT 7的增强...
1. 异步处理支持:有了该特性,Servlet 线程不再需要一直阻塞,直到业务处理完毕才能再输出响应,最后才 结束该 Servlet 线程。在接收到请求之后,Servlet 线程可以将耗时的操作委派给另一个线程来完成,自己 在不...
TOMCAT 7新特性 1 使用随机数去防止跨站脚本攻击。 2 改变了安全认证中的jessionid的机制,防止session攻击。 3 内存泄露的侦测和防止 4 在war文件外使用别名去存储静态内容。 TOMCAT 7的增强功能...
基于spring+serlvet+CXF+servlet异步实现等融合成的开发框架,可以实现多线程和异步并发操作,采用servlet3.0自带的异步实现方式,jdk1.6版本,javaee1.6
1.4 Servlet 与其他技术的比较 ........................................................................................................................14 1.5 与 Java 平台企业版的关系 ......................
本系统主要实现火车查询售票功能,主要的功能如下: 客户端管理功能: (1)动车基本信息管理模块;...4.本设计采用JSP+Servlet+EJB3.0+Oracle10g工具进行开发,最后通过JDBC进行与数据库的相关的链接。
项目描述:基于 servlet 开发的系统 1.学生可以查看自己的信息,管理员可以修改学生信息以及注册自己的信息、 2.前 HTMl+css+javascipt,框架是 Bootstrap4.0,Jquery3.2 表单验证,异步请求、 3.数据库 Mysql 以及 ...