一:通过PrintWriter.write();
(一般响应)
@RequestMapping("home")
public void HomeData(
HttpServletResponse response
,@RequestParam(value="formDate", required=false) String formDate
) throws IOException{
PrintWriter writer = response.getWriter();
String name ="yuxiaoyu";
j.put("msg",name);
j.put("success",1);
writer.write(j.toString());
writer.close();
writer.flush();
return;
}
二:通过 OutputStream.write();
(数据压缩)
@RequestMapping("home")
public void HomeData(
HttpServletResponse response
,@RequestParam(value="formDate", required=false) String formDate
) throws IOException{
//(注:这里需要导入自定义实体类GZIPUtils)
JSONObject j = new JSONObject();
byte[] output = GZIPUtils.compress(j.toString());
// 设置Content-Encoding,这是关键点!
response.setHeader("Content-Encoding", "gzip");
// 设置字符集
response.setCharacterEncoding("utf-8");
// 设定输出流中内容长度
response.setContentLength(output.length);
OutputStream out = response.getOutputStream();
out.write(output);
out.flush();
out.close();
return;
}
三:通过response.getWriter().write();
(jsonp+vue 进行跨域)
@RequestMapping("home")
public void HomeData(
HttpServletResponse response,HttpServletRequest request
,@RequestParam(value="formDate", required=false) String formDate
) throws IOException{
JSONObject j = new JSONObject();
String j1 = j.toString();
String callback = request.getParameter("callback");
String result = callback + "(" + j1 + ")";
response.getWriter().write(result);
return;
}
附加:@ResponseBody
在后端响应后并不需要返回给前端数据时,可以在方法上使用@ResponseBody注解,
否则前端没收到后端的响应,会报404的错误。