package cn.lili.common.utils; import com.google.gson.Gson; import lombok.extern.slf4j.Slf4j; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.HashMap; import java.util.Map; /** * response 输出响应工具 * * @author Chopper */ @Slf4j public class ResponseUtil { static final String ENCODING = "UTF-8"; static final String CONTENT_TYPE = "application/json;charset=UTF-8"; /** * 输出前端内容以及状态指定 * * @param response * @param status * @param content */ public static void output(HttpServletResponse response, Integer status, String content) { ServletOutputStream servletOutputStream = null; try { response.setCharacterEncoding(ENCODING); response.setContentType(CONTENT_TYPE); response.setStatus(status); servletOutputStream = response.getOutputStream(); servletOutputStream.write(content.getBytes()); } catch (Exception e) { log.error("response output error:", e); } finally { if (servletOutputStream != null) { try { servletOutputStream.flush(); servletOutputStream.close(); } catch (IOException e) { log.error("response output IO close error:", e); } } } } /** * response 输出JSON * * @param response * @param status response 状态 * @param resultMap */ public static void output(HttpServletResponse response, Integer status, Map resultMap) { response.setStatus(status); output(response, resultMap); } /** * response 输出JSON * * @param response * @param resultMap */ public static void output(HttpServletResponse response, Map resultMap) { ServletOutputStream servletOutputStream = null; try { response.setCharacterEncoding(ENCODING); response.setContentType(CONTENT_TYPE); servletOutputStream = response.getOutputStream(); servletOutputStream.write(new Gson().toJson(resultMap).getBytes()); } catch (Exception e) { log.error("response output error:", e); } finally { if (servletOutputStream != null) { try { servletOutputStream.flush(); servletOutputStream.close(); } catch (IOException e) { log.error("response output IO close error:", e); } } } } /** * 构造响应 * * @param flag * @param code * @param msg * @return */ public static Map resultMap(boolean flag, Integer code, String msg) { return resultMap(flag, code, msg, null); } /** * 构造响应 * * @param flag * @param code * @param msg * @param data * @return */ public static Map resultMap(boolean flag, Integer code, String msg, Object data) { Map resultMap = new HashMap(16); resultMap.put("success", flag); resultMap.put("message", msg); resultMap.put("code", code); resultMap.put("timestamp", System.currentTimeMillis()); if (data != null) { resultMap.put("result", data); } return resultMap; } }