日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

使用 Spring Validation 优雅地进行参数校验

發(fā)布時(shí)間:2025/3/16 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用 Spring Validation 优雅地进行参数校验 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

引言

不知道大家平時(shí)的業(yè)務(wù)開發(fā)過程中 controller 層的參數(shù)校驗(yàn)都是怎么寫的?是否也存在下面這樣的直接判斷?

public?String?add(UserVO?userVO)?{if(userVO.getAge()?==?null){return?"年齡不能為空";}if(userVO.getAge()?>?120){return?"年齡不能超過120";}if(userVO.getName().isEmpty()){return?"用戶名不能為空";}//?省略一堆參數(shù)校驗(yàn)...return?"OK"; }

業(yè)務(wù)代碼還沒開始寫呢,光參數(shù)校驗(yàn)就寫了一堆判斷。這樣寫雖然沒什么錯(cuò),但是給人的感覺就是:不優(yōu)雅,不專業(yè)。

其實(shí)Spring框架已經(jīng)給我們封裝了一套校驗(yàn)組件:validation。其特點(diǎn)是簡單易用,自由度高。接下來課代表使用springboot-2.3.1.RELEASE搭建一個(gè)簡單的 Web 工程,給大家一步一步講解在開發(fā)過程中如何優(yōu)雅地做參數(shù)校驗(yàn)。

1. 環(huán)境搭建

從springboot-2.3開始,校驗(yàn)包被獨(dú)立成了一個(gè)starter組件,所以需要引入如下依賴:

<!--校驗(yàn)組件--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </dependency> <!--web組件--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency>

而springboot-2.3之前的版本只需要引入 web 依賴就可以了。

2.小試牛刀

參數(shù)校驗(yàn)非常簡單,首先在待校驗(yàn)字段上增加校驗(yàn)規(guī)則注解

public?class?UserVO?{@NotNull(message?=?"age?不能為空")private?Integer?age; }

然后在controller方法中添加@Validated和用于接收錯(cuò)誤信息的BindingResult就可以了,于是有了第一版:

public?String?add1(@Validated?UserVO?userVO,?BindingResult?result)?{List<FieldError>?fieldErrors?=?result.getFieldErrors();if(!fieldErrors.isEmpty()){return?fieldErrors.get(0).getDefaultMessage();}return?"OK"; }

通過工具(postman)去請求接口,如果參數(shù)不符合規(guī)則,會(huì)將相應(yīng)的message信息返回:

age?不能為空

內(nèi)置的校驗(yàn)注解有很多,羅列如下:

注解校驗(yàn)功能
@AssertFalse必須是false
@AssertTrue必須是true
@DecimalMax小于等于給定的值
@DecimalMin大于等于給定的值
@Digits可設(shè)定最大整數(shù)位數(shù)和最大小數(shù)位數(shù)
@Email校驗(yàn)是否符合Email格式
@Future必須是將來的時(shí)間
@FutureOrPresent當(dāng)前或?qū)頃r(shí)間
@Max最大值
@Min最小值
@Negative負(fù)數(shù)(不包括0)
@NegativeOrZero負(fù)數(shù)或0
@NotBlank不為null并且包含至少一個(gè)非空白字符
@NotEmpty不為null并且不為空
@NotNull不為null
@Null為null
@Past必須是過去的時(shí)間
@PastOrPresent必須是過去的時(shí)間,包含現(xiàn)在
@PositiveOrZero正數(shù)或0
@Size校驗(yàn)容器的元素個(gè)數(shù)

3. 規(guī)范返回值

待校驗(yàn)參數(shù)多了之后我們希望一次返回所有校驗(yàn)失敗信息,方便接口調(diào)用方進(jìn)行調(diào)整,這就需要統(tǒng)一返回格式,常見的就是封裝一個(gè)結(jié)果類。

