日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

如何使用spring ResponseEntity處理http響應

瀏覽:29日期:2023-06-28 09:29:49
簡介

使用spring時,達到同一目的通常有很多方法,對處理http響應也是一樣。本文我們學習如何通過ResponseEntity設置http相應內容、狀態以及頭信息。

ResponseEntity

ResponseEntity標識整個http相應:狀態碼、頭部信息以及相應體內容。因此我們可以使用其對http響應實現完整配置。

如果需要使用ResponseEntity,必須在請求點返回,通常在spring rest中實現。ResponseEntity是通用類型,因此可以使用任意類型作為響應體:

@GetMapping('/hello')ResponseEntity<String> hello() { return new ResponseEntity<>('Hello World!', HttpStatus.OK);}

可以通過編程方式指明響應狀態,所以根據不同場景返回不同狀態:

@GetMapping('/age')ResponseEntity<String> age( @RequestParam('yearOfBirth') int yearOfBirth) { if (isInFuture(yearOfBirth)) {return new ResponseEntity<>( 'Year of birth cannot be in the future', HttpStatus.BAD_REQUEST); } return new ResponseEntity<>( 'Your age is ' + calculateAge(yearOfBirth), HttpStatus.OK);}

另外,還可以設置http響應頭:

@GetMapping('/customHeader')ResponseEntity<String> customHeader() { HttpHeaders headers = new HttpHeaders(); headers.add('Custom-Header', 'foo'); return new ResponseEntity<>( 'Custom header set', headers, HttpStatus.OK);}

而且, ResponseEntity提供了兩個內嵌的構建器接口: HeadersBuilder 和其子接口 BodyBuilder。因此我們能通過ResponseEntity的靜態方法直接訪問。

最簡單的情況是相應包括一個主體及http 200響應碼:

@GetMapping('/hello')ResponseEntity<String> hello() { return ResponseEntity.ok('Hello World!');}

大多數常用的http 響應碼,可以通過下面static方法:

BodyBuilder accepted();BodyBuilder badRequest();BodyBuilder created(java.net.URI location);HeadersBuilder<?> noContent();HeadersBuilder<?> notFound();BodyBuilder ok();

另外,可以能使用BodyBuilder status(HttpStatus status)和BodyBuilder status(int status) 方法設置http狀態。使用ResponseEntity BodyBuilder.body(T body)設置http響應體:

@GetMapping('/age')ResponseEntity<String> age(@RequestParam('yearOfBirth') int yearOfBirth) { if (isInFuture(yearOfBirth)) {return ResponseEntity.badRequest() .body('Year of birth cannot be in the future'); } return ResponseEntity.status(HttpStatus.OK).body('Your age is ' + calculateAge(yearOfBirth));}

也可以自定義頭信息:

@GetMapping('/customHeader')ResponseEntity<String> customHeader() { return ResponseEntity.ok().header('Custom-Header', 'foo').body('Custom header set');}

因為BodyBuilder.body()返回ResponseEntity 而不是 BodyBuilder,需要最后調用。注意使用HeaderBuilder 不能設置任何響應體屬性。

盡管ResponseEntity非常強大,但不應該過度使用。在一些簡單情況下,還有其他方法能滿足我們的需求,使代碼更整潔。

替代方法@ResponseBody

典型spring mvc應用,請求點通常返回html頁面。有時我們僅需要實際數據,如使用ajax請求。這時我們能通過@ResponseBody注解標記請求處理方法,審批人能夠處理方法結果值作為http響應體。

@ResponseStatus

當請求點成功返回,spring提供http 200(ok)相應。如果請求點拋出異常,spring查找異常處理器,由其返回相應的http狀態碼。對這些方法增加@ResponseStatus注解,spring會返回自定義http狀態碼。

直接操作相應

Spring 也允許我們直接 javax.servlet.http.HttpServletResponse 對象;只需要申明其作為方法參數:

