package cn.jeesoft.core.utils; import java.io.IOException; import java.io.OutputStream; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.jeesoft.mvc.model.ResultCode; import com.alibaba.fastjson.JSONObject; /** * 响应处理 * @author king */ public class ResponseUtils { /** * 重定向(改变地址栏) * @param request * @param response * @param location */ public static void sendRedirect(HttpServletRequest request, HttpServletResponse response, String location) { System.out.println(request.getContextPath()+location); try { response.sendRedirect(request.getContextPath()+location); } catch (IOException e) { e.printStackTrace(); } } /** * 重定向(不改变地址栏) * @param request * @param response * @param location */ public static void forward(HttpServletRequest request, HttpServletResponse response, String location) { try { RequestDispatcher dispatcher = request.getRequestDispatcher(location); dispatcher.forward(request, response); } catch (IOException e) { e.printStackTrace(); } catch (ServletException e) { e.printStackTrace(); } } /** * 写入响应信息 * @param response * @param responseBody */ public static void writer(ServletResponse response, JSONObject responseBody) { if (responseBody == null || responseBody.isEmpty()) { return; } writer(response, responseBody.toString()); } /** * 写入响应信息 * @param response * @param responseBody */ public static void writer(ServletResponse response, String responseBody) { if (responseBody == null || responseBody.isEmpty()) { return; } try { response.reset(); ((HttpServletResponse)response).setContentType("text/html;charset=UTF-8"); } catch (Exception e) { } try { OutputStream output = response.getOutputStream(); output.write(UnicodeUtils.encodeChina(responseBody).getBytes()); output.flush(); output.close(); } catch (Exception e) { e.printStackTrace(); } } /** * 成功返回 * @return */ public static String toSuccess() { return toSuccess(null); } /** * 成功返回 * @param data * @return */ public static String toSuccess(Object data) { JSONObject result = new JSONObject(); result.put("status", ResultCode.SUCCESS.getCode()); if (data != null) { result.put("data", data); } //StringUtils.toCharset(result.toJSONString(), "UTF-8", "ISO8859-1"); return UnicodeUtils.encodeChina(result.toJSONString()); } /** * 失败返回 * @param resultCode * @param errorMessage * @param data * @return */ public static String toFailure(ResultCode resultCode, Throwable error) { String message = null; if (error != null) { message = error.getMessage(); } if (StringUtils.isEmpty(message)) { message = "未知错误"; } return toFailure(resultCode, message); } /** * 失败返回 * @param resultCode * @param errorMessage * @param data * @return */ public static String toFailure(ResultCode resultCode, String errorMessage) { return toFailure(resultCode, errorMessage, null); } /** * 失败返回 * @param resultCode * @param errorMessage * @param data * @return */ public static String toFailure(ResultCode resultCode, String errorMessage, Object data) { JSONObject result = new JSONObject(); if (resultCode == null) { resultCode = ResultCode.FAILURE; } result.put("status", resultCode.getCode()); result.put("message", errorMessage); if (data != null) { result.put("data", data); } //StringUtils.toCharset(result.toJSONString(), "UTF-8", "ISO8859-1"); return UnicodeUtils.encodeChina(result.toJSONString()); } }