Java 已调用response.getOutputStream

Java 已调用response.getOutputStream,java,servlets,Java,Servlets,有没有一种方法可以用来检查是否为响应调用了getOutputStream?一种方法是编写一个拦截servlet请求的ServletFilter,使用一个来包装其响应的HttpServletResponse。getOutputStream()将告诉您该方法已被调用,并将调用委托给包装的HttpServletResponse,以返回实际的输出流。为什么要这样做getOutputStream是一个幂等调用。@Santosh我有一个执行某些任务的拦截器,如果getOutputStream(ActionI

有没有一种方法可以用来检查是否为响应调用了getOutputStream?

一种方法是编写一个拦截servlet请求的
ServletFilter
,使用一个来包装其响应的HttpServletResponse。getOutputStream()将告诉您该方法已被调用,并将调用委托给包装的
HttpServletResponse
,以返回实际的输出流。

为什么要这样做
getOutputStream
是一个幂等调用。@Santosh我有一个执行某些任务的拦截器,如果getOutputStream(ActionInvocation.invoke())已经被调用,它会给出一个异常。该方法如何判断response.getOutputStream是否已经被调用,比如如果响应被提交,response.isccelept返回true。假设这将被配置为链中的最后一个筛选器,以便它将是第一个包装来自servlet的响应的筛选器。我已经有一个拦截器,需要在其中进行检查,我无法在中执行此操作ServletFilter@Ankit,拦截器也可以链接,对吗?为什么不在新的拦截器中执行此操作,并确保这是第一个读取输出的拦截器?我当然没有问题的完整背景来说明这是一个要求,还是有另一种方法来解决您的实际用例,其中这是一个步骤。@Ankit,顺便问一下,这是一个servlet/操作还是全部都需要?