使用response返回的工具类
import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; /** * 使用response返回的工具类 * @author lyn */ @Slf4j public class ResponseUtils { /** * 使用response输出JSON * * @param response * @param result */ public static void outJson(ServletResponse response, Object result) { PrintWriter out = null; try { response.setCharacterEncoding("UTF-8"); response.setContentType("application/json"); out = response.getWriter(); out.println(new ObjectMapper().writeValueAsString(result)); } catch (Exception e) { log.error(e + "输出JSON出错"); } finally { if (out != null) { out.flush(); out.close(); } } } /** * 将字符串渲染到客户端 * * @param response 渲染对象 * @param string 待渲染的字符串 * @return null */ public static String renderString(HttpServletResponse response, String string) { try { response.setStatus(200); response.setContentType("application/json"); response.setCharacterEncoding("utf-8"); response.getWriter().print(string); } catch (IOException e) { e.printStackTrace(); } return null; } /** * 使用response输出文件 * * @param response * @param is 文件流 * @param fileName 文件名 */ public static void outFile(HttpServletResponse response, InputStream is, String fileName) { // 设置强制下载不打开 response.setContentType("application/force-download"); // 设置文件名 response.addHeader("Content-Disposition", "attachment;fileName=" + fileName); BufferedInputStream bis = null; try { //中文乱码 fileName = URLEncoder.encode(fileName, "UTF-8"); OutputStream outputStream = response.getOutputStream(); //把输入流copy到输出流 IOUtils.copy(is, outputStream); outputStream.flush(); } catch (Exception e) { e.printStackTrace(); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY