嘿我正在尝试实现一个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()
吗?在这种情况下是否重要?
答案 0 :(得分:0)
尝试拨打电话......
response.setError();
response.reset();
...在添加标题之前。我似乎记得在为Tomcat编写一个自定义错误报告阀时必须这样做。
答案 1 :(得分:0)
尝试在响应上调用flushBuffer()。