SpringMVC:HttpMessageConverter
HttpMessageConverter:报文信息转换器,将请求报文转换成java对象,或将java对象转换成相应报文.
HttpMessageConverter:提供了两个注解和两个类型:@RequestBody,@ResponseBody,RequestEntity,ResoinseEntity
1.@RequestBody注解获取请求信息
html
<form th:action="@{/testRequestBody}" method="post">
username:<input type="text" name="username"><br>
password:<input type="password" name="ped"><br>
<input type="submit" value="测试@RequestBody">
</form>
控制器方法:
@RequestMapping("/testRequestBody")
public String testRequestBody(@RequestBody String requestBody){
System.out.println("requestBody"+requestBody);
return "success";
}
form表单输入 aaaaaaa - 123456
控制台输出:
2.RequestEntity类型表示完整的请求报文信息
@RequestMapping("/testRequestEntity")
public String testRequestEntity(RequestEntity<String> requestEntity){
System.out.println("请求头:"+requestEntity.getHeaders());
System.out.println("请求体:"+requestEntity.getBody());
return "success";
}
输出:
请求头:[host:"localhost:8080", connection:"keep-alive", content-length:"25",
cache-control:"max-age=0", sec-ch-ua:""Chromium";v="21", " Not;A Brand";v="99"",
sec-ch-ua-mobile:"?0", sec-ch-ua-platform:""Windows"", upgrade-insecure-requests:"1",
origin:"http://localhost:8080",
user-agent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36",
accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
sec-fetch-site:"same-origin", sec-fetch-mode:"navigate", sec-fetch-user:"?1", sec-fetch-dest:"document",
referer:"http://localhost:8080/web_04_war_exploded/",
accept-encoding:"gzip, deflate, br", accept-language:"zh-CN,zh;q=0.9", Content-Type:"application/x-www-form-urlencoded;charset=UTF-8"]
请求体:username=123123&ped=12345
3.通过@ResponseBody响应浏览器数据
此前通过HttpServletResponse响应浏览器数据
//通过HttpServletResponse相应浏览器数据
@RequestMapping("/testHttpServletResponse")
public void testHttpServletResponse(HttpServletResponse httpServletResponse) throws IOException {
httpServletResponse.getWriter().println("he,response");
}
通过ResponseBody响应浏览器数据
@RequestMapping("/testResponseBody")
@ResponseBody
public String testResponseBody(){
return "success 哈哈哈哈";
}
这里return的不是视图名称,而是直接作为响应报文的响应体响应到浏览器
@ResponseBody处理json和ajax
@RestController注解
@RestController注解是SpringMVC提供的一个复合注解,标识在控制器的类上,就相当于为类添加
了@Controller注解,并且为其中的每个方法添加了一个@ResponseBody注解
4.ResponseEntity
ResponseEntity用于控制器方法的返回值类型,该控制器方法的返回值就是响应到浏览器的响应报文
使用ResponseEntity实现文件下载功能
阅读剩余
版权声明:
作者:Tin
链接:http://www.tinstu.com/1187.html
文章版权归作者所有,未经允许请勿转载。
THE END

0

打赏

分享

二维码

海报
发表评论
赶快来坐沙发