久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

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

Spring Boot利用JSR303實現參數驗證的方法實例

瀏覽:88日期:2023-05-16 18:04:49

簡介

JSR-303 是 JAVA EE 6 中的一項子規范,叫做 Bean Validation。

在任何時候,當你要處理一個應用程序的業務邏輯,數據校驗是你必須要考慮和面對的事情。應用程序必須通過某種手段來確保輸入進來的數據從語義上來講是正確的。在通常的情況下,應用程序是分層的,不同的層由不同的開發人員來完成。很多時候同樣的數據驗證邏輯會出現在不同的層,這樣就會導致代碼冗余和一些管理的問題,比如說語義的一致性等。為了避免這樣的情況發生,最好是將驗證邏輯與相應的域模型進行綁定。

Bean Validation 為 JavaBean 驗證定義了相應的元數據模型和 API。缺省的元數據是 Java Annotations,通過使用 XML 可以對原有的元數據信息進行覆蓋和擴展。在應用程序中,通過使用 Bean Validation 或是你自己定義的 constraint,例如 @NotNull, @Max, @ZipCode, 就可以確保數據模型(JavaBean)的正確性。constraint 可以附加到字段,getter 方法,類或者接口上面。對于一些特定的需求,用戶可以很容易的開發定制化的 constraint。Bean Validation 是一個運行時的數據驗證框架,在驗證之后驗證的錯誤信息會被馬上返回。

Bean Validation 規范內嵌的約束注解

Spring Boot利用JSR303實現參數驗證的方法實例

實例

基本應用

引入依賴

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId></dependency>

給參數對象添加校驗注解

@Datapublic class User { private Integer id; @NotBlank(message = '用戶名不能為空') private String username; @Pattern(regexp = '^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$', message = '密碼必須為8~16個字母和數字組合') private String password; @Email private String email; private Integer gender;}

Controller 中需要校驗的參數Bean前添加 @Valid 開啟校驗功能,緊跟在校驗的Bean后添加一個BindingResult,BindingResult封裝了前面Bean的校驗結果。

@RestController@RequestMapping('/user')public class UserController { @PostMapping('') public Result save (@Valid User user , BindingResult bindingResult) { if (bindingResult.hasErrors()) { Map<String , String> map = new HashMap<>(); bindingResult.getFieldErrors().forEach( (item) -> { String message = item.getDefaultMessage(); String field = item.getField(); map.put( field , message ); } ); return Result.build( 400 , '非法參數 !' , map); } return Result.ok(); }}

測試如下:

Spring Boot利用JSR303實現參數驗證的方法實例

異常的統一處理

參數校驗不通過時,會拋出 BingBindException 異常,可以在統一異常處理中,做統一處理,這樣就不用在每個需要參數校驗的地方都用 BindingResult 獲取校驗結果了。

@Slf4j@RestControllerAdvice(basePackages = 'com.itwolfed.controller')public class GlobalExceptionControllerAdvice { @ExceptionHandler(value= {MethodArgumentNotValidException.class , BindException.class}) public Result handleVaildException(Exception e){ BindingResult bindingResult = null; if (e instanceof MethodArgumentNotValidException) { bindingResult = ((MethodArgumentNotValidException)e).getBindingResult(); } else if (e instanceof BindException) { bindingResult = ((BindException)e).getBindingResult(); } Map<String,String> errorMap = new HashMap<>(16); bindingResult.getFieldErrors().forEach((fieldError)-> errorMap.put(fieldError.getField(),fieldError.getDefaultMessage()) ); return Result.build(400 , '非法參數 !' , errorMap); }}

分組解決校驗

新增和修改對于實體的校驗規則是不同的,例如id是自增的時候,新增時id要為空,修改則必須不為空;新增和修改,若用的恰好又是同一種實體,那就需要用到分組校驗。

校驗注解都有一個groups屬性,可以將校驗注解分組,我們看下@NotNull的源碼:

@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })@Retention(RUNTIME)@Repeatable(List.class)@Documented@Constraint(validatedBy = { })public @interface NotNull { String message() default '{javax.validation.constraints.NotNull.message}'; Class<?>[] groups() default { }; Class<? extends Payload>[] payload() default { }; @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE }) @Retention(RUNTIME) @Documented @interface List { NotNull[] value(); }}

