没有为HttpServletResponse设置标头

时间:2013-06-25 21:58:52

标签: java servlets exception-handling

嘿我正在尝试实现一个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

    }

但是在回复中我看不到名为ErrorCode的标题。在调试时,我可以看到我的servlet正在抛出异常。但在客户端,我看不到标题名称/值。这可能是什么共鸣?我应该使用setHeader()代替addHeader()吗?在这种情况下是否重要?

2 个答案:

答案 0 :(得分:0)

尝试拨打电话......

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

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

答案 1 :(得分:0)

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