- 浏览: 939793 次
- 性别:
- 来自: 江西上饶
文章分类
- 全部博客 (460)
- p.spring (56)
- p.maven (20)
- p.ant (17)
- p.jee (18)
- p.jse (33)
- p.ofbiz (31)
- p.软件工程 (8)
- p.struts2 (5)
- p.hibernate (5)
- linux (25)
- 设计模式 (2)
- p.javascript (11)
- 硬件 (1)
- p.jsp (2)
- p.windows批处理 (1)
- 操作系统问题 (5)
- 算法 (1)
- p.mysql (7)
- p.sql (5)
- p.c (1)
- google产品 (0)
- 内存 (1)
- p.struts (1)
- p.freemarker (7)
- p.css (4)
- p.log4j (10)
- p.html (3)
- 淘宝产品 (0)
- 其他 (3)
- 编译器 (0)
- svn (4)
- p.spring.security (11)
- 图形 (0)
- p.xml (1)
- p.ssh (0)
- p.jquery (4)
- p.jdbc (3)
- p.flex (0)
- p.c++ (0)
- p.c#Net (0)
- p.assembly (0)
- p.sqlserver (0)
- p.其他 (3)
- p.webwork (21)
- p.wap (12)
- p.cglib (1)
- p.jee服务器 (11)
- windows (2)
- p.iphone (1)
- p.java.分布式与集群 (2)
- p.ibatis (16)
- p.eclipse (5)
- 架构 (2)
- http协议 (5)
- 我的个人标准 (2)
- 多线程 (1)
- 奇怪问题 (5)
- p.jira (13)
- p.httpclient (1)
- 服务器.apache (11)
- 安全防范 (1)
- p.PODAM (1)
- p.junit (16)
- fop (2)
- 硬盘安装 (1)
- powerdesigner (0)
- 单元测试 (1)
- apache commons (4)
- tomcat+apache集群 (10)
- 各类诡辩 (1)
- 安卓 (8)
- qvod (1)
- java编程基础知识考试考点及答案 (0)
- 工作总结 (4)
- oracle (0)
- spring的util工具 (3)
- json (2)
- maven (3)
- jms (19)
- p.bat (3)
- hadoop (2)
- git (3)
- nginx (1)
- p.移动开发 (1)
- shiro (3)
- 游戏破解 (1)
- react-native (7)
- ios开发 (1)
- webmagic (6)
- socks5 (1)
最新评论
-
weituotian:
说的不好,没人看的
公司系统中的菜单功能和权限功能 -
石不易:
非常详细的注解~
绑定端口和IP,Listen 与VirtualHost指令 -
spring_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
spring mvc -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装 -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装
假设一种情况,你的一个servlet会处理比较长的时间,而且这个servlet请求数量也挺多的,那么久会造成tomcat线程池被占用满了,造成其他用户的请求等待队列过多,时间过长。
用例子实现
首先需要开启
或者
用例子实现
首先需要开启
<servlet> <servlet-name>webProxyMain</servlet-name> <servlet-class>com.lsiding.nat.server.web.WebProxyMain</servlet-class> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet>
或者
@WebServlet(value = "/asyncTest", asyncSupported=true)
package com.lsiding.admin4j.act; import java.io.IOException; 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; /** * Servlet implementation class AsyncTest */ @WebServlet(value = "/asyncTest.html", asyncSupported = true) public class AsyncTest extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public AsyncTest() { super(); } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); // 必须 // 否则可能会 A filter or servlet of the current chain does not support // asynchronous operations. request.setAttribute("org.apache.catalina.ASYNC_SUPPORTED", true); AsyncContext asyncCtx = request.startAsync(); asyncCtx.addListener(new AppAsyncListener()); asyncCtx.setTimeout(9000); asyncCtx.start( new Thread() { public void run() { try { try { asyncCtx.getResponse().getOutputStream() .println("thread"); asyncCtx.getResponse().getOutputStream().flush(); } catch (IOException e) { } Thread.sleep(8000); asyncCtx.complete(); } catch (InterruptedException e) { } ; } }); response.getOutputStream() .write("请求方法返回了,但是response是否结束了呢?".getBytes()); response.getOutputStream().flush(); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
package com.lsiding.admin4j.act; import java.io.IOException; import javax.servlet.AsyncEvent; import javax.servlet.AsyncListener; public class AppAsyncListener implements AsyncListener { @Override public void onComplete(AsyncEvent asyncEvent) throws IOException { asyncEvent.getAsyncContext().getResponse().getOutputStream().println("onComplete"); asyncEvent.getAsyncContext().getResponse().getOutputStream().flush(); } @Override public void onError(AsyncEvent asyncEvent) throws IOException { asyncEvent.getAsyncContext().getResponse().getOutputStream().println("onError"); asyncEvent.getAsyncContext().getResponse().getOutputStream().flush(); } @Override public void onStartAsync(AsyncEvent asyncEvent) throws IOException { asyncEvent.getAsyncContext().getResponse().getOutputStream().println("onStartAsync"); asyncEvent.getAsyncContext().getResponse().getOutputStream().flush(); } @Override public void onTimeout(AsyncEvent asyncEvent) throws IOException { asyncEvent.getAsyncContext().getResponse().getOutputStream().println("asyncEvent"); asyncEvent.getAsyncContext().getResponse().getOutputStream().flush(); } }
发表评论
-
tomcat配置
2019-07-26 15:54 378http://tomcat.apache.org/tomcat ... -
Spring 定时任务,cron表达式,@Scheduled cron表达式
2016-04-25 15:48 5266一个cron表达式有至少6 ... -
tomcat https
2015-09-02 13:50 651一、 什么是HTTPS 在说HTTPS之前先说说什么是HTT ... -
关于使用s.url jstl的上下文
2015-08-16 13:28 885比如 [@s.url '/'/]index.html?cote ... -
视频编码转化
2015-08-14 10:51 1351JAVA目前的转化库没发现过,网上提供的方案是通过java作为 ... -
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
2015-08-14 09:52 1972Neither the JAVA_HOME nor the J ... -
web.xml url-pattern
2015-08-03 01:54 542全站匹配 /* 而不是*,因为jee标准要求url-pat ... -
servlet3.0
2014-11-13 23:04 408异步处理支持 首先,Servlet 接收到请求之后,可能首先需 ... -
java获取当前类的绝对路径
2013-12-14 00:37 8571.如何获得当前文件路径 常用: (1).Test.class ... -
Tomcat Content is not allowed in prolog
2013-07-10 10:19 1299Apache-Tomcat 运行问题 Content is n ... -
整站国际化方案
2012-11-28 17:46 1075当前常见的实现方式,主要由两种方案实现 1.通过locale ... -
java
2012-09-06 14:04 0循环的性能 考点说明 1 ... -
java
2012-09-06 14:01 0有继承关系的类之间的 ... -
在eclipse中启动tomcat很慢
2012-06-07 10:36 1656这个原因可能是断点过多,删除所有断点后,就不会了。 -
workers.properties
2012-03-19 23:23 1536使用键值对方式 xxx=dddd方式 worker.list ... -
中文帮助文档
2012-03-16 17:26 969http://lamp.linux.gov.cn/Apache ... -
mod_jk
2012-03-11 13:50 1136mod_jk至少需要两部分 mod_jk.xx,这是apach ... -
Unicode 各种特殊字符编码值
2012-02-25 15:13 6317https://developer.mozilla.org/c ... -
iframe下面的session问题
2011-12-04 19:52 5270在写iframe完成长连接获取上传状态的时候,有两次请求,一次 ... -
tomcat内存设置设置
2011-10-19 13:08 1318For Windows If you haven´t ins ...
相关推荐
Servlet3.0 异步处理 页面推送 Comet 实例
servlet 3.0 异步 推送 聊天室,application.js里的上下文路径修改成当前上下文,就可以运行了。
用servlet3.0异步技术,实现推送信息至客户端的聊天室
主要介绍了Java中Servlet3.0异步处理的原理以及遇到的问题分析,需要的朋友参考一下。
Servlet3.0新特性解析_02_Servlet3.0的异步支持与反向Ajax深入详解Servlet3.0新特性解析_02_Servlet3.0的异步支持与反向Ajax深入详解
Servlet 是 Java EE 规范体系的重要组成部分,也是 Java 开发人员必须具备的基础...本文主要介绍了 Servlet 3.0 引入的若干重要新特性,包括异步处理、新增的注解支持、可插性支持等等,为读者顺利向新版本过渡扫清障碍
在spring 3.2 及以后版本中增加了对请求的异步处理,这篇文章主要介绍了Spring Boot实现异步请求(Servlet 3.0),感兴趣的小伙伴们可以参考一下。
• 异步Servlet • Servlet 3.0 — 易于开发 – 主要关注点 • 增强了API 以便使用SE 5 中新的语言特性 – 例如:批注、泛型(Generics) – 在上次JavaEE 5 中漏掉的Servlet • 部署描述批注 – 现在web.xml 为可选 ...
主要介绍了详解Servlet 3.0/3.1 中的异步处理,实例分析了servlet 3.0异步处理的技巧,非常具有实用价值,需要的朋友可以参考下
NULL 博文链接:https://fanshuyao.iteye.com/blog/1688318
本篇文章主要介绍了servlet3异步原理与实践,详细的介绍了servlet和异步的流程使用,具有一定的参考价值,有兴趣的可以了解一下
通过Servlet 3.0 AsyncContext导出服务的方法 如何获得? 您可以将其用作Maven依赖项: < groupId>org.jmmo < artifactId>async-hessian < version>1.1 或在以下位置下载最新版本: : 如何使用它? 创建...
TOMCAT 7新特性 1 使用随机数去防止跨站脚本攻击。 2 改变了安全认证中的jessionid... 根据Mark Thomas,Tomcat 7委员会的经理的说法,Tomcat 7最显著的三个特征是Servlet 3.0,内存检测泄露和增强的安全特性。
基于spring+serlvet+CXF+servlet异步实现等融合成的开发框架,可以实现多线程和异步并发操作,采用servlet3.0自带的异步实现方式,jdk1.6版本,javaee1.6
根据Mark Thomas,Tomcat 7委员会的经理的说法,Tomcat 7最显著的三个特征是Servlet 3.0,内存检测泄露和增强的安全特性。 Tomcat 7的例子程序中,包含了Eclipse的工程文件和Ant的构建文件,以方便去构建war文件...
1. 异步处理支持:有了该特性,Servlet 线程不再需要一直阻塞,直到业务处理完毕才能再输出响应,最后才 结束该 Servlet 线程。在接收到请求之后,Servlet 线程可以将耗时的操作委派给另一个线程来完成,自己 在不...
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 以及 ...