SpringMVC:ResponseEntity使用

使用ResponseEntiry编写更符合restful风格的代码
  • 先放一张SpringMVC的原理图:

在这里插入图片描述


一、ResponseEntity介绍
  • ResponseEntity是一个类属于org.springframework.http,从导包记录可以看出:

    import org.springframework.http.ResponseEntity;
    
  • ResponseEntity 表示整个HTTP响应:状态码,响应头和响应体。因此,我们可以使用它来完全配置HTTP响应。

  • ResponseEntity是一种泛型类型。因此,我们可以使用任何类型作为响应主体。

二、ResponseEntity常用方法

1、只响应:状态码,不响应数据,如insert、update、delete操作时:

//方式一,使用ResponseEntiry的静态方法
return ResponseEntity.status(HttpStatus.BAD_REQUEST); 
//方式二,使用ResponseEntiry的静态方法
return ResponseEntity.status(400); 
//方式三,使用ResponseEntity的构造函数,通过数字状态码解析
return new ResponseEntity<>(HttpStatus.resolve(400)); 
//方式四,使用ResponseEntity的构造函数,通过枚举类型获取
return new ResponseEntity<>(HttpStatus.BAD_REQUEST); 

以下状态码获取都可以通过这两种方式获得。(数字状态码解析、枚举类型获取)

2、只响应:数据

//使用ResponseEntiry的静态方法,默认状态码200,pageinfo是分页数据
return ResponseEntity.ok(pageInfo);

3、响应:数据状态码

//使用ResponseEntity的构造函数
return new ResponseEntity<>(pageInfo,HttpStatus.resolve(200));

4、响应:状态码头信息

//创建响应头对象,并添加头信息
HttpHeaders headers = new HttpHeaders();
headers.add("Custom-Header", "foo");
//使用ResponseEntity的构造函数
return new ResponseEntity<>(headers,HttpStatus.resolve(200));

5、响应:状态码数据头信息

  • 方式一
    //创建响应头对象,并添加头信息
    HttpHeaders headers = new HttpHeaders();
    headers.add("Custom-Header", "foo");
    //使用ResponseEntity的构造函数
    return new ResponseEntity<>(pageInfo,headers,HttpStatus.resolve(200));
    
    
  • 方式二
	//创建响应头对象,并添加头信息
	HttpHeaders headers = new HttpHeaders();
	headers.add("Custom-Header", "foo");
	//使用ResponseEntiry的静态方法,默认状态码200
	return ResponseEntity.ok().header("Custom-Header", "001").body(pageInfo);
三、HttpStatus状态码
  • HttpStaus是一个枚举类,包含了所有的状态码信息

    public enum HttpStatus 
    
  • 常用状态码对应表:其他的自行去HttpStatus枚举中查看

    枚举属性 状态码
    CONTINUE 100
    OK 200
    CREATED 201
    NO_CONTENT 204
    PARTIAL_CONTENT 206
    MOVED_PERMANENTLY 301
    FOUND 302
    NOT_MODIFIED 304
    BAD_REQUEST 400
    UNAUTHORIZED 401
    FORBIDDEN 403
    NOT_FOUND 404
    INTERNAL_SERVER_ERROR 500
    SERVICE_UNAVAILABLE 503
发布了33 篇原创文章 · 获赞 1 · 访问量 1419

猜你喜欢

转载自blog.csdn.net/smileKutper/article/details/104011423