使用HttpServletResponse将错误作为JSON发送到前端

使用HttpServletResponse将错误作为JSON发送到前端,json,rest,spring-mvc,servlets,Json,Rest,Spring Mvc,Servlets,我在REST后端工作,需要将错误信息(消息以及自定义应用程序键和代码)作为JSON发送回前端 我不确定是否将JSON包含在msg参数到senderro方法中(从HttpServletResponse),如下所示: void sendError(int sc, java.lang.String msg) throws java.io.IOException response.getWriter().write(json); 。。。或者

我在REST后端工作,需要将错误信息(消息以及自定义应用程序键和代码)作为JSON发送回前端

我不确定是否将JSON包含在
msg
参数到
senderro
方法中(从
HttpServletResponse
),如下所示:

void sendError(int sc,
               java.lang.String msg)
               throws java.io.IOException
response.getWriter().write(json);
。。。或者使用响应的实际有效载荷,如下所示:

void sendError(int sc,
               java.lang.String msg)
               throws java.io.IOException
response.getWriter().write(json);

有人能告诉我哪种方法是最好的吗?

发送错误将把内容类型设置为
“text/html”
,因此不适合将自定义json错误消息推送到客户端

你最好自己设置状态码

response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
然后使用编写器编写所需的JSON字符串


这显然是非常低级的。如果您使用的是某种REST框架,它通常很好地支持将异常自动转换为JSON格式。这样,您只需抛出一个异常,框架就会完成其余的工作。

感谢您的回复!你有没有一个特定的框架来避免低级的苦工呢?Spring非常好。(基础教程位于)。您可以通过提供自定义ExceptionHandler()来自定义异常处理