1

我第一次涉足 Java servlet 编程,由于我更熟悉“服务器端”编程,因此我养成了处理 Writers 和 OutputStreams 的一些习惯。但是,也许这些习惯在编写 servlet 时并不适合,可用的 Javadoc 并没有明确回答我下面的两个问题。

第一个问题:您是否应该在尝试写入时捕获抛出的 IOExceptions?如果您不这样做,那么在这种情况下 servlet 容器的默认行为是什么(即 HTTP 返回码是什么)?

第二个问题:您是否应该让 servlet 引擎为您关闭 OUTputStream/Writer?在servlet中自己关闭它有什么危险吗?

4

1 回答 1

2

第一个问题:您是否应该在尝试写入时捕获抛出的 IOExceptions?如果您不这样做,那么在这种情况下 servlet 容器的默认行为是什么(即 HTTP 返回码是什么)?

从 servlet 抛出的随机异常的默认错误代码通常是 503(内部服务器错误),但我认为没有要求(即不同的 servlet 容器可能会做不同的事情)。您是否应该捕获异常并自己处理它完全取决于您的 servlet 需要具有的行为(也许您对不同情况有不同的错误代码,也许即使您无法读取所有数据,您也想继续, ETC。)。

第二个问题:您是否应该让 servlet 引擎为您关闭 OUTputStream/Writer?在servlet中自己关闭它有什么危险吗?

我相信大多数(全部?)servlet 引擎会为您关闭流,但是我仍然会说最好自己关闭它。

于 2013-01-18T16:44:50.003 回答