Servlet的PrintWriter输出流是否真的需要关闭?

13

我编写了一个简单的servlet,代码如下:

public class MyServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        // [do stuff with the PrintWriter]
        out.close();
    }
}

关闭PrintWriter输出流是必要的吗?如果我不关闭流,那会影响之后的任何事情吗?


1
可能是重复的问题:https://dev59.com/knM_5IYBdhLWcg3w8IHR - Gustav Barkefors
可能是Should I close the servlet outputstream?的重复问题。 - BalusC
1个回答

19

如果不是你打开流,那就不要关闭它。

容器打开了流,因此关闭的责任也在容器身上。


我正在使用Tomcat 5.5,但在他们的文档中没有找到任何提及此事的内容。 - ajduke
因此,您不需要关闭它 ;) - Bozho
1
在我的应用程序关闭PrintWriter流的时候,特别是在高并发情况下,我遇到了很多Tomcat方面的问题。除非你知道自己在做什么,否则不要使用flush()方法。否则你会覆盖容器的缓冲机制。 - Hal50000

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接