Java 我可以检查异步请求是否已完成吗?

Java 我可以检查异步请求是否已完成吗?,java,servlets,asynchronous,httprequest,httpresponse,Java,Servlets,Asynchronous,Httprequest,Httpresponse,是否有任何方法可以检查异步ServletRequest是否从服务器完成?我看到spring有一些类似的功能,但我在标准库中找不到任何东西。这就是我所希望的 我使用的是Tomcat 7。听起来像是其中之一-您要么需要一个侦听器,在异步请求完成时调用它,要么不需要使用异步调用 你的问题有点太笼统了 一般通话-异步呼叫在呼叫方对呼叫的即时结果不感兴趣时使用。 如果呼叫方有兴趣立即知道呼叫结果,则应使用同步呼叫。 如果调用方不想立即知道结果(例如,它具有次要优先级,如登录某些业务应用程序),但在执行异步

是否有任何方法可以检查异步ServletRequest是否从服务器完成?我看到spring有一些类似的功能,但我在标准库中找不到任何东西。这就是我所希望的


我使用的是Tomcat 7。

听起来像是其中之一-您要么需要一个侦听器,在异步请求完成时调用它,要么不需要使用异步调用

你的问题有点太笼统了

一般通话-异步呼叫在呼叫方对呼叫的即时结果不感兴趣时使用。 如果呼叫方有兴趣立即知道呼叫结果,则应使用同步呼叫。 如果调用方不想立即知道结果(例如,它具有次要优先级,如登录某些业务应用程序),但在执行异步调用结束时应执行某些操作,则应使用某种类型的侦听器

异步调用所需的是一些侦听器(javax.servlet.AsyncListener类)

侦听器中您将确定异步调用已结束(onComplete方法),并且可能会执行一些操作来完成/补充异步调用


同样,如果您看到请求的调用者需要在完成后立即知道结果,那么您的体系结构中可能存在错误。您应该使用同步调用——只需等待调用完成,您就可以得到结果。在这种情况下,使用异步调用是错误的



我看到人们如何使用某种循环来不时检查异步调用的结果,但在99.99%的情况下,这种方法似乎是某种架构错误的结果。

听起来像是两种方法中的一种-您需要一个侦听器,在异步请求完成时调用它,或者不需要使用异步调用

你的问题有点太笼统了

一般通话-异步呼叫在呼叫方对呼叫的即时结果不感兴趣时使用。 如果呼叫方有兴趣立即知道呼叫结果,则应使用同步呼叫。 如果调用方不想立即知道结果(例如,它具有次要优先级,如登录某些业务应用程序),但在执行异步调用结束时应执行某些操作,则应使用某种类型的侦听器

异步调用所需的是一些侦听器(javax.servlet.AsyncListener类)

侦听器中您将确定异步调用已结束(onComplete方法),并且可能会执行一些操作来完成/补充异步调用


同样,如果您看到请求的调用者需要在完成后立即知道结果,那么您的体系结构中可能存在错误。您应该使用同步调用——只需等待调用完成,您就可以得到结果。在这种情况下,使用异步调用是错误的



我看到人们如何使用某种循环来不时检查异步调用的结果,但在99.99%的情况下,这种方法似乎是某种架构错误的结果。

您可以注册AsyncListener,它可以实现onComplete()方法


需要将AsyncListener添加到AsyncContext。

您可以注册AsyncListener,它可以实现onComplete()方法

需要将AsyncListener添加到AsyncContext