日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

过滤器获取service方法返回慢_Gateway:自定义过滤器

發(fā)布時(shí)間:2025/3/20 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 过滤器获取service方法返回慢_Gateway:自定义过滤器 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

自定義局部過濾器

需求:在application.yml中對(duì)某個(gè)路由配置過濾器,該過濾器可以在控制臺(tái)輸出配置文件中指定名稱的請(qǐng)求參數(shù)的值。

在gateway-server模塊中編寫過濾器工廠類MyParamGatewayFilterFactory

package?com.icoding.filter;

import?org.springframework.cloud.gateway.filter.GatewayFilter;
import?org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
import?org.springframework.http.server.reactive.ServerHttpRequest;
import?org.springframework.stereotype.Component;

import?java.util.Arrays;
import?java.util.List;

/**?自定義局部過濾器?*/
@Component
public?class?MyParamGatewayFilterFactory?extends
????????AbstractGatewayFilterFactory?{
????private?static?final?String?PARAM_KEY?=?"param";
????/**?定義構(gòu)造器(必須)?*/
????public?MyParamGatewayFilterFactory(){
????????super(Config.class);
????}
????/**?接收過濾器傳進(jìn)來(lái)的字段集合(可選)?*/
????@Override
????public?List?shortcutFieldOrder()?{return?Arrays.asList(PARAM_KEY);
????}
????/**?重寫攔截方法(必須)?*/
????@Override
????public?GatewayFilter?apply(Config?config)?{return?(exchange,?chain)?->?{
????????????//?獲取請(qǐng)求對(duì)象
????????????ServerHttpRequest?request?=?exchange.getRequest();
????????????//?獲取請(qǐng)求參數(shù)?http://localhost:10010/api/user/get/2?name=zhangsan&age=30if?(request.getQueryParams().containsKey(config.param)){
????????????????request.getQueryParams().get(config.param).forEach(value?->?{
????????????????????System.out.println(config.param?+?"?=?"?+?value);
????????????????});
????????????}
????????????//?放行return?chain.filter(exchange);
????????};
????}
????/**?定義配置類,接收配置文件中的屬性(必須)?*/
????public?static?class?Config?{
????????private?String?param;
????????public?String?getParam()?{return?param;
????????}
????????public?void?setParam(String?param)?{
????????????this.param?=?param;
????????}
????}
}

在gateway-server模塊中修改application.yml配置文件

package?com.icoding.filter;

import?org.springframework.cloud.gateway.filter.GatewayFilter;
import?org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
import?org.springframework.http.server.reactive.ServerHttpRequest;
import?org.springframework.stereotype.Component;

import?java.util.Arrays;
import?java.util.List;

