Java servlet 3.0异步流的行为

Java servlet 3.0异步流的行为,java,servlet-3.0,asynchronous,Java,Servlet 3.0,Asynchronous,我正在弄清楚异步servlet流是如何异步运行的 如果有一个servlet servlet_1,我们将从servlet调用实用程序类SampleUtility的util方法,并在util方法中进行某种操作后将一些值返回给servlet 因此,对于异步流,我们需要将asyncContext传递给util方法,还是只需要通过语句启动asyncContext AsyncContext asyncContext = request.startAsync(); 流是否足够异步 流是否足够异步 不,这还

我正在弄清楚异步servlet流是如何异步运行的

如果有一个servlet servlet_1,我们将从servlet调用实用程序类SampleUtility的util方法,并在util方法中进行某种操作后将一些值返回给servlet

因此,对于异步流,我们需要将asyncContext传递给util方法,还是只需要通过语句启动asyncContext

 AsyncContext asyncContext = request.startAsync();
流是否足够异步

流是否足够异步

不,这还不够。要在servlet上启用异步处理,请在
@WebServlet
注释中将参数
asynchsupported
设置为
true
,如下所示:

  @WebServlet(urlPatterns={"/asyncservlet"}, asyncSupported=true)
  public class AsyncServlet extends HttpServlet { ... }
有关详细信息,请参阅此

流是否足够异步

不,这还不够。要在servlet上启用异步处理,请在
@WebServlet
注释中将参数
asynchsupported
设置为
true
,如下所示:

  @WebServlet(urlPatterns={"/asyncservlet"}, asyncSupported=true)
  public class AsyncServlet extends HttpServlet { ... }

有关详细信息,请参阅。

AsyncContext.forward(path)
AsyncContext.forward()
,它们将请求转发回容器,以便您可以使用JSP之类的框架生成响应。因此,您需要将
asyncContext
传递给该方法,因为
asyncContext
提供了获取
ServletRequest
ServletResponse
对象引用的方法。

asyncContext.forward(path)
asyncContext.forward()
将请求转发回容器,以便您可以使用JSP等框架生成响应。因此,您需要将
asyncContext
传递给该方法,因为
asyncContext
提供了获取
ServletRequest
ServletResponse
对象引用的方法。

要使Servlet异步,必须执行3个步骤

  • 将WebServlet注释注释为

    @WebServlet(urlPatterns={/servletexample},aysncSupported=true)

    将其标记为asyncSupported true将使其能够进行异步流

  • 通过以下语句启动AsyncContext

    AsyncContext ac=request.startAsync()

  • 最后实现
    startAsync()

    asyncContext.start(新的Runnable(){
    公开募捐{
    //在这里编写非阻塞代码
    }
    }


  • 要使Servlet异步,必须执行3个步骤

  • 将WebServlet注释注释为

    @WebServlet(urlPatterns={/servletexample},aysncSupported=true)

    将其标记为asyncSupported true将使其能够进行异步流

  • 通过以下语句启动AsyncContext

    AsyncContext ac=request.startAsync();

  • 最后实现
    startAsync()

    asyncContext.start(新的Runnable(){
    公开募捐{
    //在这里编写非阻塞代码
    }
    }


  • 我知道将参数asyncSupported设置为true是必要的,但我询问的是流程我知道将参数asyncSupported设置为true是必要的,但我询问的是流程