從源碼可以看出 groups 是一個Class<?>類型的數組,那么就可以創建一個Groups.

public class Groups { public interface Add{} public interface Update{}}

給參數對象的校驗注解添加分組

@Datapublic class User { @Null(message = '新增不需要指定id' , groups = Groups.Add.class) @NotNull(message = '修改需要指定id' , groups = Groups.Update.class) private Integer id; @NotBlank(message = '用戶名不能為空') @NotNull private String username; @Pattern(regexp = '^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$', message = '密碼必須為8~16個字母和數字組合') private String password; @Email private String email; private Integer gender;}

Controller 中原先的@Valid不能指定分組 ,需要替換成@Validated

@RestController@RequestMapping('/user')public class UserController { @PostMapping('') public Result save (@Validated(Groups.Add.class) User user) { return Result.ok(); }}

測試如下:

Spring Boot利用JSR303實現參數驗證的方法實例

自定義校驗注解

雖然JSR303和springboot-validator 已經提供了很多校驗注解,但是當面對復雜參數校驗時,還是不能滿足我們的要求,這時候我們就需要 自定義校驗注解。

例如User中的gender,用 1代表男 2代表女,我們自定義一個校驗注解@ListValue,指定取值只能1和2。

創建約束規則

@Documented@Constraint(validatedBy = { ListValueConstraintValidator.class })@Target({ METHOD, FIELD, ANNOTATION_TYPE })@Retention(RUNTIME)public @interface ListValue { String message() default ''; Class<?>[] groups() default { }; Class<? extends Payload>[] payload() default { }; int[] vals() default { };}

一個標注(annotation) 是通過@interface關鍵字來定義的. 這個標注中的屬性是聲明成類似方法 的樣式的. 根據Bean Validation API 規范的要求:

message屬性, 這個屬性被用來定義默認得消息模版, 當這個約束條件被驗證失敗的時候,通過 此屬性來輸出錯誤信息。 groups 屬性, 用于指定這個約束條件屬于哪(些)個校驗組. 這個的默認值必須是Class<?>類型數組。 payload 屬性, Bean Validation API 的使用者可以通過此屬性來給約束條件指定嚴重級別. 這個屬性并不被API自身所使用。

除了這三個強制性要求的屬性(message, groups 和 payload) 之外, 我們還添 加了一個屬性用來指定所要求的值. 此屬性的名稱vals在annotation的定義中比較特 殊, 如果只有這個屬性被賦值了的話, 那么, 在使用此annotation到時候可以忽略此屬性名稱.

另外, 我們還給這個annotation標注了一些元標注( meta annotatioins):

@Target({ METHOD, FIELD, ANNOTATION_TYPE }): 表示此注解可以被用在方法, 字段或者 annotation聲明上。 @Retention(RUNTIME): 表示這個標注信息是在運行期通過反射被讀取的. @Constraint(validatedBy = ListValueConstraintValidator.class): 指明使用哪個校驗器(類) 去校驗使用了此標注的元素. @Documented: 表示在對使用了該注解的類進行javadoc操作到時候, 這個標注會被添加到 javadoc當中.

創建約束校驗器

import javax.validation.ConstraintValidator;import javax.validation.ConstraintValidatorContext;import java.util.HashSet;import java.util.Set;public class ListValueConstraintValidator implements ConstraintValidator<ListValue,Integer> { private Set<Integer> set = new HashSet<>(); /** * 初始化方法 */ @Override public void initialize(ListValue constraintAnnotation) { int[] vals = constraintAnnotation.vals(); for (int val : vals) { set.add(val); } } /** * 判斷是否校驗成功 * * @param value 需要校驗的值 * @param context * @return */ @Override public boolean isValid(Integer value, ConstraintValidatorContext context) { return set.contains(value); }}

ListValueConstraintValidator定義了兩個泛型參數, 第一個是這個校驗器所服務到標注類型(在我們的例子中即ListValue), 第二個這個校驗器所支持到被校驗元素的類型 (即Integer)。