/**?自定義局部過濾器?*/
@Component
public?class?MyParamGatewayFilterFactory?extends
????????AbstractGatewayFilterFactory?{
????private?static?final?String?PARAM_KEY?=?"param";
????/**?定義構(gòu)造器(必須)?*/
????public?MyParamGatewayFilterFactory(){
????????super(Config.class);
????}
????/**?接收過濾器傳進(jìn)來(lái)的字段集合(可選)?*/
????@Override
????public?List?shortcutFieldOrder()?{return?Arrays.asList(PARAM_KEY);
????}
????/**?重寫攔截方法(必須)?*/
????@Override
????public?GatewayFilter?apply(Config?config)?{return?(exchange,?chain)?->?{
????????????//?獲取請(qǐng)求對(duì)象
????????????ServerHttpRequest?request?=?exchange.getRequest();
????????????//?獲取請(qǐng)求參數(shù)?http://localhost:10010/api/user/get/2?name=zhangsan&age=30if?(request.getQueryParams().containsKey(config.param)){
????????????????request.getQueryParams().get(config.param).forEach(value?->?{
????????????????????System.out.println(config.param?+?"?=?"?+?value);
????????????????});
????????????}
????????????//?放行return?chain.filter(exchange);
????????};
????}
????/**?定義配置類,接收配置文件中的屬性(必須)?*/
????public?static?class?Config?{
????????private?String?param;
????????public?String?getParam()?{return?param;
????????}
????????public?void?setParam(String?param)?{
????????????this.param?=?param;
????????}
????}
}server:
??port:?10010
spring:
??application:
????name:?api-gateway
??cloud:
????gateway:#?默認(rèn)過濾器,對(duì)所有路由生效
??????default-filters:#?添加響應(yīng)頭過濾器,添加一個(gè)響應(yīng)頭為name,值為admin
????????-?AddResponseHeader=name,admin
??????routes:#?路由id,可以隨意寫
????????-?id:?user-service-route#?代理的服務(wù)地址;lb表示負(fù)載均衡(從eureka中獲取具體服務(wù))
??????????uri:?lb://user-service#?路由斷言,可以配置映射路徑
??????????predicates:
????????????-?Path=/api/user/**
??????????filters:#?表示過濾1個(gè)路徑,2表示兩個(gè)路徑,以此類推
????????????-?StripPrefix=1#?自定義過濾器
????????????-?MyParam=name
eureka:
??client:
????service-url:
??????defaultZone:?http://localhost:8761/eureka,http://localhost:8762/eurekaserver:
??port:?10010
spring:
??application:
????name:?api-gateway
??cloud:
????gateway:#?默認(rèn)過濾器,對(duì)所有路由生效
??????default-filters:#?添加響應(yīng)頭過濾器,添加一個(gè)響應(yīng)頭為name,值為admin
????????-?AddResponseHeader=name,admin
??????routes:#?路由id,可以隨意寫
????????-?id:?user-service-route#?代理的服務(wù)地址;lb表示負(fù)載均衡(從eureka中獲取具體服務(wù))
??????????uri:?lb://user-service#?路由斷言,可以配置映射路徑
??????????predicates:
????????????-?Path=/api/user/**
??????????filters:#?表示過濾1個(gè)路徑,2表示兩個(gè)路徑,以此類推
????????????-?StripPrefix=1#?自定義過濾器
????????????-?MyParam=name
eureka:
??client:
????service-url:
??????defaultZone:?http://localhost:8761/eureka,http://localhost:8762/eureka

測(cè)試訪問

http://localhost:10010/api/user/1?name=admin 檢查后臺(tái)是否輸出name和admin

http://localhost:10010/api/user/1?name2=admin 則是不會(huì)輸出的。

自定義全局過濾器

需求:模擬一個(gè)登錄的校驗(yàn)。基本邏輯:如果請(qǐng)求中有token參數(shù),則認(rèn)為請(qǐng)求有效,放行。

在gateway-server模塊中編寫全局過濾器類MyGlobalFilter

課堂代碼:

package?com.icoding.filter;

import?org.springframework.cloud.gateway.filter.GatewayFilter;
import?org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
import?org.springframework.http.server.reactive.ServerHttpRequest;
import?org.springframework.stereotype.Component;

import?java.util.Arrays;
import?java.util.List;

/**?自定義局部過濾器?*/
@Component
public?class?MyParamGatewayFilterFactory?extends
????????AbstractGatewayFilterFactory?{
????private?static?final?String?PARAM_KEY?=?"param";
????/**?定義構(gòu)造器(必須)?*/
????public?MyParamGatewayFilterFactory(){
????????super(Config.class);
????}
????/**?接收過濾器傳進(jìn)來(lái)的字段集合(可選)?*/
????@Override
????public?List?shortcutFieldOrder()?{return?Arrays.asList(PARAM_KEY);
????}
????/**?重寫攔截方法(必須)?*/
????@Override
????public?GatewayFilter?apply(Config?config)?{return?(exchange,?chain)?->?{
????????????//?獲取請(qǐng)求對(duì)象
????????????ServerHttpRequest?request?=?exchange.getRequest();
????????????//?獲取請(qǐng)求參數(shù)?http://localhost:10010/api/user/get/2?name=zhangsan&age=30if?(request.getQueryParams().containsKey(config.param)){
????????????????request.getQueryParams().get(config.param).forEach(value?->?{
????????????????????System.out.println(config.param?+?"?=?"?+?value);
????????????????});
????????????}
????????????//?放行return?chain.filter(exchange);
????????};
????}
????/**?定義配置類,接收配置文件中的屬性(必須)?*/
????public?static?class?Config?{
????????private?String?param;
????????public?String?getParam()?{return?param;
????????}
????????public?void?setParam(String?param)?{
????????????this.param?=?param;
????????}
????}
}server:
??port:?10010
spring:
??application:
????name:?api-gateway
??cloud:
????gateway:#?默認(rèn)過濾器,對(duì)所有路由生效
??????default-filters:#?添加響應(yīng)頭過濾器,添加一個(gè)響應(yīng)頭為name,值為admin
????????-?AddResponseHeader=name,admin
??????routes:#?路由id,可以隨意寫
????????-?id:?user-service-route#?代理的服務(wù)地址;lb表示負(fù)載均衡(從eureka中獲取具體服務(wù))
??????????uri:?lb://user-service#?路由斷言,可以配置映射路徑
??????????predicates:
????????????-?Path=/api/user/**
??????????filters:#?表示過濾1個(gè)路徑,2表示兩個(gè)路徑,以此類推
????????????-?StripPrefix=1#?自定義過濾器
????????????-?MyParam=name
eureka:
??client:
????service-url:
??????defaultZone:?http://localhost:8761/eureka,http://localhost:8762/eurekaserver:
??port:?10010
spring:
??application:
????name:?api-gateway
??cloud:
????gateway:#?默認(rèn)過濾器,對(duì)所有路由生效
??????default-filters:#?添加響應(yīng)頭過濾器,添加一個(gè)響應(yīng)頭為name,值為admin
????????-?AddResponseHeader=name,admin
??????routes:#?路由id,可以隨意寫
????????-?id:?user-service-route#?代理的服務(wù)地址;lb表示負(fù)載均衡(從eureka中獲取具體服務(wù))
??????????uri:?lb://user-service#?路由斷言,可以配置映射路徑
??????????predicates:
????????????-?Path=/api/user/**
??????????filters:#?表示過濾1個(gè)路徑,2表示兩個(gè)路徑,以此類推
????????????-?StripPrefix=1#?自定義過濾器
????????????-?MyParam=name
eureka:
??client:
????service-url:
????? defaultZone: http://localhost:8761/eureka,http://localhost:8762/eurekapackage com.icoding.filter;import org.apache.commons.lang.StringUtils;import org.springframework.cloud.gateway.filter.GatewayFilterChain;import org.springframework.cloud.gateway.filter.GlobalFilter;import org.springframework.core.Ordered;import org.springframework.core.annotation.Order;import org.springframework.http.HttpStatus;import org.springframework.stereotype.Component;import org.springframework.web.server.ServerWebExchange;import reactor.core.publisher.Mono;/**?*?全局過濾器?*/????@Component//?@Order(1)????:? Ordered這個(gè)接口也可以使用注解來(lái)排序public class MyGlobalFilter implements GlobalFilter, Ordered {????/*如果你有token就讓他們?cè)L問,如果沒有token,不讓訪問*/????@Override ?? public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain)?{??????? System.out.println("全局過濾器執(zhí)行了。。。。。。。");????????//獲取參數(shù)????????String?token?=?exchange.getRequest().getQueryParams().getFirst("token");????????/*????????*??String?aa?=?"";????????*??String?bb?=?"??????????";????????*??String?cc?=?null;????????*????????*???如果是isBlank?都是返回true????????*????????*?*/????????if(StringUtils.isBlank(token)){????????????//為空,token沒有值,阻止往下執(zhí)行??????????? exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);?//設(shè)置返回的狀態(tài)碼????????????//不會(huì)繼續(xù)往下執(zhí)行了!????????????return?exchange.getResponse().setComplete();????????}????????//放行????????return?chain.filter(exchange);????}????/*數(shù)值越小越先執(zhí)行*/????@Override????public?int?getOrder()?{????????return?5;????}}package com.icoding.filter;import org.apache.commons.lang.StringUtils;import org.springframework.cloud.gateway.filter.GatewayFilterChain;import org.springframework.cloud.gateway.filter.GlobalFilter;import org.springframework.core.Ordered;import org.springframework.core.annotation.Order;import org.springframework.http.HttpStatus;import org.springframework.stereotype.Component;import org.springframework.web.server.ServerWebExchange;import reactor.core.publisher.Mono;/**?*?全局過濾器?*/????@Component//?@Order(1)????:? Ordered這個(gè)接口也可以使用注解來(lái)排序public class MyGlobalFilter implements GlobalFilter, Ordered {????/*如果你有token就讓他們?cè)L問,如果沒有token,不讓訪問*/????@Override ?? public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain)?{??????? System.out.println("全局過濾器執(zhí)行了。。。。。。。");????????//獲取參數(shù)????????String?token?=?exchange.getRequest().getQueryParams().getFirst("token");????????/*????????*??String?aa?=?"";????????*??String?bb?=?"??????????";????????*??String?cc?=?null;????????*????????*???如果是isBlank?都是返回true????????*????????*?*/????????if(StringUtils.isBlank(token)){????????????//為空,token沒有值,阻止往下執(zhí)行??????????? exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);?//設(shè)置返回的狀態(tài)碼????????????//不會(huì)繼續(xù)往下執(zhí)行了!????????????return?exchange.getResponse().setComplete();????????}????????//放行????????return?chain.filter(exchange);????}????/*數(shù)值越小越先執(zhí)行*/????@Override????public?int?getOrder()?{????????return?5;????}}package?com.icoding.filter;

