我们可以使用servlet的内置对象response向客户端发送响应。首先我们来看一下官方文档对response的解释:
定义一个对象来帮助servlet向客户端发送响应。servlet容器创建一个ServletResponse对象,并将其作为参数传递给servlet的服务方法。要发送响应中的二进制数据,请使用getOutputStream()。要发送字符数据,请使用getWriter()。
可以使用setCharacterEncoding(java.lang.String)和setContentType(java.lang.String)方法或隐式使用setLocale(java.util.Locale)方法来明确指定MIME响应的字符集。 显式规范优先于隐含规范。 如果未指定字符集,则将使用ISO-8859-1。 必须在getWriter之前调用setCharacterEncoding,setContentType或setLocale方法,然后在为要使用的字符编码提交响应之前调用setCharacterEncoding,setContentType或setLocale方法。
下面是在服务器端返回JSON的代码:
response.setContentType("application/json;charset=utf-8");//指定返回的格式为JSON格式
response.setCharacterEncoding("UTF-8");//setContentType与setCharacterEncoding的顺序不能调换,否则还是无法解决中文乱码的问题
StringjsonStr ="{\"id\":\"123\",\"name\":\"小黎\"}";
PrintWriter out =null ;
out =response.getWriter() ;
out.write(jsonStr);
out.close();