[SpringMVC]请求与响应④(响应)

简介: 请求与响应④(响应)

@[TOC]

响应

SpringMVC接收到请求和数据后,进行一些了的处理,当然这个处理可以是转发给Service,Service层再调用Dao层完成的,不管怎样,处理完以后,都需要将结果告知给用户。

比如:根据用户ID查询用户信息、查询用户列表、新增用户等。

对于响应,主要就包含两部分内容:

  • 响应页面
  • 响应数据

    • 文本数据
    • json数据

因为异步调用是目前常用的主流方式,所以我们需要更关注的就是如何返回JSON数据,对于其他只需要认识了解即可。

响应页面

我们直接来看Controller

步骤1:设置返回页面

@Controller
public class UserController {
    
    @RequestMapping("/toJumpPage")
    //注意
    //1.此处不能添加@ResponseBody,如果加了该注入,会直接将page.jsp当字符串返回前端
    //2.方法需要返回String
    public String toJumpPage(){
        System.out.println("跳转页面");
        return "page.jsp";
    }
    
}
注:page.jsp是项目中的一个页面

注意:

  • 此处不能添加@ResponseBody,如果加了该注入,会直接将page.jsp当字符串返回前端
  • 方法需要返回String

步骤2:启动程序测试

此处涉及到页面跳转,所以不适合采用PostMan进行测试,直接打开浏览器,输入

http://localhost/toJumpPage

在这里插入图片描述

返回文本数据

步骤1:设置返回文本内容

@Controller
public class UserController {
    
       @RequestMapping("/toText")
    //注意此处该注解就不能省略,如果省略了,会把response text当前页面名称去查找,如果没有回报404错误
    @ResponseBody
    public String toText(){
        System.out.println("返回纯文本数据");
        return "response text";
    }
    
}
注意:此处@ResponseBody注解就不能省略,如果省略了,会把response text当前页面名称去查找,如果没有找到会回报404错误

步骤2:启动程序测试

此处不涉及到页面跳转,因为我们现在发送的是GET请求,可以使用浏览器也可以使用PostMan进行测试,输入地址http://localhost/toText访问

在这里插入图片描述

响应JSON数据

响应POJO对象、

@Controller
public class UserController {
    
    @RequestMapping("/toJsonPOJO")
    @ResponseBody
    public User toJsonPOJO(){
        System.out.println("返回json对象数据");
        User user = new User();
        user.setName("itcast");
        user.setAge(15);
        return user;
    }
    
}

返回值为实体类对象,设置返回值为实体类类型,即可实现返回对应对象的json数据,需要依赖@ResponseBody注解@EnableWebMvc注解

重新启动服务器,访问http://localhost/toJsonPOJO

在这里插入图片描述

响应POJO集合对象

@Controller
public class UserController {
    
    @RequestMapping("/toJsonList")
    @ResponseBody
    public List<User> toJsonList(){
        System.out.println("返回json集合数据");
        User user1 = new User();
        user1.setName("传智播客");
        user1.setAge(15);

        User user2 = new User();
        user2.setName("黑马程序员");
        user2.setAge(12);

        List<User> userList = new ArrayList<User>();
        userList.add(user1);
        userList.add(user2);

        return userList;
    }
    
}

重新启动服务器,访问http://localhost/toJsonList
在这里插入图片描述

总结

@ResponseBody

名称 @ResponseBody
类型 ==方法\类注解==
位置 SpringMVC控制器方法定义上方和控制类上
作用 设置当前控制器返回值作为响应体,<br/>写在类上,该类的所有方法都有该注解功能
相关属性 pattern:指定日期时间格式字符串

说明:

  • 该注解可以写在类上或者方法上
  • 写在类上就是该类下的所有方法都有@ReponseBody功能
  • 当方法上有@ReponseBody注解后

    • 方法的返回值为字符串,会将其作为文本内容直接响应给前端
    • 方法的返回值为对象,会将对象转换成JSON响应给前端

此处又使用到了类型转换,内部还是通过Converter接口的实现类完成的,所以Converter除了前面所说的功能外,它还可以实现:

  • 对象转Json数据(POJO -> json)
  • 集合转Json数据(Collection -> json)
此处使用的就是HttpMessageConverter接口
该接口是实现对象与JSON之间的转换工作
在这里插入图片描述
他的下面有很多实现类,实际上就是MappingJackson2HttpMessageConverter实现类帮我们完成的:
在这里插入图片描述
而这个实现类与我们pom中导入的坐标大有关系:
在这里插入图片描述
相关文章
|
9天前
|
JSON 前端开发 Java
【JavaEE进阶】 关于Spring MVC 响应
【JavaEE进阶】 关于Spring MVC 响应
15 3
|
17天前
|
JSON Java fastjson
SpringMVC(二)【请求与响应】(2)
SpringMVC(二)【请求与响应】
|
21小时前
|
JSON 前端开发 数据格式
SpringMVC的数据响应-直接回写json字符串
SpringMVC的数据响应-直接回写json字符串
|
21小时前
|
前端开发 Java Spring
|
2天前
|
JSON 前端开发 Java
spring mvc 请求与响应
spring mvc 请求与响应
6 0
|
17天前
|
前端开发 Java 应用服务中间件
SpringMVC(二)【请求与响应】(1)
SpringMVC(二)【请求与响应】
|
8月前
|
JSON 前端开发 Java
构建健壮的Spring MVC应用:JSON响应与异常处理
构建健壮的Spring MVC应用:JSON响应与异常处理
41 0
|
1月前
|
JSON 前端开发 Java
SpringMVC请求和响应
Spring MVC通过请求和响应的处理来实现Web应用程序的开发。请求通过控制器处理,响应通过视图渲染器生成最终的HTML响应,并返回给客户端。
55 4
|
1月前
|
JSON 前端开发 Java
【JavaEE进阶】 关于Spring mvc 响应
【JavaEE进阶】 关于Spring mvc 响应
|
1月前
|
JSON 前端开发 Java
Spring MVC响应结合RESTful风格开发,打造具有强大功能和良好体验的Web应用!
Spring MVC响应结合RESTful风格开发,打造具有强大功能和良好体验的Web应用!