import?org.springframework.cloud.gateway.filter.GatewayFilter;
import?org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
import?org.springframework.http.server.reactive.ServerHttpRequest;
import?org.springframework.stereotype.Component;

import?java.util.Arrays;
import?java.util.List;

/**?自定義局部過濾器?*/
@Component
public?class?MyParamGatewayFilterFactory?extends
????????AbstractGatewayFilterFactory?{
????private?static?final?String?PARAM_KEY?=?"param";
????/**?定義構(gòu)造器(必須)?*/
????public?MyParamGatewayFilterFactory(){
????????super(Config.class);
????}
????/**?接收過濾器傳進(jìn)來(lái)的字段集合(可選)?*/
????@Override
????public?List?shortcutFieldOrder()?{return?Arrays.asList(PARAM_KEY);
????}
????/**?重寫攔截方法(必須)?*/
????@Override
????public?GatewayFilter?apply(Config?config)?{return?(exchange,?chain)?->?{
????????????//?獲取請(qǐng)求對(duì)象
????????????ServerHttpRequest?request?=?exchange.getRequest();
????????????//?獲取請(qǐng)求參數(shù)?http://localhost:10010/api/user/get/2?name=zhangsan&age=30if?(request.getQueryParams().containsKey(config.param)){
????????????????request.getQueryParams().get(config.param).forEach(value?->?{
????????????????????System.out.println(config.param?+?"?=?"?+?value);
????????????????});
????????????}
????????????//?放行return?chain.filter(exchange);
????????};
????}
????/**?定義配置類,接收配置文件中的屬性(必須)?*/
????public?static?class?Config?{
????????private?String?param;
????????public?String?getParam()?{return?param;
????????}
????????public?void?setParam(String?param)?{
????????????this.param?=?param;
????????}
????}
}server:
??port:?10010
spring:
??application:
????name:?api-gateway
??cloud:
????gateway:#?默認(rèn)過濾器,對(duì)所有路由生效
??????default-filters:#?添加響應(yīng)頭過濾器,添加一個(gè)響應(yīng)頭為name,值為admin
????????-?AddResponseHeader=name,admin
??????routes:#?路由id,可以隨意寫
????????-?id:?user-service-route#?代理的服務(wù)地址;lb表示負(fù)載均衡(從eureka中獲取具體服務(wù))
??????????uri:?lb://user-service#?路由斷言,可以配置映射路徑
??????????predicates:
????????????-?Path=/api/user/**
??????????filters:#?表示過濾1個(gè)路徑,2表示兩個(gè)路徑,以此類推
????????????-?StripPrefix=1#?自定義過濾器
????????????-?MyParam=name
eureka:
??client:
????service-url:
??????defaultZone:?http://localhost:8761/eureka,http://localhost:8762/eurekaserver:
??port:?10010
spring:
??application:
????name:?api-gateway
??cloud:
????gateway:#?默認(rèn)過濾器,對(duì)所有路由生效
??????default-filters:#?添加響應(yīng)頭過濾器,添加一個(gè)響應(yīng)頭為name,值為admin
????????-?AddResponseHeader=name,admin
??????routes:#?路由id,可以隨意寫
????????-?id:?user-service-route#?代理的服務(wù)地址;lb表示負(fù)載均衡(從eureka中獲取具體服務(wù))
??????????uri:?lb://user-service#?路由斷言,可以配置映射路徑
??????????predicates:
????????????-?Path=/api/user/**
??????????filters:#?表示過濾1個(gè)路徑,2表示兩個(gè)路徑,以此類推
????????????-?StripPrefix=1#?自定義過濾器
????????????-?MyParam=name
eureka:
??client:
????service-url:
????? defaultZone: http://localhost:8761/eureka,http://localhost:8762/eurekapackage com.icoding.filter;import org.apache.commons.lang.StringUtils;import org.springframework.cloud.gateway.filter.GatewayFilterChain;import org.springframework.cloud.gateway.filter.GlobalFilter;import org.springframework.core.Ordered;import org.springframework.core.annotation.Order;import org.springframework.http.HttpStatus;import org.springframework.stereotype.Component;import org.springframework.web.server.ServerWebExchange;import reactor.core.publisher.Mono;/**?*?全局過濾器?*/????@Component//?@Order(1)????:? Ordered這個(gè)接口也可以使用注解來(lái)排序public class MyGlobalFilter implements GlobalFilter, Ordered {????/*如果你有token就讓他們?cè)L問,如果沒有token,不讓訪問*/????@Override ?? public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain)?{??????? System.out.println("全局過濾器執(zhí)行了。。。。。。。");????????//獲取參數(shù)????????String?token?=?exchange.getRequest().getQueryParams().getFirst("token");????????/*????????*??String?aa?=?"";????????*??String?bb?=?"??????????";????????*??String?cc?=?null;????????*????????*???如果是isBlank?都是返回true????????*????????*?*/????????if(StringUtils.isBlank(token)){????????????//為空,token沒有值,阻止往下執(zhí)行??????????? exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);?//設(shè)置返回的狀態(tài)碼????????????//不會(huì)繼續(xù)往下執(zhí)行了!????????????return?exchange.getResponse().setComplete();????????}????????//放行????????return?chain.filter(exchange);????}????/*數(shù)值越小越先執(zhí)行*/????@Override????public?int?getOrder()?{????????return?5;????}}package com.icoding.filter;import org.apache.commons.lang.StringUtils;import org.springframework.cloud.gateway.filter.GatewayFilterChain;import org.springframework.cloud.gateway.filter.GlobalFilter;import org.springframework.core.Ordered;import org.springframework.core.annotation.Order;import org.springframework.http.HttpStatus;import org.springframework.stereotype.Component;import org.springframework.web.server.ServerWebExchange;import reactor.core.publisher.Mono;/**?*?全局過濾器?*/????@Component//?@Order(1)????:? Ordered這個(gè)接口也可以使用注解來(lái)排序public class MyGlobalFilter implements GlobalFilter, Ordered {????/*如果你有token就讓他們?cè)L問,如果沒有token,不讓訪問*/????@Override ?? public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain)?{??????? System.out.println("全局過濾器執(zhí)行了。。。。。。。");????????//獲取參數(shù)????????String?token?=?exchange.getRequest().getQueryParams().getFirst("token");????????/*????????*??String?aa?=?"";????????*??String?bb?=?"??????????";????????*??String?cc?=?null;????????*????????*???如果是isBlank?都是返回true????????*????????*?*/????????if(StringUtils.isBlank(token)){????????????//為空,token沒有值,阻止往下執(zhí)行??????????? exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);?//設(shè)置返回的狀態(tài)碼????????????//不會(huì)繼續(xù)往下執(zhí)行了!????????????return?exchange.getResponse().setComplete();????????}????????//放行????????return?chain.filter(exchange);????}????/*數(shù)值越小越先執(zhí)行*/????@Override????public?int?getOrder()?{????????return?5;????}}package?com.icoding.filter;
import?org.apache.commons.lang.StringUtils;
import?org.springframework.cloud.gateway.filter.GatewayFilterChain;
import?org.springframework.cloud.gateway.filter.GlobalFilter;
import?org.springframework.core.Ordered;
import?org.springframework.http.HttpStatus;
import?org.springframework.stereotype.Component;
import?org.springframework.web.server.ServerWebExchange;
import?reactor.core.publisher.Mono;
/**?自定義全局過濾器?*/
@Component
public?class?MyGlobalFilter?implements?GlobalFilter,?Ordered?{
????@Override
????public?Mono?filter(ServerWebExchange?exchange,?GatewayFilterChain?chain)?{
????????System.out.println("==全局過濾器MyGlobalFilter==");
????????String?token?=?exchange.getRequest().getQueryParams().getFirst("token");if?(StringUtils.isBlank(token)){
????????????//?設(shè)置響應(yīng)狀態(tài)碼:?401?未授權(quán)
????????????exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
????????????//?返回響應(yīng)完成return?exchange.getResponse().setComplete();
????????}
????????//?放行return?chain.filter(exchange);
????}
????@Override
????public?int?getOrder()?{
????????//?值越小越先執(zhí)行return?1;
????}
package?com.icoding.filter;
import?org.apache.commons.lang.StringUtils;
import?org.springframework.cloud.gateway.filter.GatewayFilterChain;
import?org.springframework.cloud.gateway.filter.GlobalFilter;
import?org.springframework.core.Ordered;
import?org.springframework.http.HttpStatus;
import?org.springframework.stereotype.Component;
import?org.springframework.web.server.ServerWebExchange;
import?reactor.core.publisher.Mono;
/**?自定義全局過濾器?*/
@Component
public?class?MyGlobalFilter?implements?GlobalFilter,?Ordered?{
????@Override
????public?Mono?filter(ServerWebExchange?exchange,?GatewayFilterChain?chain)?{
????????System.out.println("==全局過濾器MyGlobalFilter==");
????????String?token?=?exchange.getRequest().getQueryParams().getFirst("token");if?(StringUtils.isBlank(token)){
????????????//?設(shè)置響應(yīng)狀態(tài)碼:?401?未授權(quán)
????????????exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
????????????//?返回響應(yīng)完成return?exchange.getResponse().setComplete();
????????}
????????//?放行return?chain.filter(exchange);
????}
????@Override
????public?int?getOrder()?{
????????//?值越小越先執(zhí)行return?1;
????}

測(cè)試訪問

訪問 http://localhost:10010/api/user/1

訪問 http://localhost:10010/api/user/1?token=admin

回復(fù)關(guān)鍵詞

?JUC????分布式限流???消息隊(duì)列???alibaba????JVM性能調(diào)優(yōu)????

看更多精彩教程

別忘了點(diǎn)個(gè)在看哦!轉(zhuǎn)發(fā)那就太好了!

總結(jié)

以上是生活随笔為你收集整理的过滤器获取service方法返回慢_Gateway:自定义过滤器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日韩av线上 | 大肉大捧一进一出好爽动态图 | 在线观看国产区 | 日本吃奶摸下激烈网站动漫 | 911美女片黄在线观看游戏 | 强睡邻居人妻中文字幕 | 国产一区欧美二区 | 久久精品这里只有精品 | 亚洲午夜色 | 日韩久久一级片 | 欧美成年人 | 欧美久久久影院 | 加勒比成人av | 免费久久av| 男生和女生操操 | 99re伊人 | 天堂网a | 国产色自拍 | 久久天天躁狠狠躁夜夜av | 免费黄色一级 | 四虎影院国产精品 | 粉嫩av懂色av蜜臀av分享 | xxxx视频在线观看 | av免费在线观看网站 | 午夜爽爽视频 | 成年网站免费在线观看 | 精品肉丝脚一区二区三区 | 福利一区二区 | 叶爱在线 | 欧美一区二区三区四区五区 | 不卡的在线视频 | www.好了av | 免费三级av | 欧美美女啪啪 | 久操av| 国产精品熟女视频 | 午夜伦理影院 | 亚洲逼| 91精品免费在线观看 | 三度诱惑免费版电影在线观看 | 波多野结衣一区二区三区中文字幕 | 亚洲手机看片 | 96久久精品 | 91视频免费在线 | 爽爽影院在线免费观看 | av电影在线播放 | 成人精品一区二区三区中文字幕 | 97蜜桃网| 夜夜嗷| 欧美肉丝袜videos办公室 | 欧美日韩一区二区三区在线观看 | 国产传媒专区 | 欧美日韩免费一区 | free性丰满69性欧美 | 日韩中文字幕免费在线观看 | 日韩精品一区二区三区在线视频 | 国产成人免费电影 | 日韩精品中文字幕一区 | 亚洲成人精品av | 国产三级精品三级在线观看 | 五月婷婷狠狠干 | av成人在线电影 | 香蕉爱爱视频 | 少妇2做爰交换朴银狐 | 天天综合中文字幕 | 亚洲天堂一区二区在线观看 | 免费毛片播放 | 久久99精品视频 | 网站免费黄色 | 无码人妻精品一区二区三区99v | 人妻91麻豆一区二区三区 | 国产精品资源网 | 放荡的美妇在线播放 | 免费在线色视频 | 中文字幕无码av波多野吉衣 | 久久久久亚洲av成人网人人软件 | 欧美精品一区二区免费看 | 国产精品成人免费一区二区视频 | free性护士vidos猛交 | 国产精品一区二区人妻喷水 | 精品视频成人 | 国产18在线观看 | 私人av | 亚洲综合在线一区二区 | 夜夜操天天 | 国产一区二区影院 | 永久免费在线 | 日日操夜夜干 | 51嘿嘿嘿国产精品伦理 | 思思99精品视频在线观看 | 韩国三级一区 | 亚洲av无码一区二区二三区软件 | 欧美精品123区 | av动漫天堂| 中文字幕日韩人妻在线视频 | 午夜精品一区二区三区在线视频 | 日本精品视频在线 | 日本黄色激情视频 | 天天干天天天 |