public?class?ResultInfo<T>{private?Integer?status;private?String?message;private?T?response;//?省略其他代碼... }

改造一下controller方法,第二版:

public?ResultInfo?add2(@Validated?UserVO?userVO,?BindingResult?result)?{List<FieldError>?fieldErrors?=?result.getFieldErrors();List<String>?collect?=?fieldErrors.stream().map(o?->?o.getDefaultMessage()).collect(Collectors.toList());return?new?ResultInfo<>().success(400,"請求參數(shù)錯(cuò)誤",collect); }

請求該方法時(shí),所有的錯(cuò)誤參數(shù)就都返回了:

{"status":?400,"message":?"請求參數(shù)錯(cuò)誤","response":?["年齡必須在[1,120]之間","bg?字段的整數(shù)位最多為3位,小數(shù)位最多為1位","name?不能為空","email?格式錯(cuò)誤"] }

4. 全局異常處理

每個(gè)Controller方法中如果都寫一遍BindingResult信息的處理,使用起來還是很繁瑣??梢酝ㄟ^全局異常處理的方式統(tǒng)一處理校驗(yàn)異常。

當(dāng)我們寫了@validated注解,不寫B(tài)indingResult的時(shí)候,Spring 就會(huì)拋出異常。由此,可以寫一個(gè)全局異常處理類來統(tǒng)一處理這種校驗(yàn)異常,從而免去重復(fù)組織異常信息的代碼。

全局異常處理類只需要在類上標(biāo)注@RestControllerAdvice,并在處理相應(yīng)異常的方法上使用@ExceptionHandler注解,寫明處理哪個(gè)異常即可。

@RestControllerAdvice public?class?GlobalControllerAdvice?{private?static?final?String?BAD_REQUEST_MSG?=?"客戶端請求參數(shù)錯(cuò)誤";//?<1>?處理?form?data方式調(diào)用接口校驗(yàn)失敗拋出的異常?@ExceptionHandler(BindException.class)public?ResultInfo?bindExceptionHandler(BindException?e)?{List<FieldError>?fieldErrors?=?e.getBindingResult().getFieldErrors();List<String>?collect?=?fieldErrors.stream().map(o?->?o.getDefaultMessage()).collect(Collectors.toList());return?new?ResultInfo().success(HttpStatus.BAD_REQUEST.value(),?BAD_REQUEST_MSG,?collect);}//?<2>?處理?json?請求體調(diào)用接口校驗(yàn)失敗拋出的異常?@ExceptionHandler(MethodArgumentNotValidException.class)public?ResultInfo?methodArgumentNotValidExceptionHandler(MethodArgumentNotValidException?e)?{List<FieldError>?fieldErrors?=?e.getBindingResult().getFieldErrors();List<String>?collect?=?fieldErrors.stream().map(o?->?o.getDefaultMessage()).collect(Collectors.toList());return?new?ResultInfo().success(HttpStatus.BAD_REQUEST.value(),?BAD_REQUEST_MSG,?collect);}//?<3>?處理單個(gè)參數(shù)校驗(yàn)失敗拋出的異常@ExceptionHandler(ConstraintViolationException.class)public?ResultInfo?constraintViolationExceptionHandler(ConstraintViolationException?e)?{Set<ConstraintViolation<?>>?constraintViolations?=?e.getConstraintViolations();List<String>?collect?=?constraintViolations.stream().map(o?->?o.getMessage()).collect(Collectors.toList());return?new?ResultInfo().success(HttpStatus.BAD_REQUEST.value(),?BAD_REQUEST_MSG,?collect);}}

事實(shí)上,在全局異常處理類中,我們可以寫多個(gè)異常處理方法,課代表總結(jié)了三種參數(shù)校驗(yàn)時(shí)可能引發(fā)的異常:

  • 使用form data方式調(diào)用接口,校驗(yàn)異常拋出 BindException

  • 使用 json 請求體調(diào)用接口,校驗(yàn)異常拋出 MethodArgumentNotValidException

  • 單個(gè)參數(shù)校驗(yàn)異常拋出ConstraintViolationException

  • 注:單個(gè)參數(shù)校驗(yàn)需要在參數(shù)上增加校驗(yàn)注解,并在類上標(biāo)注@Validated。

    全局異常處理類可以添加各種需要處理的異常,比如添加一個(gè)對Exception.class的異常處理,當(dāng)所有ExceptionHandler都無法處理時(shí),由其記錄異常信息,并返回友好提示。

    5.分組校驗(yàn)

    如果同一個(gè)參數(shù),需要在不同場景下應(yīng)用不同的校驗(yàn)規(guī)則,就需要用到分組校驗(yàn)了。比如:新注冊用戶還沒起名字,我們允許name字段為空,但是不允許將名字更新為空字符。

    分組校驗(yàn)有三個(gè)步驟:

  • 定義一個(gè)分組類(或接口)

  • 在校驗(yàn)注解上添加groups屬性指定分組

  • Controller方法的@Validated注解添加分組類

  • public?interface?Update?extends?Default{ } public?class?UserVO?{@NotBlank(message?=?"name?不能為空",groups?=?Update.class)private?String?name;//?省略其他代碼... } @PostMapping("update") public?ResultInfo?update(@Validated({Update.class})?UserVO?userVO)?{return?new?ResultInfo().success(userVO); }

    細(xì)心的同學(xué)可能已經(jīng)注意到,自定義的Update分組接口繼承了Default接口。校驗(yàn)注解(如:@NotBlank)和@validated默認(rèn)都屬于Default.class分組,這一點(diǎn)在javax.validation.groups.Default注釋中有說明

    /***?Default?Jakarta?Bean?Validation?group.*?<p>*?Unless?a?list?of?groups?is?explicitly?defined:*?<ul>*?????<li>constraints?belong?to?the?{@code?Default}?group</li>*?????<li>validation?applies?to?the?{@code?Default}?group</li>*?</ul>*?Most?structural?constraints?should?belong?to?the?default?group.**?@author?Emmanuel?Bernard*/ public?interface?Default?{ }

    在編寫Update分組接口時(shí),如果繼承了Default,下面兩個(gè)寫法就是等效的:

    @Validated({Update.class})

    @Validated({Update.class,Default.class})

    請求一下/update接口可以看到,不僅校驗(yàn)了name字段,也校驗(yàn)了其他默認(rèn)屬于Default.class分組的字段

    {"status":?400,"message":?"客戶端請求參數(shù)錯(cuò)誤","response":?["name?不能為空","age?不能為空","email?不能為空"] }

    如果Update不繼承Default,@Validated({Update.class})就只會(huì)校驗(yàn)屬于Update.class分組的參數(shù)字段,修改后再次請求該接口得到如下結(jié)果,可以看到, 其他字段沒有參與校驗(yàn):

    {"status":?400,"message":?"客戶端請求參數(shù)錯(cuò)誤","response":?["name?不能為空"] }

    6.遞歸校驗(yàn)

    如果 UserVO 類中增加一個(gè) OrderVO 類的屬性,而 OrderVO 中的屬性也需要校驗(yàn),就用到遞歸校驗(yàn)了,只要在相應(yīng)屬性上增加@Valid注解即可實(shí)現(xiàn)(對于集合同樣適用)

    OrderVO類如下

    public?class?OrderVO?{@NotNullprivate?Long?id;@NotBlank(message?=?"itemName?不能為空")private?String?itemName;//?省略其他代碼... }

    在 UserVO 類中增加一個(gè) OrderVO 類型的屬性

    public?class?UserVO?{@NotBlank(message?=?"name?不能為空",groups?=?Update.class)private?String?name;//需要遞歸校驗(yàn)的OrderVO@Validprivate?OrderVO?orderVO;//?省略其他代碼... }???

    調(diào)用請求驗(yàn)證如下:

    7. 自定義校驗(yàn)

    Spring 的 validation 為我們提供了這么多特性,幾乎可以滿足日常開發(fā)中絕大多數(shù)參數(shù)校驗(yàn)場景了。但是,一個(gè)好的框架一定是方便擴(kuò)展的。有了擴(kuò)展能力,就能應(yīng)對更多復(fù)雜的業(yè)務(wù)場景,畢竟在開發(fā)過程中,唯一不變的就是變化本身。

    Spring Validation允許用戶自定義校驗(yàn),實(shí)現(xiàn)很簡單,分兩步:

  • 自定義校驗(yàn)注解

  • 編寫校驗(yàn)者類

  • 代碼也很簡單,結(jié)合注釋你一看就能懂

    @Target({METHOD,?FIELD,?ANNOTATION_TYPE,?CONSTRUCTOR,?PARAMETER}) @Retention(RUNTIME) @Documented @Constraint(validatedBy?=?{HaveNoBlankValidator.class})//?標(biāo)明由哪個(gè)類執(zhí)行校驗(yàn)邏輯 public?@interface?HaveNoBlank?{//?校驗(yàn)出錯(cuò)時(shí)默認(rèn)返回的消息String?message()?default?"字符串中不能含有空格";Class<?>[]?groups()?default?{?};Class<??extends?Payload>[]?payload()?default?{?};/***?同一個(gè)元素上指定多個(gè)該注解時(shí)使用*/@Target({?METHOD,?FIELD,?ANNOTATION_TYPE,?CONSTRUCTOR,?PARAMETER,?TYPE_USE?})@Retention(RUNTIME)@Documentedpublic?@interface?List?{NotBlank[]?value();} } public?class?HaveNoBlankValidator?implements?ConstraintValidator<HaveNoBlank,?String>?{@Overridepublic?boolean?isValid(String?value,?ConstraintValidatorContext?context)?{//?null?不做檢驗(yàn)if?(value?==?null)?{return?true;}if?(value.contains("?"))?{//?校驗(yàn)失敗return?false;}//?校驗(yàn)成功return?true;} }

    自定義校驗(yàn)注解使用起來和內(nèi)置注解無異,在需要的字段上添加相應(yīng)注解即可,同學(xué)們可以自行驗(yàn)證

    回顧

    以上就是如何使用 Spring Validation 優(yōu)雅地校驗(yàn)參數(shù)的全部內(nèi)容,下面重點(diǎn)總結(jié)一下文中提到的校驗(yàn)特性

  • 內(nèi)置多種常用校驗(yàn)注解

  • 支持單個(gè)參數(shù)校驗(yàn)

  • 結(jié)合全局異常處理自動(dòng)組裝校驗(yàn)異常

  • 分組校驗(yàn)

  • 支持遞歸校驗(yàn)

  • 自定義校驗(yàn)

  • 有道無術(shù),術(shù)可成;有術(shù)無道,止于術(shù)

    歡迎大家關(guān)注Java之道公眾號(hào)

    好文章,我在看??

    總結(jié)

    以上是生活随笔為你收集整理的使用 Spring Validation 优雅地进行参数校验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    亚洲成人精品av | 国产手机在线播放 | 99久久99视频只有精品 | www.com黄色| 免费日韩视频 | 婷婷99| 国产97视频在线 | 伊人资源站 | 婷婷六月综合亚洲 | 国产精品中文字幕在线播放 | 欧美日韩啪啪 | 国产91成人 | 欧美一区二区三区激情视频 | 91资源在线免费观看 | 999视频精品 | 综合久久精品 | 五月天婷婷丁香花 | 欧美一区二区视频97 | 欧美坐爱视频 | 天天操夜夜操天天射 | 日韩av电影中文字幕在线观看 | 国产大片黄色 | 日日操天天爽 | 久久综合影视 | 国产在线观看网站 | 国产精品白虎 | 日韩精品中文字幕在线观看 | 日韩美一区二区三区 | 最新av在线播放 | 99久在线精品99re8热视频 | 99re亚洲国产精品 | www.com久久久| 在线免费观看视频你懂的 | 亚洲精品中文在线 | 五月婷婷欧美 | 成人在线观看你懂的 | 国产亚洲精品综合一区91 | 欧美性视频网站 | 日韩一区二区三免费高清在线观看 | 久久久久欧美精品 | 国产91粉嫩白浆在线观看 | 精品 一区 在线 | 欧美专区日韩专区 | 麻豆视频一区二区 | 丁香花在线视频观看免费 | 在线91色 | 欧美精品亚州精品 | 成人av中文字幕在线观看 | 中文十次啦 | 天天碰天天操 | 国产精品一区二区久久 | 西西4444www大胆无视频 | 中文字幕中文字幕在线一区 | 精品一区三区 | 色综合久久久久网 | 欧美一区二区三区在线播放 | 日韩字幕 | 日韩欧美网址 | 99久久99久久 | 国语精品久久 | 久久久久久免费毛片精品 | 中文在线最新版天堂 | 国产精品电影在线 | 婷婷丁香导航 | 国产精品自产拍在线观看蜜 | 99精品国产一区二区 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 国内精品亚洲 | 日本99干网| 92av视频 | 在线观看日韩一区 | 久久久久久久久久久久影院 | 97操操操 | 日日射天天射 | 国产高清免费在线播放 | 四川bbb搡bbb爽爽视频 | 成片免费观看视频 | 97超碰国产在线 | 久久精品国产成人精品 | 91精品在线看 | 丁香五月缴情综合网 | 亚洲天堂在线观看完整版 | 亚洲永久精品视频 | 成人av中文字幕 | 免费日韩 精品中文字幕视频在线 | 天天久久综合 | 中文字幕一区二区三区乱码在线 | 日本久久免费视频 | 天天色官网 | 国产精品久久久久久久久免费 | 国产麻豆电影在线观看 | 国产无套视频 | 欧美三级在线播放 | 美女在线观看av | 99视频网站 | 久操中文字幕在线观看 | 日韩另类在线 | 国产一级高清视频 | 黄色av一区二区 | 成人理论电影 | 久久中文字幕视频 | 中文字幕av日韩 | 久久9精品 | 国产手机精品视频 | 中文伊人 | 日韩欧美综合精品 | 九九免费在线看完整版 | 麻豆精品传媒视频 | 九九视频热 | 五月开心综合 | 97超在线| 国产精品一区二区三区免费看 | 国产久草在线 | 中文字幕在线精品 | 午夜视频99 | 国产成人在线精品 | www久| 人人干天天干 | 国产视频久久久 | av在线a | 一区二区三区 亚洲 | 国产国产人免费人成免费视频 | 天天操天天射天天操 | 成人免费中文字幕 | 香蕉视频在线观看免费 | 国产成人精品av久久 | 伊人色综合久久天天网 | 国产精品三级视频 | 国产成人精品久 | 欧美激情视频一二区 | 国产91小视频 | 色天天中文 | 免费成人黄色av | 黄色三级在线观看 | 亚洲乱码精品久久久 | 久久久久免费精品国产小说色大师 | 99精品一级欧美片免费播放 | 久久久久久国产精品亚洲78 | 成人在线电影观看 | 国产成人一区二区三区免费看 | 久久官网 | 欧美国产高清 | 免费福利片2019潦草影视午夜 | 久久最新视频 | 91在线视频播放 | 日韩精品欧美精品 | 天天草天天摸 | 99成人免费视频 | 女人高潮特级毛片 | 国产精品久99 | 欧美日本不卡 | 国产视频黄| 日韩欧美xx | 国产午夜av | 91精品综合在线观看 | 久久视频国产精品免费视频在线 | 亚洲自拍偷拍色图 | 国内丰满少妇猛烈精品播放 | 碰天天操天天 | 99精品系列 | 亚洲精品小视频 | 日韩在线视频播放 | 久草视频在线资源站 | 婷婷丁香六月天 | 亚洲一本视频 | 高清av中文字幕 | 91精品国产91久久久久久三级 | 91人人在线 | 国产免费一区二区三区最新 | 91精品视频导航 | av中文字幕网址 | 欧美成人在线免费观看 | 久久视频免费 | 操操操av| 天天操天天摸天天干 | 天天插日日操 | 久久免视频 | 波多野结衣精品在线 | 成人免费毛片aaaaaa片 | 久久久午夜视频 | 国产成人精品av在线观 | 精壮的侍卫呻吟h | 一区二区不卡 | 2020天天干夜夜爽 | 国产精品成人久久久久 | 日本中文字幕在线电影 | 91人人揉日日捏人人看 | 久久久国产精品麻豆 | 日韩美在线观看 | 国产在线观看中文字幕 | 天天操天天舔天天爽 | 国内精品久久久久久久久久清纯 | 久久你懂的 | 亚洲www天堂com | 中文字幕一区在线 | 精品一区二区在线播放 | 欧美精品一二 | 日韩精品一区二区三区免费观看 | 国产精品久久久久久久久软件 | 国产精品久久久久永久免费看 | 久久精品99国产精品 | 亚洲干 | 欧美一二在线 | 亚洲国产婷婷 | 免费在线看v | 精品久久久久久国产偷窥 | 97香蕉超级碰碰久久免费软件 | 国产在线精品区 | 欧美一级大片在线观看 | 日韩免费在线一区 | 亚洲最新在线视频 | 中文字幕一区二区三区在线观看 | www.97视频 | 国产 在线 高清 精品 | 国产日韩精品在线 | 中文字幕在线观看1 | 国产原创在线观看 | 日韩在线高清 | 欧洲一区二区三区精品 | 美女黄久久 | 国产高清av | 欧美精品一区二区性色 | 一级黄色大片 | 国产视频一区二区在线 | 久久久九九 | 综合av在线 | 激情综合五月天 | 日韩av电影中文字幕在线观看 | 久草视频在线播放 | 久久免费一级片 | 又黄又爽又色无遮挡免费 | 91av中文字幕 | 久久免费av电影 | 99精品视频观看 | 国产一区二区免费在线观看 | 欧美精品在线观看免费 | 在线性视频日韩欧美 | 国产精品 中文字幕 亚洲 欧美 | 日韩成人精品一区二区 | 国产亚洲高清视频 | 天天色婷婷 | 久射网| 国产综合在线视频 | 国产xxxx做受性欧美88 | 中文高清av | 国产亚洲免费观看 | 色综合中文综合网 | 日韩精品一区二区三区在线播放 | 国产视频一区在线免费观看 | 久久久久久久av | 美女国产免费 | 欧美日本一区 | 精品国产自| 久久视频在线视频 | 久久久久免费精品国产小说色大师 | 丁香六月婷婷激情 | 亚洲综合欧美精品电影 | 国产精品99精品久久免费 | 日韩在线观看视频网站 | 日本久久久亚洲精品 | 91秒拍国产福利一区 | 日韩国产欧美在线视频 | 国产成人精品一区二区三区网站观看 | 夜夜夜影院 | 久草视频免费播放 | 亚洲欧美日韩国产精品一区午夜 | 欧美性大战久久久久 | 天天干天天操天天干 | 99国产精品久久久久久久久久 | 天天色天天色 | 日韩免费在线视频观看 | 久久手机免费观看 | 正在播放国产精品 | 久久你懂的 | 91九色在线视频观看 | 日本三级全黄少妇三2023 | 国产中文字幕一区 | 国产精品理论视频 | 天堂久久电影网 | 色偷偷av男人天堂 | 久久电影网站中文字幕 | 婷婷色伊人 | 色婷婷色 | 日韩精品免费在线观看 | 夜色成人网 | 久久综合久久八八 | 在线观看视频国产 | 99久久精品国产欧美主题曲 | 91香蕉视频好色先生 | 在线免费国产 | 久久国产高清视频 | 精品免费99久久 | 久久五月激情 | 99精品国产99久久久久久福利 | 国产精品久久久久久久久久久久 | 日韩欧美精品一区二区 | 黄色一级大片在线免费看国产一 | 九九99 | 精品国产乱子伦一区二区 | 日韩r级在线 | 久草在线高清视频 | 亚洲免费观看在线视频 | 国产精品免费大片视频 | 韩日精品视频 | 99久久久久国产精品免费 | 日韩91在线 | 亚洲 成人 一区 | 午夜影视一区 | 国产精品成人久久 | 天天综合网天天 | 99夜色 | 国产18精品乱码免费看 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 国产看片免费 | 精品视频在线免费观看 | 国产亚洲成av片在线观看 | 国产精品 日韩 欧美 | 97香蕉久久国产在线观看 | 99九九热只有国产精品 | 999久久久免费视频 午夜国产在线观看 | 操综合 | 国内免费久久久久久久久久久 | 69夜色精品国产69乱 | 99热这里只有精品国产首页 | 久久女同性恋中文字幕 | 亚州精品天堂中文字幕 | 女人18精品一区二区三区 | 国产成人精品一区二 | 日韩簧片在线观看 | 精品专区| 日韩三级在线 | 四虎在线免费视频 | 粉嫩一区二区三区粉嫩91 | 亚洲人天堂 | 国产精品免费久久久久影院仙踪林 | 91九色蝌蚪视频在线 | 一区二区视频在线播放 | 精品久久久久久久久中文字幕 | 国产精品久久电影观看 | 草在线 | 丁香六月伊人 | 久久91久久久久麻豆精品 | 欧美一级看片 | 日韩欧美视频一区二区 | 久久久精品日本 | 天天综合操 | 91久久久久久久一区二区 | 亚洲综合欧美精品电影 | 日韩免费在线视频 | 在线视频欧美日韩 | 国产视频久久 | av千婊在线免费观看 | 日韩精品一区二区免费视频 | 免费无遮挡动漫网站 | 国产一级电影免费观看 | 99久久99热这里只有精品 | 狠狠色狠狠色终合网 | 啪啪精品| 日韩精品一区二区久久 | 色天天 | 久久久免费视频播放 | 欧美日韩在线网站 | 婷婷激情五月 | 精品久久久一区二区 | 国际精品久久久久 | 国产在线观看黄 | 国模一区二区三区四区 | 日韩专区 在线 | free,性欧美| 亚洲欧洲一区二区在线观看 | 天天夜夜亚洲 | 狠狠色丁香婷婷综合 | bbb搡bbb爽爽爽 | 精品免费在线视频 | 在线观看日韩中文字幕 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 国产亚洲一区二区三区 | 国产精品一区二区三区视频免费 | 曰本免费av | 国产91精品一区二区绿帽 | 久久99精品久久久久婷婷 | 一区久久久 | www.色爱| 91网在线观看 | 日日干天天干 | av色综合| 日韩最新在线视频 | 天天插综合 | 五月婷婷开心 | 中文字幕丰满人伦在线 | 国产精品刺激对白麻豆99 | 久久国产乱 | 国产69精品久久久久9999apgf | 美女网站视频免费黄 | 成人午夜片av在线看 | 在线国产精品一区 | 日韩激情一二三区 | 中文字幕一区二区在线播放 | 国产色视频123区 | 亚洲经典视频在线观看 | 中国一级片视频 | 国产成人av一区二区三区在线观看 | 精品一二三区 | japanesexxx乱女另类| 日韩av免费一区 | 国产999精品| 亚洲另类视频 | 激情视频区 | 91免费视频网站在线观看 | 久久只有精品 | 深爱激情综合网 | 正在播放五月婷婷狠狠干 | 久久99国产精品自在自在app | 91人人澡人人爽人人精品 | 久草在线观看视频免费 | 久久精久久精 | 亚洲永久精品一区 | 毛片一区二区 | 久草视频资源 | 久精品视频免费观看2 | 中文字幕av免费观看 | 精品在线一区二区 | 国产手机在线播放 | 久久成人在线视频 | 探花视频免费观看高清视频 | 特级毛片在线免费观看 | 亚洲免费不卡 | 伊人超碰在线 | 在线观看黄网 | 日韩精品一区二区免费 | 亚洲开心色 | 激情综合色综合久久综合 | 黄色大片免费网站 | 国产精品一区二区三区在线 | 天天爱天天操 | 色综合久久久久久久 | 男女拍拍免费视频 | 国产视频一区在线免费观看 | 91亚洲精品久久久中文字幕 | 天天视频亚洲 | 国产综合在线观看视频 | 亚洲精品乱码久久久久久写真 | 免费视频久久久久久久 | 日韩av黄 | 久久手机看片 | 一本大道久久精品懂色aⅴ 五月婷社区 | 最近最新中文字幕 | 九九九九九九精品任你躁 | 男女全黄一级一级高潮免费看 | 久久久这里有精品 | 国产精品一区二区免费看 | 黄色一二级片 | 波多野结衣在线播放视频 | 色停停五月天 | 国产乱老熟视频网88av | 久久综合五月天婷婷伊人 | 成人综合婷婷国产精品久久免费 | 国产黄色免费观看 | 91香蕉国产在线观看软件 | 一区二区三区韩国免费中文网站 | 99久久er热在这里只有精品15 | 欧美一级激情 | 精品国产伦一区二区三区观看方式 | 在线日韩精品视频 | 91最新网址在线观看 | 婷婷国产一区二区三区 | 97超碰在线免费观看 | 开心色插 | 中文字幕丝袜一区二区 | 手机av在线免费观看 | 国产va精品免费观看 | 狠狠狠狠狠狠狠狠 | 国产精品完整版 | 日韩在线观看一区二区三区 | 欧美日韩亚洲国产一区 | 日韩在线精品视频 | 色成人亚洲 | 色资源二区在线视频 | 欧美一二三专区 | 久久久精品久久 | 亚洲精品久久激情国产片 | 国产高清视频 | 国产精品手机视频 | 中文字幕免费不卡视频 | 久久久高清免费视频 | 亚洲精品视频在线免费 | 日韩区在线观看 | 国产精品1区2区3区在线观看 | 国产高清视频免费在线观看 | 亚洲精品1区2区3区 超碰成人网 | 911香蕉视频 | 国产黄色网 | 夜夜夜影院 | 婷婷国产精品 | 久草在线视频看看 | 国产精品久久久久av福利动漫 | 国产一区在线观看免费 | 91超级碰碰| 这里有精品在线视频 | 在线观看黄色国产 | 天天操天天舔天天爽 | 黄色网在线免费观看 | 免费久久99精品国产婷婷六月 | 91高清视频免费 | 伊人色**天天综合婷婷 | 欧美韩国日本在线观看 | 国产第一页在线观看 | 国产精品乱码一区二三区 | 亚洲天天摸日日摸天天欢 | 91免费网站在线观看 | 亚洲欧美日韩在线一区二区 | 国产黄a三级三级 | 美腿丝袜一区二区三区 | www.天天射 | 91综合色| 久久久精品国产免费观看同学 | 欧美污在线观看 | 夜夜操天天干, | 午夜av在线电影 | 国产精品欧美久久久久无广告 | 亚洲91网站 | 亚洲激情综合 | 国产一区在线免费观看视频 | 伊人伊成久久人综合网小说 | 日韩免费av在线 | 国产精品video爽爽爽爽 | 久久久精品影视 | 国产中文字幕第一页 | 亚洲国产视频在线 | 99超碰在线观看 | 九九九热精品免费视频观看网站 | 婷婷六月天天 | 成人av电影在线观看 | 最近免费中文字幕大全高清10 | 一区在线免费观看 | 操操操天天操 | 超碰免费观看 | 天天激情天天干 | 成人xxxx| 看片黄网站 | www.夜色.com | 亚洲永久精品视频 | 麻豆91小视频 | 超碰在线94 | 久久婷婷网 | 久久久久免费精品国产小说色大师 | 91精品国产92久久久久 | 中文字幕在线免费 | av千婊在线免费观看 | 国产成人精品一区二区 | 亚洲 中文字幕av | 九九免费在线看完整版 | 精品视频99 | 一区二区三区免费在线 | 久久在现视频 | 免费国产一区二区视频 | 日韩精品一区二区三区高清免费 | 日韩中文字幕第一页 | 久久免费视频99 | 国产成人av电影在线观看 | 成年人电影免费看 | 91精品国产自产在线观看永久 | 国产免费大片 | 国产1级视频 | 手机成人免费视频 | 美女福利视频一区二区 | 中文在线8新资源库 | 女人18片毛片90分钟 | 久久国产精品久久精品国产演员表 | 国产在线精品一区二区三区 | 色就色,综合激情 | 日韩99热| 午夜av剧场 | 色五月色开心色婷婷色丁香 | 国产热re99久久6国产精品 | 2019中文字幕第一页 | 久久久国产精品麻豆 | 欧美日韩国产精品一区二区 | 久草青青在线观看 | 日韩免费在线观看视频 | 最近更新的中文字幕 | 99色国产| 青春草免费在线视频 | 青青河边草免费观看 | 日韩黄色免费在线观看 | 欧美怡红院 | 国产资源免费在线观看 | 色五月成人 | 91新人在线观看 | 精品国产1区| 亚洲国产剧情av | 国产亚洲精品电影 | 色视频在线观看 | 国产精在线 | 91九色蝌蚪视频在线 | 亚洲一级黄色 | 中文字幕精品一区二区精品 | 五月婷婷操 | 亚洲午夜久久久久久久久 | 久久超碰在线 | 精品产品国产在线不卡 | 在线看的毛片 | 夜夜操狠狠操 | 午夜精品久久久久久久久久久 | 波多野结衣最新 | 亚洲国产大片 | 久久久免费在线观看 | 国产精品一区二区久久精品爱微奶 | 久久久久久久18 | 国产成人三级一区二区在线观看一 | 久艹在线免费观看 | 国产精品18久久久久久久 | 久久y| 国产精品视频一二三 | 亚洲在线免费视频 | 午夜.dj高清免费观看视频 | 毛片www | av在线一二三区 | 欧美成人一二区 | 亚洲v欧美v国产v在线观看 | 日韩专区一区二区 | 碰天天操天天 | 免费69视频| 国产 一区二区三区 在线 | 国产不卡网站 | 亚洲成人网av | 九九在线国产视频 | 日韩av手机在线观看 | 精品国产免费一区二区三区五区 | 夜夜操网站 | av久久久久久 | 免费成人在线视频网站 | 国产黄色在线观看 | a√天堂资源 | 九九色在线观看 | 欧美精品小视频 | 国产96av | 亚洲在线成人精品 | 日本精品va在线观看 | 国产成人性色生活片 | 久久电影中文字幕视频 | 国内精品久久久久影院男同志 | 日韩一区二区三免费高清在线观看 | 九九免费精品视频在线观看 | 中文字幕在线免费观看视频 | 国产一区视频免费在线观看 | 天天操天天射天天爱 | 91在线观看高清 | 手机在线小视频 | 在线观看香蕉视频 | 欧美日韩国产精品久久 | 欧美日韩在线观看不卡 | 免费在线观看一区 | 欧美福利视频 | 可以免费观看的av片 | 免费在线观看一区二区三区 | 国产黄在线播放 | 九色91在线 | 国产亚洲精品综合一区91 | www在线观看国产 | 天天操夜夜看 | 在线免费性生活片 | 蜜臀av在线一区二区三区 | 久久九九九九 | 在线观看涩涩 | 欧美在线观看视频 | 超碰人人超碰 | av亚洲产国偷v产偷v自拍小说 | 国产短视频在线播放 | 97色视频在线 | 久久国产精品成人免费浪潮 | 色999视频| 可以免费看av | 日本三级久久久 | 欧美激情视频在线免费观看 | 超碰国产人人 | 久久爽久久爽久久av东京爽 | 亚洲国产欧美在线看片xxoo | 激情六月婷婷久久 | 免费人成在线观看 | 日韩在线观看视频免费 | 天天曰天天 | 国产免费久久久久 | 亚洲美女精品视频 | 97成人在线免费视频 | 欧美性生活大片 | 免费看十八岁美女 | 91高清免费看 | 日韩中文字幕电影 | 夜夜干夜夜 | 国产精品一区二区三区久久久 | 国产亚洲精品久久久久秋 | av网址最新| 日韩免费一区二区 | 91视频免费看 | 久久亚洲电影 | 国产免费久久精品 | 日韩理论在线视频 | 久久免费高清 | 午夜精品久久久久久久99热影院 | 国产黄色片免费在线观看 | 香蕉97视频观看在线观看 | 久久精品影视 | 国产一区二区久久精品 | 精品一二区 | 国产97视频 | 免费视频一区二区 | 久久久私人影院 | 久久五月天综合 | 久久婷婷一区二区三区 | 婷婷丁香激情综合 | 四川bbb搡bbb爽爽视频 | 91成熟丰满女人少妇 | 婷婷色狠狠 | 欧美日韩综合在线观看 | 香蕉视频在线观看免费 | 黄色三级免费 | 欧美精品免费在线 | 毛片基地黄久久久久久天堂 | 日韩在线视频免费播放 | 日韩不卡高清视频 | 婷婷五月情 | 国产美女免费视频 | 日韩二区三区在线 | 国产日产精品一区二区三区四区的观看方式 | 亚洲免费观看视频 | aⅴ视频在线 | 久久在线免费观看视频 | 超碰在线亚洲 | 欧美成人黄色片 | 国际精品久久久久 | 国产亚洲字幕 | 五月婷婷色 | 91热在线 | 久久精品国产一区 | 亚洲国产伊人 | 黄色av电影网 | 久久综合久久综合久久 | 精品免费视频123区 午夜久久成人 | 国产又粗又硬又爽的视频 | 成人精品国产免费网站 | 成人丝袜 | 97超碰精品| 国偷自产视频一区二区久 | 日本精a在线观看 | 亚洲视频 中文字幕 | 国产精品99免费看 | www99久久| 成人看片 | 亚洲午夜久久久久久久久电影网 | 成人av影视观看 | 久久国产剧场电影 | 91热视频 | 国产精品成人a免费观看 | 成人资源在线播放 | 97视频在线看 | 亚洲精品裸体 | 国产精品亚洲a | 国产91对白在线 | 免费久久网站 | 深爱五月激情五月 | 欧美成人xxxxx | 欧美最爽乱淫视频播放 | 国产91综合一区在线观看 | 久久无码精品一区二区三区 | 久久免费视频国产 | 国产精品手机在线播放 | 欧美日韩高清一区二区 国产亚洲免费看 | 日韩欧美精品在线视频 | 国产精品激情 | 成片免费观看视频 | 五月婷婷在线观看 | 97电影在线看视频 | 8x成人在线 | 国产在线精品视频 | 中文字幕在线视频第一页 | 丁香综合激情 | 欧美久久久久久久久久久 | 操操操人人 | 九九热在线播放 | 日韩视频一区二区在线观看 | 欧美日韩国产一区二区三区在线观看 | 国产精品久久精品 | 精品亚洲免a | 探花视频在线观看免费 | 人人插人人 | 中文av影院 | 日女人免费视频 | av中文国产 | 丁香婷婷色综合亚洲电影 | 在线观看 国产 | 欧美另类v | 欧美有色| 草久在线观看视频 | 伊人久久精品久久亚洲一区 | 玖玖玖精品 | 欧美日韩国产一区二区三区在线观看 | 久久久亚洲精华液 | 日韩精品一区二区在线观看视频 | 国产精品久久久久久久久久白浆 | 精品亚洲视频在线观看 | 国产香蕉视频在线观看 | 日韩欧美视频二区 | 开心色婷婷 | 黄色三级免费看 | 岛国av在线不卡 | 在线看成人| 福利视频第一页 | 在线v片| 日本中文在线 | 草久视频在线 | 国产剧情一区二区 | 国产看片免费 | www色网站| 国产黄免费看 | av中文天堂在线 | 国产福利小视频在线 | 超碰97在线资源站 | 久草久草在线 | 免费高清看电视网站 | 色婷婷色 | 日韩免费在线一区 | 91精品国产综合久久福利 | 欧美日韩国产页 | 午夜狠狠干 | 久久精品日韩 | 欧美不卡在线 | 天天射天天干天天插 | 中文字幕资源网 | 国产成人精品久久久久 | 免费成人在线视频网站 | 免费观看性生交大片3 | 欧美色888 | 丁香激情综合国产 | 久久人人艹| 很黄很污的视频网站 | 国产激情电影综合在线看 | 中文字幕精品www乱入免费视频 | 久久午夜剧场 | 五月天综合 | 国产精品久久99 | 午夜久久| 日韩免费观看视频 | 国产成人在线免费观看 | 亚洲区另类春色综合小说校园片 | 91成人免费看片 | 成年美女黄网站色大片免费看 | 超碰在线97免费 | 狠狠操操 | 免费在线精品视频 | 久久不卡国产精品一区二区 | 日韩a级黄色 | 天天干.com | av不卡在线看 | 欧美日韩免费网站 | 在线观看黄色 | 久久免费毛片视频 | 狠狠狠干 | 欧美色噜噜噜 | 西西人体www444 | 99久久久国产精品免费观看 | 久久99欧美 | 99视频这里只有 | 欧美男女爱爱视频 | 九色视频网址 | 日韩精品一区二区三区不卡 | 日韩网站视频 | 天天爱天天色 | 射射色 | 又黄又爽的视频在线观看网站 | 在线欧美最极品的av | 夜夜操天天干, | 91精品一区二区三区蜜臀 | 日韩美在线观看 | av免费在线网站 | 久久久久久久久影视 | 国产专区一| 欧美午夜性生活 | 最近最新中文字幕 | 色久网| 97超碰超碰 | 成人永久视频 | 99久久这里只有精品 | 亚洲最新av在线网站 | 成人影视免费 | 亚洲天天在线日亚洲洲精 | 久久一久久 | 天天爽夜夜爽精品视频婷婷 | av免费在线免费观看 | 亚洲欧洲精品视频 | www成人精品 | 97视频免费观看 | 国产黄色观看 | 在线免费观看涩涩 | 在线视频久久 | 天堂va在线高清一区 | 日韩精品中文字幕有码 | 人人爽久久久噜噜噜电影 | 国产午夜影院 | 中中文字幕av | 免费高清在线视频一区· | 狠狠地操 | 成人在线视频一区 | 午夜 久久 tv | 99这里只有久久精品视频 | 日韩免费视频在线观看 | 免费成人av电影 | 亚洲黄色免费电影 | 五月婷婷丁香综合 | 久久精品欧美一区二区三区麻豆 | 久久久.com | 99久久久久国产精品免费 | 天天做天天看 | 成人黄色电影在线 | 99热精品在线 | 日韩视频中文 | 五月天丁香综合 | 美女久久久久久久久久 | 99综合视频| 久久国产美女视频 | 天天草天天草 | 亚洲人久久久 | 射射色 | 中文字幕在线观看1 | 色噜噜狠狠狠狠色综合 | 精品美女国产在线 | 美国av大片 | av再线观看 | 在线观看国产成人av片 | 欧美极品久久 | 亚洲清纯国产 | 九月婷婷人人澡人人添人人爽 | 成人免费一区二区三区在线观看 | www.xxxx欧美 | 欧洲一区二区三区精品 | 在线观看日本韩国电影 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 精品久久国产一区 | 日韩一级电影网站 | 91亚洲精品久久久中文字幕 | 久久久久一区二区三区 | 丰满少妇在线观看 | 国产精品国产三级国产专区53 | 91视频 - v11av| 日韩在线三级 | 午夜久久久久久久久久久 | 国产美女久久 | 国产糖心vlog在线观看 | 大胆欧美gogo免费视频一二区 | 99欧美精品 | 欧美日韩国产色综合一二三四 | 日本少妇久久久 | 日韩成人免费在线 | 国产破处视频在线播放 | 国内一区二区视频 | 中文字幕视频播放 | 色婷婷激婷婷情综天天 | 日本视频不卡 | 国产精品久久久久av免费 | 久久久久久久久福利 | 国产欧美日韩一区 | 黄色成人av | 免费网站色 | 亚洲午夜久久久综合37日本 | 国产精品国产三级国产 | 国产精品色在线 | 成人性生爱a∨ | 国产高清精| av中文字幕不卡 | 91视频免费观看 | 日日夜夜噜噜噜 | 精品国产一区二区三区久久久久久 | 久草在线在线视频 | www看片网站| 久久a视频 | 视频三区 | 久久一区91| 国产成a人亚洲精v品在线观看 | 午夜私人影院久久久久 | 永久中文字幕 | 免费高清在线一区 | 麻豆网站免费观看 | 天天做日日做天天爽视频免费 | 天天操天天干天天操天天干 | 国产黄色片免费在线观看 | 狠狠操天天射 | 超碰电影在线观看 | 国产日韩在线播放 | 91丨九色丨蝌蚪丨对白 | 九月婷婷综合网 | 一区二区精品在线视频 | 久草久草久草久草 | 波多野结衣在线观看一区 | 亚洲国产mv | 91精品免费视频 | 国产91精品久久久久 | 亚洲精品国产欧美在线观看 | 久久在线免费观看 |