如果一個約束標注支持多種類型的被校驗元素的話, 那么需要為每個所支持的類型定義一個ConstraintValidator,并且注冊到約束標注中。

這個驗證器的實現就很平常了, initialize() 方法傳進來一個所要驗證的標注類型的實例, 在本 例中, 我們通過此實例來獲取其vals屬性的值,并將其保存為Set集合中供下一步使 用。

isValid()是實現真正的校驗邏輯的地方, 判斷一個給定的int對于@ListValue這個約束條件來說 是否是合法的。

在參數對象中使用@ListValue注解。

@Datapublic class User { @Null(message = '新增不需要指定id' , groups = Groups.Add.class) @NotNull(message = '修改需要指定id' , groups = Groups.Update.class) private Integer id; @NotBlank(message = '用戶名不能為空') @NotNull private String username; @Pattern(regexp = '^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$', message = '密碼必須為8~16個字母和數字組合') private String password; @Email private String email; @ListValue( message = '性別應指定相應的值' , vals = {1,2} , groups = {Groups.Add.class , Groups.Update.class}) private Integer gender;}

測試如下:

Spring Boot利用JSR303實現參數驗證的方法實例

源碼地址

https://github.com/gf-huanchupk/SpringBootLearning

參考

https://www.ibm.com/developerworks/cn/java/j-lo-jsr303/index.html https://docs.jboss.org/hibernate/validator/4.3/reference/zh-CN/pdf/hibernate validator reference.pdf

總結

