SpringMVC学习之旅-应用掌握篇(2)

95 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第32天,点击查看活动详情


写在前面

当我们学习了spring框架之后,基本上来说,已经是打好了一个良好得基础了。

但是距离一个企业的基本开发需要掌握的框架,还是得经过不断得学习,才行。

这不,我们继续学习下一个框架SpringMVC

SpringMVC这个框架,一般来说,用来作为我们项目得Controller层,用来接收用户得输入,然后选择相应得视图回显展示给用户。

MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,C(控制器)将V(视图、用户客户端)与M(javaBean:封装数据)分开构成了MVC。

对于以前得项目来说,还有出现Struts得,但现在基本都很少了。

Struts1(现在一般不用),Struts2(一般老项目使用)等等。

这不,接下来就是spring mvc框架的学习之旅了,希望可以帮助到大家。

一、返回值处理

1.1 使用注解修饰

  • ResponseBody注解介绍

注解介绍

ResponseBody注解的作用:

一、ResponseBody注解可以针对Controller返回值类型,使用内置的9种HttpMessageConverter进行
匹配,找到合适的HttpMessageConverter进行处理。

二、HttpMessageConverter处理逻辑分为三步:
    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类型的字符串写回给调用者。
  • ResponseBody示例

Controller代码

方式1(使用@ResponseBody注解):

@RequestMapping("responsebody")
@Controller
public class MyResponseBodyController {

    // @RequestMapping注解中的consumes和produces分别是为请求头和响应头设置contentType
    @RequestMapping(value = "returnString", produces = "text/plain;charset=UTF-8")
    @ResponseBody
    public String returnString() {
        // 如果在使用@ResponseBody注解的前提下,如果返回值是String类型,则返回值会由StringHttpMessageConverter进行处理
        return "查询失败";
    }

}

方式2(使用@RestController注解):

@RequestMapping("restcontroller")
@RestController //相当于Controller注解和ResponseBody注解的组合
public class MyRestcontroller {

    //@RequestMapping注解中的consumes和produces分别是为请求头和响应头设置contentType
    @RequestMapping(value="returnString",produces="text/plain;charset=UTF-8")
    public String returnString() {
        // 如果在使用@ResponseBody注解的前提下,如果返回值是String类型,则返回值会由
        StringHttpMessageConverter进行处理
        return "查询失败";
    }
}

好了,以上就是SpringMVC学习之旅-应用掌握篇(2) 的全部内容了。

今天就先到这里了,后面的内容,留下次分享了,先溜了!!!^_^

如果觉得写得不错的,帮忙点赞、评论、收藏一下呗!!!

image.png