springmvc中的字符编码问题
@Controller public class Hello { //这里的返回值是void //返回值可以不是String, 即不响应视图名称, 但是要直接给个响应,最原始的写法,直接输出响应体,直接响应response.getWriter().write(“hhhhaaaa”); 这时候没有消息转换器的作用了,所以需要自己处理中文乱码问题 //字符编码处理,跟之前servlet一样,这里是响应字符的处理, @RequestMapping("one") public void hello(HttpServletResponse response) throws IOException { response.setContentType("text/html;charset=utf-8"); response.getWriter().write("hello你好"); } }
不是void,有返回值的情况,需要返回数据,不能直接response流数据
不使用@ResponseBody,即使用视图解析器,返回的是视图,那就必须返回String,返回的视图名称;
使用@ResponseBody,就是返回Json对象,返回String也不表示视图名称,而是数据内容,字符串本身(没有编码问题,jackson消息转换器帮忙进行处理)