到此這篇關于Spring Boot利用JSR303實現參數驗證的文章就介紹到這了,更多相關Spring Boot用JSR303參數驗證內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 精品国产乱码久久久久久1区2区 | 毛片在线免费 | 欧美精品影院 | 成人在线视频网站 | 91视频国产一区 | avmans最新导航地址 | 亚洲欧美在线视频 | 国产精品一区在线 | 久草精品在线观看 | 欧美日韩黄色一区二区 | 精品一区二区三区四区五区 | 亚洲va欧美va天堂v国产综合 | a黄视频 | 中文字幕在线第一页 | 日本a在线 | 亚洲a级在线观看 | 日韩不卡一区二区三区 | 欧美视频精品在线观看 | 成人小视频在线观看 | 日韩精品在线免费 | 山岸逢花在线观看无删减 | 久久久久黄| 成人看片在线观看 | 在线中文字幕视频 | 中文字幕久久久 | 亚洲视频在线播放 | 久久久天天 | 五月天婷婷国产精品 | 国产一区二区在线视频观看 | 亚洲国产高清在线 | 美国一级黄色片 | 欧美多人在线 | 国产婷婷精品av在线 | 国产丝袜人妖ts黄檬 | 久久久久久久一区 | 日本福利视频 | 午夜在线一区 | jlzzjlzz国产精品久久 | 91久久久久 | 韩国三级午夜理伦三级三 | 欧美 日韩 | 国产精品久久久久9999鸭 | 成人在线国产 | 欧美激情久久久 | 国产精品一区久久久久 | 国内自拍视频在线观看 | 日韩视频在线不卡 | 天天看天天爽 | 精品久久久久久久久久久久 | 国产一区 | 欧美成人h版在线观看 | 天天澡天天狠天天天做 | 亚洲区国产区 | 伊人网网站 | 天天操天天碰 | 免费看的毛片 | 久久精品久久久久 | 自拍偷拍一区二区三区 | 久久久精彩视频 | 久久久www成人免费精品 | 精品国精品国产自在久不卡 | 欧美精品在线免费观看 | 国产女人网| 丰满少妇久久久久久久 | 成人精品一区二区 | 成人黄色在线观看 | 国产精品极品美女在线观看免费 | 久久影音先锋 | 黄色大片在线 | 精品国产黄a∨片高清在线 激情网站免费 | 九九亚洲视频 | 国产真实精品久久二三区 | 国产在线2| 国产在线高清 | v亚洲| 色噜噜狠狠狠综合曰曰曰88av | 亚洲成人日韩 | 久久精品123| 天天精品视频免费观看 | 99免费观看视频 | 国内自拍第一页 | 国产精品日韩欧美一区二区三区 | 丁香亚洲| 三级视频网站 | 男女羞羞视频在线观看 | 三区在线视频 | 国产在线高清视频 | 国产视频一区二区 | 免费福利视频一区二区三区 | 久久国产精品视频 | 天天草天天干 | 久久久99精品免费观看 | 国产成人激情 | 中文一区二区 | 中文字幕免费看 | 国产偷自视频区视频 | 成人亚洲一区 | 日韩免费网站 | 综合久久综合久久 | 91精品国产91久久久久久最新 | 国产精品午夜电影 | 欧美a网站 | 久久伊人影院 | 四色成人av永久网址 | 亚洲精品视频免费 | 精品国产不卡一区二区三区 | 欧美成人高清视频 | 日日操操| 天堂一区二区三区四区 | 国产乱码精品一区二区三区五月婷 | 操操日 | 国产一区二区三区欧美 | 这里精品 | 成人在线小视频 | 国产精品视频专区 | 国产伦精品一区二区三区四区视频 | 国产欧美精品一区二区三区四区 | 国产成人久久精品一区二区三区 | 精品综合久久 | 亚洲一区二区三区福利 | 在线视频 中文字幕 | 午夜资源 | 国产成人久久精品麻豆二区 | 日韩中文一区二区三区 | 久久人人爽人人爽人人片亚洲 | 中文一区 | 日韩精品久 | av在线免费观看网址 | 成人xxx| 欧美自拍一区 | 一级a毛片| 欧美日韩在线一区二区 | 91精品国产91久久久久久吃药 | 久草久草 | 久久一视频 | 蜜臀在线视频 | 免费成人高清在线视频 | 久久99精品久久久久国产越南 | 在线a视频 | a级在线| 国产精品视频999 | 国产亲子乱弄免费视频 | 国产美女精品 | jizz18国产| 91精品久久久久久久久久久久久久久 | 在线手机电影 | 精品视频久久久 | 九九精品在线 | 精产国产伦理一二三区 | 午夜午夜精品一区二区三区文 | 亚洲精美视频 | 中国1级黄色片 | 国产在线91 | 欧美日韩成人在线观看 | 女人久久久久久久 | 久久久999精品视频 五月天婷婷在线视频 | 久久免费精品 | 久久亚洲视频 | 国产精品久久久久影院色老大 | 久热av在线| 天天操操| 国产看片网站 | 网站一区二区三区 | 欧美精品免费在线观看 | 成人精品一区二区三区 | 91在线视频播放 | 在线播放高清视频www | 久久伊99综合婷婷久久伊 | 久久国内精品 | 激情图区在线观看 | 99re6在线视频精品免费 | 日韩一片| 最新国产精品 | 91精品国产欧美一区二区成人 | 在线观看成人小视频 | 欧美一区二区三区视频在线观看 | 日韩毛片免费视频一级特黄 | 一区二区三区在线播放视频 | av中文字幕在线播放 | 精品欧美一区二区三区久久久 | 毛片在线视频 | 日韩一区二区在线视频 | 中文字幕色 | 中文字幕国产 | 黄色官网在线观看 | 天天爽夜夜爽夜夜爽精品视频 | 国产一区 | 久草在线 | 亚洲一区二区三区四区在线 | 日韩国产欧美精品 | 伊人激情网 | 91干在线观看 | 亚洲免费一区二区 | 91精品久久久久久 | 91免费影视 | 9久久婷婷国产综合精品性色 | 一本一道久久a久久精品逆3p | 极品毛片 | 国产在线高清视频 | 欧美日韩第一页 | 国产精品成人品 | www.麻豆 | 国产精品一区二区三区免费 | 久久久免费av| 成人免费毛片高清视频 | 国产成人精品高清久久 | 国产精品一区在线 | 日韩亚洲欧美综合 | 久久久久久毛片免费观看 | 性视频网 | 欧美全黄| 欧美一级高潮片免费的 | 亚洲福利二区 | 性处破╳╳╳高清欧美 | 亚洲www永久成人夜色 | www.av在线| 国产精品国产成人国产三级 | a视频在线观看 | 秋霞av电影| 久久久精品一区二区三区 | 久久国产成人 | 精品久久伊人 | 日本妇乱大交xxxxx | 亚洲一区精品在线 | 天天久久综合网 | 欧美日韩视频在线第一区 | 国产精品久久久久久妇女6080 | 国产精品免费观看 | 欧美一级片在线观看 | 国产精品毛片在线 | 欧美激情精品久久久久 | 一区二区视频网站 | 97av在线 | 日韩高清一区二区 | 福利视频1000 | 中文字幕第一页在线 | 欧美久久精品 | 欧美三级网 | 免费黄色在线视频网址 | 在线欧美日韩 | 91亚洲国产成人久久精品网站 | 亚洲精品一区在线观看 | 国产日韩一区二区三区 | 亚洲免费精品 | 嫩草懂你| 国产精品色一区二区三区 | 在线干| 波多野结衣一二三四区 | 在线观看毛片视频 | 激情99 | 婷婷综合一区 | 亚洲欧美日韩在线一区二区 | 99精品久久久久 | 日韩在线亚洲 | 国产天天操 | 国产精品原创巨作av | 午夜爽爽影院 | 深夜成人小视频 | 四虎av在线 | 久久国| 国产欧美综合一区二区三区 | 欧美精品在线一区二区三区 | 视频一区二区三区免费观看 | 毛片a片| 美女一区二区三区四区 | 天堂资源 | 亚洲在线免费观看 | 黄色综合网 | 久久亚洲一区二区三区四区五区高 | 日韩欧美国产精品综合嫩v 国产高清av在线一区二区三区 | 精品中文在线 | 亚洲精品福利 | 精品www| 97久久精品 | 五月激情综合婷婷 | 91中文 | 中文字幕一区二区在线观看 | av中文字幕网 | 国产精品久久久久久久美男 | 成人免费视频网 | 黄色a级| 在线免费一级片 | aa毛片| 激情欧美一区二区 | 一区二区三区国产 | 6080yy午夜一二三区久久 | 自拍小电影 | 一级黄色录象片 | 中文字幕在线观看 | h亚洲视频 | 天堂资源网 | 欧美日韩成人在线播放 | 国产日韩视频在线观看 | 日韩电影专区 | 国产成人精品久久 | 国产精品三级久久久久久电影 | 日本videos18高清hd下 | 国产成人99 | 天天澡天天狠天天天做 | 一区二区国产在线观看 | 精品国产不卡一区二区三区 | 亚洲日日操 | 亚洲欧洲一区二区 | 免费一区| 中文字幕第90页 | 免费看黄视频网站 | 欧美综合国产精品久久丁香 | 日本精品视频在线观看 | 天天操天天操 | 日韩视频免费在线观看 | 一级a性色生活片久久毛片波多野 | 不卡日韩在线 | 久久久久久久久国产精品 | 国产在线精品一区二区三区 | 亚洲一区av | 狠狠操操 | 欧美精品自拍 | 日韩激情综合网 | av免费看在线 | 亚洲毛片| 久久草草影视免费网 | 欧美成人精品激情在线观看 | 欧美日韩视频在线观看免费 | 欧美视频二区 | 韩国精品一区 | 欧美激情视频一区二区三区在线播放 | 九九av| 欧美日韩中文字幕在线 | 午夜视频一区二区三区 | 91视频在线 | 日韩在线视频观看 | 日韩成人在线免费视频 | 色资源站 | 一级片在线观看 | 欧美日韩综合 | 一级毛片在线播放 | 欧美精品一区二区三区蜜臀 | 成人免费毛片高清视频 | www.亚洲| 天堂免费在线观看视频 | 久久久久久毛片免费播放 | 亚洲视频在线观看网站 | 国产精品一区二区三区四区 | 欧美精品三区 | 欧美一级黄色网 | av黄色在线免费观看 | 日日夜夜草 | 黄色一级片黄色一级片 | 精品久久久久久久久久久 | 中文一区 | 亚洲视频成人 | 精品一区二区三区免费毛片爱 | 91国内外精品自在线播放 | 欧洲精品 | 91精品国产一区二区 | 伊人久久精品久久亚洲一区 | 懂色av色香蕉一区二区蜜桃 | av一级久久 | 精品综合久久 | 成人男女激情免费视频 | 思热99re视热频这里只精品 | 99精品欧美一区二区蜜桃免费 | 亚洲精品国偷拍自产在线观看 | 久久久精品国产 | 国产成人久久精品一区二区三区 | 日韩成人免费在线 | 欧美日韩精品在线观看 | 亚洲综合一区二区三区 | 精品一区二区三区蜜桃 | 99精品视频一区二区三区 | 成人免费毛片aaaaaa片 | 成人福利视频 | 日韩成人一级片 | 黄视频在线播放 | 国产亚洲精品久久久优势 | 亚洲精品国品乱码久久久久 | 欧美大片一区二区 | 二区免费视频 | 美女一区二区三区四区 | 成人精品久久久 | 午夜av电影 | 国产日韩精品在线观看 | 一区二区三区高清 | 成人免费xxxxx在线观看 | 国产第一页在线播放 | 波多野结衣一区二区三区四区 | 一a毛片| 精久久久 | 亚洲一区在线视频 | 国产美女一区二区 | 日韩美女爱爱 | 男人的天堂视频网站 | 久久久www成人免费精品 | 日韩一片 | 91中文视频| 躁躁躁日躁夜夜躁 | 国产精品成人国产乱一区 | 国产91av视频在线观看 | 欧美日韩一区二区视频在线观看 | 激情小说综合网 | 国产高清一区二区 | 成人黄色电影在线观看 | 91在线中文 | 亚洲在线视频 | 一区二区不卡 | 天天干,夜夜操 | 国产一级一级片 | 在线天堂av | 欧美韩国日本一区 | 欧美激情一区二区三区四区 | 日韩精品免费在线观看 | 久久成人一区 | www.日韩大片 | 伊人一二三区 | 国产一区二区在线免费观看 | 亚洲视频在线观看免费 | 国产一级免费在线 | xvideos.蜜桃一区二区 | 最新中文字幕在线资源 | 成人免费在线视频观看 | 2021最新热播中文字幕-第1页-看片视频 青青青久草 | 精品国产乱码一区二区三区四区 | 国产成人99 | 国产一区二区在线播放 | 欧美一a一片一级一片 | 一区二区三区久久 | 亚洲黄页 | 农村末发育av片四区五区 | 免费一区二区三区 | 一级黄片毛片 | 免费成人在线网站 | 麻豆一区一区三区四区 | 国产日韩一区 | 伊人网站| 日日夜夜爽 | 夜夜操操 | av在线一区二区 | 午夜精品久久久久久 | 精品久久久久久久久久久 | 日韩大尺度在线观看 | 播放一区 | 99热精品视 | 亚洲网在线 | 久热久爱| 欧美黄色一级毛片 | 福利二区| 国产精品无码永久免费888 | 中文字幕第二十六页页 | 中文精品在线 | 你懂的免费在线观看 | 国产在线观看一区 | 欧洲亚洲一区 | 97伦理电影院 | 2021狠狠干| 国产乱视频网站 | 亚洲综合二 | 久久人人爽人人爽 | 性一交一乱一透一a级 | 日本一区二区精品视频 | 欧美亚洲日本 | 欧美日本韩国在线 | 成人v片 | 欧美国产日本一区 | 一本大道久久a久久精二百 国产精品片aa在线观看 | 欧美激情专区 | 99在线精品视频 | www久久久| 国产精品1页 | 奇米一区二区 | www嫩草| 色精品| 欧美日韩伊人 | 成人精品国产免费网站 | 欧美国产精品一区二区 | 一区二区三区国产精品 | 不卡视频一区 | 午夜免费视频网站 | 日韩超级毛片 | yiren22综合网成人 | 亚洲综合精品 | 亚洲依人 | 精品欧美一区二区精品久久久 | 欧美一区二区在线观看 | 亚洲综合天堂网 | 能免费看的av | 日本午夜在线 | 久久久久久国产免费 | 97综合色 | 成人一级视频在线观看 | 天天摸夜夜摸爽爽狠狠婷婷97 | 国产国拍亚洲精品av | 国产999精品久久久久 | 国产日韩欧美视频 | 99精品欧美一区二区三区 | 国产自在现线2019 | www国产亚洲精品久久网站 | 国产日韩精品一区二区在线观看播放 | 欧美综合成人网 | 国产精品欧美一区二区三区 | 一区二区久久久 | 成人国产一区 | 日韩精品99久久久久中文字幕 | 日韩av免费在线观看 | 国产精品一区二区三 | 日韩一区二区三区福利视频 | 国产成人午夜 | 免费欧美| 国产精品爱久久久久久久 | 国产精品久久久久久久久久小说 | 亚洲精品久久久久国产 | 激情毛片 | 天天操综合网 | 国产一区二区三区精品久久久 | 精品999www| 欧美日韩视频在线观看一区 | 欧美日韩高清 | 91夜夜 | 天天干一干 | 99国产精品99久久久久久 | 日韩一片 | 国产h片在线观看 | a免费在线 | 91香蕉视频在线观看 | 91社区在线播放 | 久久窝 | 成人久久久精品乱码一区二区三区 | 色综合天天综合网国产成人网 | 中文字幕欧美日韩一区 | 日本一区二区三区中文字幕 | 久久精品国产99国产 | 久久亚洲一区二区三 | av网站免费线看 | 91精品国产99久久久久久红楼 | 精品一区二区三区免费 | 97人人干 | 亚洲精品福利 | 91美女在线观看 | 久久久久久久久久久久久久久久久久久 | 狠狠狠色丁香婷婷综合久久五月 | 亚洲成人精品一区 | 午夜精品久久久久 | 亚洲视频中文字幕 | 欧美精品久久久久久久久 | 久久精品欧美一区二区三区麻豆 | 日韩精品专区 | 天天澡天天狠天天天做 | 亚洲精品一区二区三区蜜桃久 | 亚洲免费人成在线视频观看 | 国产区一区 | 亚洲一区在线日韩在线深爱 | 91视频免费观看 | 97高清国语自产拍 | 欧美亚洲另类丝袜综合网动图 | 开操网 | 日韩中文字幕在线播放 | 韩国三级午夜理伦三级三 | 在线观看国产高清视频 | sis001亚洲原创区 | 福利电影在线 | 2018啪一啪 | 欧美日韩精品一区二区三区四区 | 日韩在线播放一区二区三区 | 亚洲成人第一区 | 99久久夜色精品国产亚洲1000部 | 欧美一区二区三区精品 | 国产精品一卡二卡三卡 | 一级久久久 | 九九免费观看全部免费视频 | 欧美日韩亚洲国产 | 六月丁香在线观看 | 在线观看一区二区三区四区 | 在线免费av观看 | 九九免费视频 | 久久国产精品久久久久久电车 | 欧美日韩中文字幕 | 99热精品国产 | 日韩av免费在线观看 | 亚洲一区二区三区四区五区中文 | 中文字幕精品一区二区三区精品 | 欧美自拍网 | 天堂影院一区二区 | 成人午夜视频在线观看 | 欧美精品在线免费观看 | 亚洲国产精品第一区二区 | 欧美午夜一区二区三区免费大片 | 天天干天天操天天爽 | 国产成人欧美一区二区三区的 | 午夜精品一区 | 91免费在线视频 | 亚洲国产久 | 97超碰免费 | 久久午夜电影院 | 狠狠操天天干 | 久久综合av | 毛片国产| 精品一区二区久久久久久久网站 | 在线a视频| 日本免费网站 | 精品国模一区二区三区欧美 | 一本一本久久a久久精品综合妖精 | www天天干 | 亚洲精品免费观看 | 91性高湖久久久久久久久_久久99 | av手机在线播放 | 午夜精品在线 | 国产96在线视频 | 国产欧美日韩一区二区三区 | 在线观看v片 | 国产偷录视频叫床高潮对白 | 亚洲一区二区三区视频 | 在线第一页 | 一区二区三区国产免费 | 亚洲国产精品99久久久久久久久 | 午夜看片在线观看 | 精品成人av |