1

嘿,我正在尝试实现一个 servlet,如果出现异常,我会在响应中添加一个标头:

    catch (Exception e) {
                response.addHeader("ErrorCode", e.getErrorMessage());
                response.sendError(HttpServletResponse.SC_BAD_REQUEST,
                        e.getErrorMessage());
            }

在客户端,我将所有标题存储在一个数组中:

    Header[] header=response.getAllHeaders();

    if(header.length>0)
    {
     errorMessage = header[0].getValue();
     //do this for all the six elements in the header[] array

    }

但在响应中,我看不到带有 name 的标题ErrorCode。在调试时,我可以看到我的 servlet 正在引发异常。但在客户端我看不到标题名称/值。这背后的原因是什么?我应该使用setHeader()而不是addHeader()吗?在这种情况下重要吗?

4

2 回答 2

0

尝试在响应上调用 flushBuffer()。

于 2013-06-25T23:25:39.687 回答
0

试着打电话...

response.setError();
response.reset();

...在添加标题之前。我似乎记得曾经为 Tomcat 编写自定义错误报告阀时必须这样做。

于 2013-06-25T22:59:37.537 回答