public class ResponseUtils {
public static void responseJson(HttpServletResponse response, String text) {
render(response, "application/json;charset=UTF-8", text);
}
public static void responseScript(HttpServletResponse response, String script) {
render(response, "application/javascript", script);
}
public static void responseTextHtml(HttpServletResponse response, String text) {
render(response, "text/html;charset=UTF-8", text);
}
public static void responseXml(HttpServletResponse response, String text) {
render(response, "text/xml;charset=UTF-8", text);
}
public static void responseText(HttpServletResponse response, String text) {
render(response, "text/plain;charset=UTF-8", text);
}
public static void responseFile(HttpServletResponse response, InputStream is, String fileName) {
writeInputStream(response, is, fileName);
}
public static void responseFile(HttpServletResponse response, String filePath, String fileName, boolean isTemp) {
File file = new File(filePath);
if (!file.exists()) {
return;
}
try {
writeInputStream(response, new FileInputStream(file), fileName);
if (file.exists() && isTemp) {
file.delete();
}
} catch (Exception e) {
}
}
private static void render(HttpServletResponse response, String contentType, String text) {
response.setContentType(contentType);
try {
response.getWriter().write(text);
} catch (IOException e) {
e.printStackTrace();
}
}
private static void writeInputStream(HttpServletResponse response, InputStream is, String fileName) {
if (null == is) {
return;
}
response.setContentType("multipart/form-data");
response.setCharacterEncoding("utf-8");
try (OutputStream os = response.getOutputStream()) {
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
byte[] b = new byte[1024];
int len;
while ((len = is.read(b)) > 0) {
os.write(b, 0, len);
os.flush();
}
} catch (Exception e) {
} finally {
try {
is.close();
} catch (IOException e) {
}
}
}
}