@GetMapping('/manual')void manual(HttpServletResponse response) throws IOException { response.setHeader('Custom-Header', 'foo'); response.setStatus(200); response.getWriter().println('Hello World!');}

但需要說明,既然spring已經提供底層實現的抽象和附件功能,我們不建議直接操作response。

總結:本文我們介紹了spring提供多種方式處理http響應,以及各自的優缺點,希望對你有幫助。

ResponseEntity的基本簡介1、ResponseEntity繼承了HttpEntity

可以添加HttpStatus狀態碼的HttpEntity的擴展類。被用于RestTemplate和Controller層方法

2、ResponseEntity可以定義返回的HttpStatus(狀態碼)

和HttpHeaders(消息頭:請求頭和響應頭)HttpStatus的狀態碼有以下幾種

如何使用spring ResponseEntity處理http響應

3、ResponseEntity的優先級高于@ResponseBody

在不是ResponseEntity的情況下才去檢查有沒有@ResponseBody注解。如果響應類型是ResponseEntity可以不寫@ResponseBody注解,寫了也沒有關系。

簡單的說@ResponseBody可以直接返回Json結果,@ResponseEntity不僅可以返回json結果,還可以定義返回的HttpHeaders和HttpStatus

public ResponseEntity<List<Category>> queryCategoriesByPid(@RequestParam(value = 'pid',defaultValue = '0') Long pid){if(pid == null || pid.longValue()<0){ // 響應400,相當于ResponseEntity.status(HttpStatus.BAD_REQUEST).build(); return ResponseEntity.badRequest().build();}//ResponseEntity.status(HttpStatus.NOT_FOUND).body(null); // ResponseEntity.notFound().build();// ResponseEntity.ok(null);List<Category> categoryList = this.categoryService.queryCategoriesByPid(pid);if(CollectionUtils.isEmpty(categoryList)){ // 響應404 return ResponseEntity.notFound().build();}return ResponseEntity.ok(categoryList); }

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
午夜在线视频一区二区区别| 在线看片国产福利你懂的| 国产精品av久久久久久麻豆网| 日韩a一区二区| 日韩中文视频| 香蕉成人久久| 欧美久久精品| 国产在线观看91一区二区三区 | 黄色不卡一区| 蜜臀av一区二区在线免费观看| 亚洲色图综合| 麻豆精品一区二区综合av| 精品视频一二| 米奇777超碰欧美日韩亚洲| 中文字幕中文字幕精品| 国产高清视频一区二区| 久久精品国产www456c0m| 人人精品人人爱| 国产精品一区二区av交换| 亚洲人成在线网站| 视频一区中文字幕精品| 国产第一亚洲| 国产亚洲在线观看| 美女国产精品久久久| 亚洲二区视频| 国产精品视频一区视频二区| 久久精品高清| 欧美午夜三级| 久久中文字幕二区| 国产精品任我爽爆在线播放| 亚洲第一精品影视| 欧美一级二区| 亚洲成人精品| 国产日产精品一区二区三区四区的观看方式| 国产成人精品一区二区三区免费 | 亚洲经典在线| 91福利精品在线观看| 国产91在线精品| 亚洲一区二区日韩| 蜜桃精品在线| 久久99久久人婷婷精品综合| 99pao成人国产永久免费视频 | 日韩精品亚洲专区| 欧美三级精品| 国产精品宾馆| 视频一区国产视频| 欧美天堂视频| 国产美女撒尿一区二区| 99精品视频在线| 国产精品777777在线播放| 爽爽淫人综合网网站| 欧美日韩视频网站| 卡一精品卡二卡三网站乱码| 男人的天堂久久精品| 91tv亚洲精品香蕉国产一区| 国产剧情在线观看一区| 亚洲欧美高清| 亚洲第一区色| 日本午夜大片a在线观看| 欧美一级二级三级视频| 日本 国产 欧美色综合| 亚洲精品97| 欧美日韩在线观看视频小说| 美女毛片一区二区三区四区最新中文字幕亚洲| 亚洲制服少妇| 美女网站一区| 日韩网站中文字幕| 日韩啪啪电影网| 精品国产中文字幕第一页| 日韩精选在线| 亚洲字幕久久| 久久国产精品99国产| 欧美sss在线视频| 欧美亚洲日本精品| 精品免费视频| 国产精品xvideos88| 日韩三级久久| 亚洲精品动态| 日韩精品一二三四| 亚洲深夜福利| 丝袜诱惑制服诱惑色一区在线观看 | 国产精品亚洲欧美日韩一区在线| 亚洲丝袜美腿一区| 在线观看一区| 亚洲69av| 少妇精品久久久一区二区三区| 日韩在线一区二区| 久久亚洲美女| 在线精品观看| 最新国产精品视频| 男女激情视频一区| 一区二区91| 日韩av一区二区三区| 欧美在线首页| 国产精品久久久久久久免费软件 | 久热精品在线| 亚洲专区视频| 国产亚洲电影| 久久免费精品| 久久男人av资源站| 亚洲午夜在线| 91精品99| 中文字幕一区二区精品区| 日本一区中文字幕| 欧美日韩国产一区二区在线观看| 国产精品一区二区精品| 久久精品国产999大香线蕉| 国产一区二区三区91| 精品欧美一区二区三区在线观看| 91九色精品国产一区二区| 丝袜美腿亚洲一区二区图片| 日本免费新一区视频| 久久不见久久见中文字幕免费| 精品免费视频| 欧美高清一区| 婷婷精品在线| 国产精品一区二区精品| 日韩啪啪电影网| 视频一区二区不卡| 国产麻豆一区二区三区精品视频| 成人在线丰满少妇av| 欧洲激情综合| 日本成人手机在线| 91免费精品| 亚洲专区在线| 国产精品v亚洲精品v日韩精品| 91精品韩国| 婷婷精品久久久久久久久久不卡| 精品网站aaa| 老司机久久99久久精品播放免费| 国产伦一区二区三区| 亚洲黄色免费av| 亚洲欧美日本日韩| 久久成人av| 国产农村妇女精品一区二区| 国产无遮挡裸体免费久久| 日韩欧美一区二区三区在线观看 | 亚洲综合福利| 国产传媒在线观看| 国产精品美女久久久| 91精品福利观看| 日韩精品免费一区二区在线观看 | 亚洲免费毛片| 久草免费在线视频| 日韩中出av| 欧美二三四区| 日韩av成人高清| 欧美日韩色图| 欧美精品成人| 视频一区二区不卡| 中国字幕a在线看韩国电影| 天使萌一区二区三区免费观看| 精品久久网站| 亚洲我射av| 久久精品主播| 国产精品99精品一区二区三区∴| 91成人网在线观看| 麻豆一区在线| 亚洲人成高清| 亚洲先锋成人| 成人污污视频| 国产欧美自拍| 蜜臀久久久久久久| 久久久久国产| 精品黄色一级片| 日韩成人午夜精品| 婷婷中文字幕一区| 成人免费一区| 欧美亚洲福利| 综合激情婷婷| 国产精品三上| 亚洲高清不卡| 日韩成人三级| 久久亚洲精品中文字幕| 日本三级亚洲精品| 美国三级日本三级久久99 | 麻豆精品久久久| 日韩激情网站| 午夜亚洲一区| 欧美日韩国产综合网| 国产精品成久久久久| 日本少妇一区二区| 蜜臀av一区二区在线免费观看| 亚洲国内欧美| 日韩精品欧美| 天堂√8在线中文| 精品日韩一区| 精品淫伦v久久水蜜桃| 国产欧美三级| 青青草伊人久久| 亚洲欧美在线综合| 蜜桃一区二区三区在线| 石原莉奈在线亚洲二区| 免费国产自线拍一欧美视频| 欧美亚洲在线日韩| 91看片一区| 激情久久婷婷| 亚洲精品99| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲精品极品|