- 在controller类下的方法上只有@RequestMapping时,无论方法返回值是什么,都认为需要跳转。
- 在方法上添加@ResponseBody则恒不跳转
2.1 如果返回值蛮族key-value形式(对象或map)
2.1.1 把响应头设置为application/json;charset=utf-8
2.1.2 把转换后的内容输出流的形式相应给客户端
2.2 如果返回值不满足key-valu,例如返回值为String
2.2.1 把响应头设置为text/html
2.2.2 把方法返回值以流的形式直接输出
2.2.3 如果返回值包含中文,则会出现中文乱码,produces表示响应头中Context-Type取值
正常的输出,通过流
@RequestMapping("demo11")
public void demo11(HttpServletRequest req,HttpServletResponse resp) throws IOException {
PrintWriter writer = resp.getWriter();
writer.print("demo11");
writer.flush();
writer.close();
}
@RequestMapping("demo12")
@ResponseBody//转换为json字符串并把响应头改为application/json;
public People demo12() throws IOException {
People p = new People();
p.setAge(12);
p.setName("lee");
return p;
}