我有一个类似的代码...
class DemoServlet extends HttpServlet
{
doPost(HttpReqeust httpRequest,HttpResponse httpResponse)
{
try {
ObjectInputStream input=new ObjectInputStream(httpRequest.getInputStream());
Object ojb=input.readObject();
ObjectOutputStream output=new ObjectOutputStream(httpResponse.getOutputStream());
}
catch(Exception ex){
ex.printStackTrace();
}
finally{
input.close(); // it is necessary to close or it will handle by the servlet container to
output.close(); // the outputstream or inputstream.
}
}}
我知道关闭 httpRequest.getInputStream() 和 httpResponse.getOutputStream() 不是必需的,但是关闭包装输入流和输出流的 Stream 类是否正确。它们是否会产生一些问题或引发异常。
最佳答案
Java SE 中的包装器流/读取器/写入器会关闭底层流(当它们关闭时),因此如果您想让它们保持打开状态,请不要关闭包装器。
编辑:
Reader的 close()
文档可能解释得更好。包装器(如 InputStreamReader )通常为接口(interface)扩展此类,而不覆盖文档。
如果是ObjectOutputStream情况类似,您可以检查 source 中的行为.
关于java - 我可以关闭 servlet 中的包装器输入流或输出流类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24052691/