004 返回值处理

发布于:2024-06-30 ⋅ 阅读:(119) ⋅ 点赞:(0)

不使用注解修饰

ModelAndView

Controller方法中定义ModelAndView对象并返回,对象中可添加model数据、指定view。

void

在Controller方法形参上可以定义request和response,使用 request 或 response 指定响应结果:

void service(HttpServletRequest request,HttpServletResponse response){}

  • 1、使用request转发向页面,如下:
request.getRequestDispatcher("页面路径").forward(request, response);
  • 2、也可以通过response页面重定向:
response.sendRedirect("url")
  • 3、也可以通过response指定响应结果,例如响应json数据如下:
response.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
response.getWriter().write("json串");

String(推荐)

  • 逻辑视图名
return "item/item-list";
  • redirect重定向
return "redirect:testRedirect";

redirect:
相当于“ response.sendRedirect() ”
浏览器URL发生改变
Request域不能共享

  • forward转发
return “forward:testForward";

forward:
相当于“ request.getRequestDispatcher().forward(request,response) ”
浏览器URL不发送改变
Request 域可以共享

使用注解修饰

ResponseBody注解

  • ResponseBody注解的作用:

一、ResponseBody注解可以针对Controller返回值类型,使用内置的9种HttpMessageConverter进行匹配,找到合适的HttpMessageConverter进行处理。
二、HttpMessageConverter处理逻辑分为三步:
(0、数据转换,比如Java对象转Json字符串)
1、指定HttpServletResponse的ContentType值。
2、将转换之后的数据放到HttpServletResponse对象的响应体返回到页面

  • @RequestBody注解的作用和@ResponseBody注解正好相反,它是处理请求参数的http消息转换的。

常用的HttpMessageConverter

  • MappingJacksonHttpMessageConverter

作用:处理POJO类型返回值
默认使用MappingJackson的JSON处理能力,将后台返回的Java对象(POJO类型),转为JSON格式输出到
页面
将响应体的Content-Type设置为application/json;charset=utf-8
调用response.getWriter()方法将json格式的字符串写回给调用者。

  • StringHttpMessageConverter

作用:处理String类型返回值
将响应体的Content-Type设置为text/plain;charset=utf-8
调用response.getWriter()方法将String类型的字符串写回给调用者。


网站公告

今日签到

点亮在社区的每一天
去签到