0 0

servlet,让同步请求阻塞0

我写了一个servlet,想达到这样的目的,当有同步的ajax请求过来时,先让请求阻塞10秒钟,然后再返回一个字符串.
我的实现是这样写的,先让线程sleep10秒钟,然后再返回字符串.
实际的效果是,浏览器中的同步请求,马上就收到一个返回,内容为空.
错在哪里?
2014年10月24日 09:31

1个答案 按时间排序 按投票排序

0 0

同步的Ajax和异步的Ajax前台写法是不一样的,同步情况下Callback就不起作用了,直接从request里面取值就可以了(要看你ajax调用是用jquery还是用的别的什么东西)。
可以把前台的js代码拿过来看看。

和你问题无关,不过Servlet里面sleep本来就是一个很奇怪的事,为什么要这么做。

2014年10月24日 15:54

相关推荐

    Servlet线程安全的解决方法

    首先,它可能会降低Servlet的性能,因为同步会导致线程阻塞;其次,如果同步范围过大,则可能会影响到整个系统的并发性能。 ##### 3. 使用线程局部变量(ThreadLocal) 为了提高性能并确保线程安全,可以考虑使用`...

    Servlet常用语法Demo

    同时,支持异步处理,使得Servlet可以在不阻塞线程的情况下处理长时间运行的任务。 这个"Servlet常用语法Demo"实例将覆盖以上知识点,并提供具体的代码示例,帮助初学者快速上手Servlet开发。通过学习和实践这些...

    异步servlet

    在传统的Servlet中,请求处理是同步的,即Servlet容器接收请求,调用Servlet的service方法进行处理,然后返回响应。这种方式在处理长时间运行的任务时,会占用一个线程,导致线程池资源的浪费,限制了服务器并发处理...

    JavaServlet帮助文档

    7. **异步处理**:从Servlet 3.0版本开始,引入了异步处理能力,允许Servlet在`service()`方法内部启动新的线程来处理请求,而不会阻塞主线程。这提高了应用的并发性能。 8. **分布式Web应用**:Servlet API也提供...

    servlet官方源码

    8. **异步处理**:从Servlet 3.0版本开始,Servlet API支持异步处理,允许Servlet在后台线程中执行耗时操作,而不阻塞请求处理线程。 9. **DispatcherType**:在处理请求时,Servlet容器可以以多种方式分发请求,如...

    Servlet 工作原理解析

    自Java Servlet 3.0版本起,Servlet支持异步处理,允许在`service()`方法内启动一个新的线程,而不会阻塞主线程。这提高了应用程序的并发性能。 7. **Filter链** Servlet还可以与Filter一起使用,Filter可以在...

    Web-Servlet_多线程_

    1. 请求处理:每个用户的HTTP请求被分配到独立的线程,这样可以避免一个请求阻塞其他请求,提高了服务器的响应速度。例如,当用户发起在线聊天请求时,服务器会创建新线程来处理聊天数据的接收和发送。 2. 定时任务...

    深入Java Servlet网络编程

    1. 避免同步阻塞:使用多线程处理请求,减少阻塞时间。 2. 缓存机制:使用缓存减少数据库访问,提高响应速度。 3. 会话管理优化:合理设置session过期时间,避免过多session占用内存。 九、Servlet 3.0新特性 1. ...

    深入 Java Servlet 网络编程

    12. **异步Servlet**:Servlet 3.0引入了异步处理,允许Servlet在处理请求时不阻塞线程,提高服务器性能。`AsyncContext`接口提供了异步操作的相关方法。 了解并掌握这些知识点,将有助于你深入理解Java Servlet...

    servlet源码

    `AsyncContext`允许Servlet在不阻塞线程的情况下处理请求,提高性能和可伸缩性。 通过对Servlet源码的深入学习,开发者能够更好地理解Web应用的工作原理,从而编写出更高效、更灵活的Java Web服务。同时,这也为...

    Servlet和Android网络交互1

    Servlet和Android之间的网络交互是移动应用开发中的常见需求,它使得Android客户端能够与服务器进行数据交换,实现诸如用户登录、数据同步、文件上传下载等功能。本篇将详细讲解Servlet和Android进行网络交互的基础...

    Servlet3.0_新特性

    在Servlet3.0之前,Servlet处理请求的过程通常是同步的,即Servlet线程在接收请求后会阻塞,直到所有业务处理完成并生成响应,然后才结束。这种模式在处理高延迟任务(如数据库查询或远程服务调用)时会导致线程长...

    android客户端与servlet服务端交互的很好的例子

    - 为了避免阻塞UI线程,通常在Android中使用异步请求。这可以通过`AsyncTask`、`Handler`、`Runnable`+`Thread`或第三方库如Retrofit和Volley实现。 - 示例可能包含了异步处理请求和回调结果到主线程的方法。 10....

    tomcat中多线程对于servlet处理的4篇资料

    从Servlet 3.0开始,Servlet API提供了异步处理能力,允许Servlet在不阻塞线程的情况下处理请求,从而提高了系统的并发能力。不过,Tomcat 5.5.17并不支持这一特性,需要升级到更高级别的版本才能利用。 9. **请求...

    Web on Servlet Stack

    - **Multipart Requests**:对于包含文件上传的请求,Spring提供了两种主要的支持方式:`CommonsFileUpload`和Servlet 3.0的原生支持。 **Filters** 除了核心的`DispatcherServlet`之外,还可以配置过滤器来处理...

    安卓客户端&Servlet服务器端实现

    3. **发送请求**:使用HTTP库的`enqueue`或`execute`方法发起异步或同步请求。异步请求更适合避免阻塞UI线程。 4. **处理Servlet响应**:服务器端的Servlet接收到请求后,会根据请求内容执行相应的操作,如查询...

    servlet3.1规范

    4. **异步处理**:Servlet 3.1增强了异步处理能力,通过`AsyncContext`接口,Servlet可以启动一个异步操作并在后台执行,从而避免阻塞线程,提高了服务器性能。 5. **依赖注入**:Servlet 3.1引入了CDI(Contexts ...

    Servlet是线程不安全的1

    "Servlet线程不安全" Servlet是一种线程不安全的组件,它的线程不安全性体现...Servlet的线程不安全性是由于多线程环境下共享一个实例变量导致的,而解决方法是使用ThreadLocal变量或其他同步机制来避免线程安全问题。

    1工作临时-servlet 多线程问题

    1. **Servlet实例化策略**:使用Per-Thread(每个线程一个实例)模型,或者采用Prototype(原型)模式,让容器为每个请求创建一个新的Servlet实例,但这会增加内存开销。 2. **线程安全编程**:对于必须共享的成员...

Global site tag (gtag.js) - Google Analytics