场景
当你需要返回一个html页面,或者说你不在controller层,没有办法使用@ResponseBody
时(例如拦截器的preHandle方法中),此时你需要返回一个响应,那么就该调用response.getWriter()
的write
或者print
方法
二者区分
- response.getWriter()返回的是PrintWriter,这是一个打印输出流。
- response.getWriter().print(),不仅可以打印输出文本格式的(包括html标签),可以打印对象
- response.getWriter().writer(),只能打印输出文本格式的(包括html标签),不可以打印对象。
中文乱码
一开始还以为是json格式化发生了乱码,研究后发现是response.getWriter的问题,解决方法是添加ContentType,在调用response.getWriter()方法之前response.setContentType("application/json;charset=UTF-8");
Could not find acceptable representation