我为处理REST请求的应用程序创建了一个servlet过滤器。我已经注释了web.xml并创建了我的过滤器。过滤器运行良好,但仅返回JSON文本消息。我还需要返回405 HTTP状态代码。当我执行测试并失败时,我有一个简单的PrintWriter可以打印错误消息:
public class MyFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletResponse apiResponse = (HttpServletResponse) response;
apiResponse.setContentType("application/json");
htmlOut = apiResponse.getWriter();
mainErrorObject = new JSONObject();
if(true){
htmlOut.println(mainErrorObject.toString());
}
htmlOut.close();
}
}
因此,就像我说的那样,如何同时返回JSON文本消息和HTTP错误代码?
ServletResponse
实现HttpServletResponse
,它具有一个setStatus
方法,该方法设置响应的状态码。
setStatus
无效setStatus(int sc)
设置此响应的状态码。此方法用于设置没有错误的返回状态代码(例如,用于状态代码SC_OK或SC_MOVED_TEMPORARILY)。如果存在错误,并且调用者希望调用Web应用程序中定义的错误页面,则应改用sendError方法。容器清除缓冲区并设置Location标头,保留cookie和其他标头。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句