伊人久久大香线蕉综合影视_日韩精品少妇无码受不了_71pao成人国产永久免费视频_国产伦片中文免费观看_国产高清无码麻豆精品_九色综合伊人久久富二代_日韩黄色精品_日韩A∨精品日韩精品无码

SpringBoot與Web開發(fā)

2021-3-18    前端達人

SpringBoot與Web開發(fā)(超詳細)

一、簡介

二、SpringBoot對靜態(tài)資源的映射規(guī)則

1、所有 /webjars/ ,都去 classpath:/META-INF/resources/webjars/ 找資源

2、"/
" 訪問當前項目的任何資源,都去靜態(tài)資源的文件夾找映射

3、歡迎頁: 靜態(tài)資源文件夾下的所有index.html頁面,被"/"映射

三、模板引擎

1、引入Thymeleaf

2、Thymeleaf的使用

1、導入thymeleaf的名稱空間

2、使用thymeleaf語法

3、Thymeleaf的語法規(guī)則

四、SpringMVC自動配置

1、Spring MVC auto-configuration

2、擴展SpringMVC

原理

3、全面接管SpringMVC

原理

五、如何修改SpringBoot的默認配置

一、簡介

使用SpringBoot的步驟:



1、創(chuàng)建SpringBoot應用,選中我們需要的模塊。

2、SpringBoot已經(jīng)默認將這些場景配置好了,只需要在配置文件中指定少量配置就可以運行起來。

3、自己編寫業(yè)務代碼。



自動配置原理:



xxxxAutoConfiguration:幫我們給容器中自動配置組件

xxxxProperties:配置類來封裝配置文件的內(nèi)容

1

2

二、SpringBoot對靜態(tài)資源的映射規(guī)則

@ConfigurationProperties(prefix = "spring.resources", ignoreUnknownFields = false)

public class ResourceProperties implements ResourceLoaderAware {

  //可以設置和靜態(tài)資源有關的參數(shù),緩存時間等

1

2

3

WebMvcAuotConfiguration:

@Override

public void addResourceHandlers(ResourceHandlerRegistry registry) {

if (!this.resourceProperties.isAddMappings()) {

logger.debug("Default resource handling disabled");

return;

}

Integer cachePeriod = this.resourceProperties.getCachePeriod();

if (!registry.hasMappingForPattern("/webjars/
")) {

customizeResourceHandlerRegistration(

registry.addResourceHandler("/webjars/**")

.addResourceLocations(

"classpath:/META-INF/resources/webjars/")

.setCachePeriod(cachePeriod));

}

String staticPathPattern = this.mvcProperties.getStaticPathPattern();

          //靜態(tài)資源文件夾映射

if (!registry.hasMappingForPattern(staticPathPattern)) {

customizeResourceHandlerRegistration(

registry.addResourceHandler(staticPathPattern)

.addResourceLocations(

this.resourceProperties.getStaticLocations())

.setCachePeriod(cachePeriod));

}

}



       //配置歡迎頁映射

@Bean

public WelcomePageHandlerMapping welcomePageHandlerMapping(

ResourceProperties resourceProperties) {

return new WelcomePageHandlerMapping(resourceProperties.getWelcomePage(),

this.mvcProperties.getStaticPathPattern());

}



      //配置喜歡的圖標

@Configuration

@ConditionalOnProperty(value = "spring.mvc.favicon.enabled", matchIfMissing = true)

public static class FaviconConfiguration {



private final ResourceProperties resourceProperties;



public FaviconConfiguration(ResourceProperties resourceProperties) {

this.resourceProperties = resourceProperties;

}



@Bean

public SimpleUrlHandlerMapping faviconHandlerMapping() {

SimpleUrlHandlerMapping mapping = new SimpleUrlHandlerMapping();

mapping.setOrder(Ordered.HIGHEST_PRECEDENCE + 1);

              //所有  /favicon.ico 

mapping.setUrlMap(Collections.singletonMap("
/favicon.ico",

faviconRequestHandler()));

return mapping;

}



@Bean

public ResourceHttpRequestHandler faviconRequestHandler() {

ResourceHttpRequestHandler requestHandler = new ResourceHttpRequestHandler();

requestHandler

.setLocations(this.resourceProperties.getFaviconLocations());

return requestHandler;

}



}





1、所有 /webjars/ ,都去 classpath:/META-INF/resources/webjars/ 找資源

webjars:以jar包的方式引入靜態(tài)資源。WebJars



訪問localhost:8080/webjars/jquery/3.3.1/jquery.js的結果:





2、"/
" 訪問當前項目的任何資源,都去靜態(tài)資源的文件夾找映射

"classpath:/META-INF/resources/", 

"classpath:/resources/",

"classpath:/static/", 

"classpath:/public/" 

"/":當前項目的根路徑



例子:訪問localhost:8080/abc 就是去靜態(tài)資源文件夾里面找abc



例如我們訪問js文件夾下的Chart.min.js:



訪問結果:





3、歡迎頁: 靜態(tài)資源文件夾下的所有index.html頁面,被"/"映射

編寫index.html文件。



訪問結果:





三、模板引擎

常見的模板引擎:JSP、Velocity、Freemarker、Thymeleaf(springboot推薦,語法更簡單,功能更強大)





1、引入Thymeleaf

Thymeleaf官網(wǎng)



在pom.xml中添加以下依賴:



 <dependency>

   <groupId>org.springframework.boot</groupId>

     <artifactId>spring-boot-starter-thymeleaf</artifactId>

 </dependency>



2、Thymeleaf的使用

@ConfigurationProperties(prefix = "spring.thymeleaf")

public class ThymeleafProperties {



private static final Charset DEFAULT_ENCODING = Charset.forName("UTF-8");



private static final MimeType DEFAULT_CONTENT_TYPE = MimeType.valueOf("text/html");



public static final String DEFAULT_PREFIX = "classpath:/templates/";



public static final String DEFAULT_SUFFIX = ".html";



1

只要我們把HTML頁面放在classpath:/templates/,thymeleaf就能自動渲染。



success.html:



HelloController:



package com.keafmd.springboot.controller;



import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;



/


  Keafmd

 


  @ClassName: HelloController

 
@Description:

  @author: 牛哄哄的柯南

 
@date: 2021-03-04 19:54

 */



@Controller

public class HelloController {



    @ResponseBody

    @RequestMapping("/hello")

    public String hello(){

        return "Hello World";

    }



    @RequestMapping("/success")

    public String success() {

        return "success";

    }

}



訪問success的結果:





1、導入thymeleaf的名稱空間

<html lang="en" xmlns:th=";

1

2、使用thymeleaf語法

HelloController:



package com.keafmd.springboot.controller;



import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;



import java.util.Map;



/*

 
Keafmd

 

 
@ClassName: HelloController

  @Description:

 
@author: 牛哄哄的柯南

  @date: 2021-03-04 19:54

 
/



@Controller

public class HelloController {



    @ResponseBody

    @RequestMapping("/hello")

    public String hello(){

        return "Hello World";

    }



    /*

     
查出一些數(shù)據(jù)在頁面顯示

      @param map

     
@return

     */

    @RequestMapping("/success")

    public String success(Map<String,Object> map) {

        map.put("hello","你好");

        return "success";

    }

}



success.html:



<!DOCTYPE html>

<html lang="en" xmlns:th="
;

<head>

    <meta charset="UTF-8">

    <title>Title</title>

</head>

<body>

    <h1>成功</h1>

    <!--th:text 將div里面的文本內(nèi)容設置為-->

    <div th:text="${hello}"></div>

</body>

</html>



運行結果:





3、Thymeleaf的語法規(guī)則

1、th:任意html屬性,來替換原生屬性的值



th:text — 改變當前元素里面的文本內(nèi)容

更多參考下圖:



2、表達式



Simple expressions:(表達式語法)

    Variable Expressions: ${...}:獲取變量值;OGNL;

    1)、獲取對象的屬性、調用方法

    2)、使用內(nèi)置的基本對象:

    #ctx : the context object.

    #vars: the context variables.

                #locale : the context locale.

                #request : (only in Web Contexts) the HttpServletRequest object.

                #response : (only in Web Contexts) the HttpServletResponse object.

                #session : (only in Web Contexts) the HttpSession object.

                #servletContext : (only in Web Contexts) the ServletContext object.

                

                ${session.foo}

            3)、內(nèi)置的一些工具對象:

execInfo : information about the template being processed.

messages : methods for obtaining externalized messages inside variables expressions, in the same way as they would be obtained using #{…} syntax.

uris : methods for escaping parts of URLs/URIs

conversions : methods for executing the configured conversion service (if any).

dates : methods for java.util.Date objects: formatting, component extraction, etc.

calendars : analogous to #dates , but for java.util.Calendar objects.

numbers : methods for formatting numeric objects.

strings : methods for String objects: contains, startsWith, prepending/appending, etc.

objects : methods for objects in general.

bools : methods for boolean evaluation.

arrays : methods for arrays.

lists : methods for lists.

sets : methods for sets.

maps : methods for maps.

aggregates : methods for creating aggregates on arrays or collections.

ids : methods for dealing with id attributes that might be repeated (for example, as a result of an iteration).



    Selection Variable Expressions: {...}:選擇表達式:和${}在功能上是一樣;

    補充:配合 th:object="${session.user}:

   <div th:object="${session.user}">

    <p>Name: <span th:text="
{firstName}">Sebastian</span>.</p>

    <p>Surname: <span th:text="{lastName}">Pepper</span>.</p>

    <p>Nationality: <span th:text="
{nationality}">Saturn</span>.</p>

    </div>

    

    Message Expressions: #{...}:獲取國際化內(nèi)容

    Link URL Expressions: @{...}:定義URL;

    @{/order/process(execId=${execId},execType='FAST')}

    Fragment Expressions: ~{...}:片段引用表達式

    <div th:insert="~{commons :: main}">...</div>

   

Literals(字面量)

      Text literals: 'one text' , 'Another one!' ,…

      Number literals: 0 , 34 , 3.0 , 12.3 ,…

      Boolean literals: true , false

      Null literal: null

      Literal tokens: one , sometext , main ,…

Text operations:(文本操作)

    String concatenation: +

    Literal substitutions: |The name is ${name}|

Arithmetic operations:(數(shù)學運算)

    Binary operators: + , - , * , / , %

    Minus sign (unary operator): -

Boolean operations:(布爾運算)

    Binary operators: and , or

    Boolean negation (unary operator): ! , not

Comparisons and equality:(比較運算)

    Comparators: > , < , >= , <= ( gt , lt , ge , le )

    Equality operators: == , != ( eq , ne )

Conditional operators:條件運算(三元運算符)

    If-then: (if) ? (then)

    If-then-else: (if) ? (then) : (else)

    Default: (value) ?: (defaultvalue)

Special tokens:

    No-Operation: _ 



注意:內(nèi)容過多,詳細內(nèi)容參考官方文檔。



示例:↓



HelloController:



package com.keafmd.springboot.controller;



import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;



import java.util.Arrays;

import java.util.Map;



/*

 
Keafmd

 

 
@ClassName: HelloController

  @Description:

 
@author: 牛哄哄的柯南

  @date: 2021-03-04 19:54

 
/



@Controller

public class HelloController {



    @ResponseBody

    @RequestMapping("/hello")

    public String hello(){

        return "Hello World";

    }



    /*

     
查出一些數(shù)據(jù)在頁面顯示

      @param map

     
@return

     */

    @RequestMapping("/success")

    public String success(Map<String,Object> map) {

        map.put("hello","你好");

        map.put("hello1","<h1>你好</h1>");

        map.put("users", Arrays.asList("柯南","小蘭","基德"));

        return "success";

    }

}



success.html:



<!DOCTYPE html>

<html lang="en" xmlns:th="
;

<head>

    <meta charset="UTF-8">

    <title>Title</title>

</head>

<body>

    <h1>成功</h1>

    <!--th:text 將div里面的文本內(nèi)容設置為-->

    <div id="div01" class="myDiv" th:id="${hello}" th:class="${hello}" th:text="${hello}">這里的內(nèi)容被覆蓋</div>



    <hr/>

    <div th:text="${hello1}"></div>

    <div th:utext="${hello1}"></div>

    <hr/>

    <!--th:each 每次遍歷都會生成當前這個標簽-->

    <h4 th:text="${user}" th:each="user:${users}"></h4>

    <hr/>

    <h4>

        <span th:each="user:${users}"> [[${user}]] </span>

    </h4>

</body>

</html>



效果:







四、SpringMVC自動配置

1、Spring MVC auto-configuration

參考官方文檔:點這里



Spring Boot 自動配置好了SpringMVC



以下是SpringBoot對SpringMVC的默認配置:(WebMvcAutoConfiguration)



Inclusion of ContentNegotiatingViewResolver and BeanNameViewResolver beans.



自動配置了ViewResolver(視圖解析器:根據(jù)方法的返回值得到視圖對象(View),視圖對象決定如何渲染(轉發(fā)?重定向?))

ContentNegotiatingViewResolver:組合所有的視圖解析器的。

如何定制:我們可以自己給容器中添加一個視圖解析器;自動的將其組合進來。

Support for serving static resources, including support for WebJars (see below).靜態(tài)資源文件夾路徑,webjars



Static index.html support. 靜態(tài)首頁訪問



Custom Favicon support (see below). favicon.ico



自動注冊了 of Converter, GenericConverter, Formatter beans.



Converter:轉換器; public String hello(User user):類型轉換使用Converter

Formatter :格式化器; 2017.12.17===Date

@Bean

@ConditionalOnProperty(prefix = "spring.mvc", name = "date-format")//在文件中配置日期格式化的規(guī)則

public Formatter<Date> dateFormatter() {

    return new DateFormatter(this.mvcProperties.getDateFormat());//日期格式化組件

}

1

2

3

4

5

自己添加的格式化器轉換器,我們只需要放在容器中即可



Support for HttpMessageConverters (see below).



HttpMessageConverter:SpringMVC用來轉換Http請求和響應的;User—Json



HttpMessageConverters 是從容器中確定;獲取所有的HttpMessageConverter



自己給容器中添加HttpMessageConverter,只需要將自己的組件注冊容器中(@Bean,@Component)



Automatic registration of MessageCodesResolver (see below):定義錯誤代碼生成規(guī)則



Automatic use of a ConfigurableWebBindingInitializer bean (see below).



我們可以配置一個ConfigurableWebBindingInitializer來替換默認的(添加到容器)



初始化WebDataBinder

請求數(shù)據(jù)=====JavaBean

1

2

org.springframework.boot.autoconfigure.web:web的所有自動場景



If you want to keep Spring Boot MVC features, and you just want to add additional MVC configuration (interceptors, formatters, view controllers etc.) you can add your own @Configuration class of type WebMvcConfigurerAdapter, but without @EnableWebMvc. If you wish to provide custom instances of RequestMappingHandlerMapping, RequestMappingHandlerAdapter or ExceptionHandlerExceptionResolver you can declare a WebMvcRegistrationsAdapter instance providing such components.



如果你想保持Spring Boot MVC 功能,你只是想添加額外的(MVC配置)(
https://docs.spring.io/spring/docs/4.3.14.RELEASE/spring-framework-reference/htmlsingle MVC)(攔截器,格式器,視圖控制器等)您可以添加自己的@ configuration類WebMvcConfigurerAdapter類型,但沒有@EnableWebMvc。如果你想提供RequestMappingHandlerMapping, RequestMappingHandlerAdapter或ExceptionHandlerExceptionResolver的自定義實例,你可以聲明一個WebMvcRegistrationsAdapter實例來提供這樣的組件。



If you want to take complete control of Spring MVC, you can add your own @Configuration annotated with @EnableWebMvc.



如果你想完全控制Spring MVC,你可以添加你自己的@Configuration注解@EnableWebMvc。



2、擴展SpringMVC

實現(xiàn)如下功能:



<mvc:view-controller path="/hello" view-name="success"></mvc:view-controller>



<mvc:interceptors>

    <mvc:interceptor>

        <mvc:mapping path="/hello"/>

        <bean></bean>

    </mvc:interceptor>

</mvc:interceptors>



做法:編寫一個配置類(@Configuration),是WebMvcConfigurerAdapter類型;不能標注@EnableWebMvc



特點:既保留了所有的自動配置,也能用我們擴展的配置。



在config包下創(chuàng)建個MyMvcConfig。



代碼實現(xiàn):



package com.keafmd.springboot.config;



import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;





/*

 
Keafmd

 

 
@ClassName: MyMvcConfig

  @Description:

 
@author: 牛哄哄的柯南

  @date: 2021-03-17 20:26

 
/

@Configuration

public class MyMvcConfig implements WebMvcConfigurer {

    @Override

    public void addViewControllers(ViewControllerRegistry registry) {

        //瀏覽器發(fā)送 /keafmd 請求 來到success頁面

        registry.addViewController("/keafmd").setViewName("success");

    }

}



原理

1、WebMvcAutoConfiguration是SpringMVC的自動配置類。

2、在做其他自動配置時會導入,@Import(EnableWebMvcConfiguration.class)。



   @Configuration

public static class EnableWebMvcConfiguration extends DelegatingWebMvcConfiguration {

     private final WebMvcConfigurerComposite configurers = new WebMvcConfigurerComposite();



     //從容器中獲取所有的WebMvcConfigurer

     @Autowired(required = false)

     public void setConfigurers(List<WebMvcConfigurer> configurers) {

         if (!CollectionUtils.isEmpty(configurers)) {

             this.configurers.addWebMvcConfigurers(configurers);

            //一個參考實現(xiàn);將所有的WebMvcConfigurer相關配置都來一起調用;  

            @Override

            // public void addViewControllers(ViewControllerRegistry registry) {

             //    for (WebMvcConfigurer delegate : this.delegates) {

              //       delegate.addViewControllers(registry);

              //   }

             }

         }

}



3、容器中所有的WebMvcConfigurer都會一起起作用。

4、我們的配置類也會被調用。



效果:SpringMVC的自動配置和我們的擴展配置都會起作用。



3、全面接管SpringMVC

SpringBoot對SpringMVC的自動配置不需要了,所有都是我們自己配置,所有的SpringMVC的自動配置都失效了。



做法:我們需要在配置類中添加@EnableWebMvc即可。



@EnableWebMvc

@Configuration

public class MyMvcConfig implements WebMvcConfigurer {

    @Override

    public void addViewControllers(ViewControllerRegistry registry) {

        //瀏覽器發(fā)送 /keafmd 請求 來到success頁面

        registry.addViewController("/keafmd").setViewName("success");

    }

}





全面接管后,靜態(tài)資源失效。

不推薦這樣全面接管。





原理

加了@EnableWebMvc自動配置就失效了。



1、@EnableWebMvc的核心:



@Import({DelegatingWebMvcConfiguration.class})

public @interface EnableWebMvc {



2、DelegatingWebMvcConfiguration



@Configuration(

    proxyBeanMethods = false

)

public class DelegatingWebMvcConfiguration extends WebMvcConfigurationSupport {



3、WebMvcAutoConfiguration



@Configuration(

    proxyBeanMethods = false

)

@ConditionalOnWebApplication(

    type = Type.SERVLET

)

@ConditionalOnClass({Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class})

//容器中沒有這個組件的時候,這個自動配置類才生效

@ConditionalOnMissingBean({WebMvcConfigurationSupport.class})

@AutoConfigureOrder(-2147483638)

@AutoConfigureAfter({DispatcherServletAutoConfiguration.class, TaskExecutionAutoConfiguration.class, ValidationAutoConfiguration.class})

public class WebMvcAutoConfiguration {



4、@EnableWebMvc將WebMvcConfigurationSupport組件導入進來,自動配置類失效了。



5、導入的WebMvcConfigurationSupport只是SpringMVC最基本的功能。



五、如何修改SpringBoot的默認配置

1、SpringBoot在自動配置很多組件的時候,先看容器中有沒有用戶自己配置的(@Bean、@Component)如果有就用用戶配置的,如果沒有,才自動配置;如果有些組件可以有多個(ViewResolver)將用戶配置的和自己默認的組合起來。

2、在SpringBoot中會有非常多的xxxConfigurer幫助我們進行擴展配置。

3、在SpringBoot中會有很多的xxxCustomizer幫助我們進行定制配置。



以上就是SpringBoot與Web開發(fā)(超詳細)篇一的全部內(nèi)容。

————————————————

版權聲明:本文為CSDN博主「牛哄哄的柯南」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權協(xié)議,轉載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/weixin_43883917/article/details/114375472


藍藍設計www.cqzjtgb.com )是一家專注而深入的界面設計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網(wǎng)站建設 、平面設計服


日歷

鏈接

個人資料

藍藍設計的小編 http://www.cqzjtgb.com

存檔

乱码一卡2卡4卡精品| 亚洲国产精品合色在线| 久久精品人妻少妇| av女优亚洲男人天堂| 欧美三级亚洲精品| 一本精品99久久精品77| 18禁在线无遮挡免费观看视频| 日韩精品有码人妻一区| 亚洲久久久久久中文字幕| 69av精品久久久久久| 国产精品av视频在线免费观看| 极品教师在线视频| 国产av不卡久久| a级毛色黄片| av卡一久久| 国产女主播在线喷水免费视频网站 | 午夜a级毛片| 久久精品国产亚洲av天美| 亚洲精品久久国产高清桃花| 12—13女人毛片做爰片一| 校园春色视频在线观看| 男人的好看免费观看在线视频| 精华霜和精华液先用哪个| 欧美不卡视频在线免费观看| 高清毛片免费看| videossex国产| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 国产三级中文精品| 国产在视频线在精品| 日韩高清综合在线| 久久久精品94久久精品| 在线观看av片永久免费下载| 亚洲五月天丁香| 久久精品久久久久久噜噜老黄 | 成人鲁丝片一二三区免费| 国产高清有码在线观看视频| 国产不卡一卡二| 三级男女做爰猛烈吃奶摸视频| 日本在线视频免费播放| 美女cb高潮喷水在线观看| 床上黄色一级片| 欧美潮喷喷水| 最近手机中文字幕大全| 亚洲成人精品中文字幕电影| 日韩国内少妇激情av| 91狼人影院| 免费人成在线观看视频色| 99热6这里只有精品| 在现免费观看毛片| 中文字幕熟女人妻在线| 久久精品国产清高在天天线| 人体艺术视频欧美日本| 国产高清三级在线| 成人av在线播放网站| 青春草亚洲视频在线观看| avwww免费| 国产极品精品免费视频能看的| 亚洲精华国产精华液的使用体验 | 两个人的视频大全免费| 成年版毛片免费区| 成人一区二区视频在线观看| 啦啦啦啦在线视频资源| 国产真实乱freesex| 嫩草影院入口| 99在线人妻在线中文字幕| 国产熟女欧美一区二区| 国产探花在线观看一区二区| 亚洲av不卡在线观看| 久99久视频精品免费| 18禁在线无遮挡免费观看视频| 在线观看美女被高潮喷水网站| 99在线人妻在线中文字幕| 99久久中文字幕三级久久日本| 九草在线视频观看| 免费看av在线观看网站| 在现免费观看毛片| 一本久久精品| 校园人妻丝袜中文字幕| 亚洲乱码一区二区免费版| 国产白丝娇喘喷水9色精品| 亚洲三级黄色毛片| 久久99热6这里只有精品| 欧美成人a在线观看| 哪里可以看免费的av片| 精华霜和精华液先用哪个| 全区人妻精品视频| 欧美日本视频| 色尼玛亚洲综合影院| 狂野欧美白嫩少妇大欣赏| 综合色丁香网| 国产成年人精品一区二区| av在线观看视频网站免费| 人人妻人人澡人人爽人人夜夜 | 精品国内亚洲2022精品成人| 亚洲成a人片在线一区二区| 最后的刺客免费高清国语| 色播亚洲综合网| 淫秽高清视频在线观看| 国产成人精品婷婷| 97人妻精品一区二区三区麻豆| 91午夜精品亚洲一区二区三区| 神马国产精品三级电影在线观看| 亚洲精华国产精华液的使用体验 | 亚洲成人久久性| 国产黄片美女视频| 在线播放无遮挡| 日韩视频在线欧美| 九九爱精品视频在线观看| 欧美丝袜亚洲另类| 国模一区二区三区四区视频| 狂野欧美激情性xxxx在线观看| 亚洲精品日韩av片在线观看| 永久网站在线| 天天一区二区日本电影三级| 夜夜夜夜夜久久久久| 美女高潮的动态| 毛片一级片免费看久久久久| 亚洲国产欧美在线一区| 中文欧美无线码| 成年女人看的毛片在线观看| 91狼人影院| 真实男女啪啪啪动态图| 韩国av在线不卡| 亚洲精品久久国产高清桃花| 激情 狠狠 欧美| 99热网站在线观看| 男女啪啪激烈高潮av片| 亚洲中文字幕日韩| 亚洲国产高清在线一区二区三| 少妇高潮的动态图| kizo精华| 看黄色毛片网站| 成人欧美大片| 天堂av国产一区二区熟女人妻| 国产精品久久电影中文字幕| 国产黄色视频一区二区在线观看 | 国产三级在线视频| 国内精品美女久久久久久| 久久鲁丝午夜福利片| 久久久欧美国产精品| 真实男女啪啪啪动态图| 蜜桃久久精品国产亚洲av| 亚洲美女搞黄在线观看| 特大巨黑吊av在线直播| 久久精品国产亚洲网站| 欧美激情在线99| 亚洲av男天堂| av国产免费在线观看| 国产乱人视频| av.在线天堂| 国产熟女欧美一区二区| 人人妻人人澡人人爽人人夜夜 | 亚洲电影在线观看av| 在线a可以看的网站| 国产伦在线观看视频一区| 中文资源天堂在线| 一个人看视频在线观看www免费| 亚洲性久久影院| 日韩大尺度精品在线看网址| 亚洲人与动物交配视频| 99国产精品一区二区蜜桃av| 一级毛片电影观看 | 久久精品国产亚洲av涩爱 | 色吧在线观看| 国国产精品蜜臀av免费| 99久久精品热视频| 亚洲真实伦在线观看| 亚洲精品久久久久久婷婷小说 | 在线播放国产精品三级| 欧美成人精品欧美一级黄| 狂野欧美白嫩少妇大欣赏| 精品欧美国产一区二区三| 一边摸一边抽搐一进一小说| 18禁裸乳无遮挡免费网站照片| 欧美激情在线99| 日本免费a在线| 成人午夜高清在线视频| 最后的刺客免费高清国语| 免费观看人在逋| 国产一区二区激情短视频| 国产精品一及| 99热网站在线观看| 菩萨蛮人人尽说江南好唐韦庄 | 欧美一级a爱片免费观看看| 观看免费一级毛片| 丝袜喷水一区| 久久精品国产鲁丝片午夜精品| 又爽又黄a免费视频| 国产av一区在线观看免费| 久久久久久久久久久丰满| 男人狂女人下面高潮的视频| 国产av一区在线观看免费| 亚洲欧美精品综合久久99| 99热6这里只有精品| 狂野欧美白嫩少妇大欣赏| 欧美色视频一区免费| 成人无遮挡网站| 毛片一级片免费看久久久久| 最近中文字幕高清免费大全6| 亚洲av一区综合| 国产精品精品国产色婷婷| www.av在线官网国产| 欧美一级a爱片免费观看看| 欧美高清成人免费视频www| 国产色婷婷99| 欧美最黄视频在线播放免费| 成人午夜精彩视频在线观看| 欧美高清成人免费视频www| 天天一区二区日本电影三级| 99视频精品全部免费 在线| 大香蕉久久网| 白带黄色成豆腐渣| 亚洲av二区三区四区| 国产精品一区二区在线观看99 | 国产精品一区二区三区四区免费观看| 国产午夜精品论理片| 亚洲在久久综合| 九草在线视频观看| 欧美不卡视频在线免费观看| 99久久九九国产精品国产免费| 国内精品一区二区在线观看| 国产精品.久久久| 亚洲经典国产精华液单| 国产黄片美女视频| 人人妻人人澡人人爽人人夜夜 | 又粗又爽又猛毛片免费看| 亚洲激情五月婷婷啪啪| 神马国产精品三级电影在线观看| 亚洲成人精品中文字幕电影| 亚洲乱码一区二区免费版| 精华霜和精华液先用哪个| 国产精品av视频在线免费观看| 国产精品一区二区三区四区久久| 久久婷婷人人爽人人干人人爱| 久久国产乱子免费精品| 亚洲欧美日韩无卡精品| 最新中文字幕久久久久| av免费在线看不卡| 精品午夜福利在线看| 国产av不卡久久| 最近视频中文字幕2019在线8| 深爱激情五月婷婷| 国产成人a∨麻豆精品| 免费人成视频x8x8入口观看| 18禁裸乳无遮挡免费网站照片| 国产真实乱freesex| 久久精品久久久久久久性| 国产v大片淫在线免费观看| 精品日产1卡2卡| 日韩欧美国产在线观看| 成人一区二区视频在线观看| 国产探花极品一区二区| 国产亚洲精品久久久久久毛片| 亚洲精品亚洲一区二区| 亚洲欧美精品专区久久| 在线免费观看的www视频| 久久久精品欧美日韩精品| 插阴视频在线观看视频| 18禁裸乳无遮挡免费网站照片| 一本一本综合久久| 欧美3d第一页| 国产大屁股一区二区在线视频| 少妇的逼水好多| 成人永久免费在线观看视频| 黄色配什么色好看| 国产精品一区二区在线观看99 | 国产女主播在线喷水免费视频网站 | 人体艺术视频欧美日本| 亚洲av中文av极速乱| 中文欧美无线码| 最新中文字幕久久久久| 国产成人91sexporn| 亚洲av免费在线观看| 国产精品爽爽va在线观看网站| 亚洲七黄色美女视频| 国产亚洲精品久久久com| 国产日本99.免费观看| 国产av一区在线观看免费| 国产在线男女| 亚洲经典国产精华液单| 波多野结衣高清无吗| 久久久久久伊人网av| 色综合站精品国产| 亚洲aⅴ乱码一区二区在线播放| 国产麻豆成人av免费视频| 欧美高清性xxxxhd video| 亚洲人成网站高清观看| 成人午夜精彩视频在线观看| 黄色配什么色好看| 身体一侧抽搐| 少妇人妻一区二区三区视频| 美女国产视频在线观看| 99在线人妻在线中文字幕| 午夜亚洲福利在线播放| 久久久久九九精品影院| 午夜激情欧美在线| 中文字幕免费在线视频6| 黄色配什么色好看| 国产老妇女一区| 男人舔女人下体高潮全视频| 91久久精品国产一区二区三区| 日日干狠狠操夜夜爽| 亚洲最大成人手机在线| 狂野欧美白嫩少妇大欣赏| 特大巨黑吊av在线直播| 日韩大尺度精品在线看网址| 天天一区二区日本电影三级| 国产一级毛片七仙女欲春2| 亚洲真实伦在线观看| 国产精品,欧美在线| 69人妻影院| 国产真实乱freesex| 国内久久婷婷六月综合欲色啪| 少妇熟女aⅴ在线视频| 美女黄网站色视频| 欧美日韩乱码在线| 精品人妻一区二区三区麻豆| 精品熟女少妇av免费看| 免费电影在线观看免费观看| 一进一出抽搐动态| 国产 一区 欧美 日韩| 神马国产精品三级电影在线观看| 国产黄片视频在线免费观看| 久久精品久久久久久久性| 两性午夜刺激爽爽歪歪视频在线观看| 欧美bdsm另类| videossex国产| 天堂影院成人在线观看| 免费看光身美女| 国产成人91sexporn| 最近中文字幕高清免费大全6| 日本在线视频免费播放| 国产精品久久久久久久电影| 久久久久久久久久黄片| 国产真实乱freesex| 亚洲国产精品合色在线| 一边亲一边摸免费视频| a级毛色黄片| 日本成人三级电影网站| 久久久久久久午夜电影| 中出人妻视频一区二区| 国产伦一二天堂av在线观看| 免费观看a级毛片全部| 乱人视频在线观看| 在线免费十八禁| 日韩大尺度精品在线看网址| 全区人妻精品视频| av又黄又爽大尺度在线免费看 | 婷婷亚洲欧美| 久久99蜜桃精品久久| 久久精品综合一区二区三区| 麻豆精品久久久久久蜜桃| 日韩欧美在线乱码| 夜夜看夜夜爽夜夜摸| 国产蜜桃级精品一区二区三区| 深爱激情五月婷婷| 老司机影院成人| 欧美高清性xxxxhd video| 国产伦理片在线播放av一区 | 婷婷色综合大香蕉| 亚洲最大成人av| 精品欧美国产一区二区三| 国内久久婷婷六月综合欲色啪| 精品少妇黑人巨大在线播放 | 在线a可以看的网站| 黄片wwwwww| 国产精品女同一区二区软件| 国产成人影院久久av| 99久国产av精品| 欧美日本视频| 欧美+亚洲+日韩+国产| 国产成人精品婷婷| 18禁在线无遮挡免费观看视频| 国产av一区在线观看免费| 99视频精品全部免费 在线| 国产精品av视频在线免费观看| 免费人成视频x8x8入口观看| 亚洲国产精品国产精品| 成人永久免费在线观看视频| 国产午夜精品久久久久久一区二区三区| 国产高清有码在线观看视频| 夜夜夜夜夜久久久久| 国产成人一区二区在线| 国产精品久久久久久亚洲av鲁大| 国产成人精品婷婷| 插阴视频在线观看视频| 精品久久久久久久久久久久久| 婷婷精品国产亚洲av| 国产蜜桃级精品一区二区三区| 嫩草影院入口| 99久久成人亚洲精品观看| 女同久久另类99精品国产91| 99热网站在线观看| 国产精华一区二区三区| 精品人妻一区二区三区麻豆| 久久久久久久久久久免费av| 日韩制服骚丝袜av| 国模一区二区三区四区视频| 国产精品永久免费网站| 啦啦啦观看免费观看视频高清| 日本-黄色视频高清免费观看| 我的女老师完整版在线观看| 国产高清视频在线观看网站| 亚洲av第一区精品v没综合| 最近2019中文字幕mv第一页| 别揉我奶头 嗯啊视频| 日本成人三级电影网站| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 免费人成在线观看视频色| 午夜福利在线在线| 男女视频在线观看网站免费| 久久久久久久久久久丰满| av天堂中文字幕网| 久久这里只有精品中国| av卡一久久| 国产精品久久电影中文字幕| 国产老妇女一区| 五月玫瑰六月丁香| 国产精品人妻久久久久久| 欧美日韩在线观看h| 欧美xxxx性猛交bbbb| 欧美区成人在线视频| 久久久久久国产a免费观看| 久久久久网色| 日韩大尺度精品在线看网址| 寂寞人妻少妇视频99o| 亚洲av成人av| 国产精品美女特级片免费视频播放器| av专区在线播放| 一进一出抽搐gif免费好疼| 国产一区二区亚洲精品在线观看| 可以在线观看的亚洲视频| 精品久久久久久久人妻蜜臀av| 亚洲精品自拍成人| 久久久精品欧美日韩精品| 在线免费观看不下载黄p国产| 成人欧美大片| 亚洲av中文av极速乱| 国产精品爽爽va在线观看网站| 99久国产av精品| 看十八女毛片水多多多| 热99在线观看视频| 久久国内精品自在自线图片| 悠悠久久av| 成人永久免费在线观看视频| 亚洲欧美日韩无卡精品| 成人午夜高清在线视频| 中文字幕免费在线视频6| 国产精品一区二区在线观看99 | 91av网一区二区| 丰满人妻一区二区三区视频av| 国产精品久久视频播放| 美女被艹到高潮喷水动态| 99视频精品全部免费 在线| 久久人人精品亚洲av| 18禁在线播放成人免费| 一级毛片我不卡| 国产色婷婷99| 国产女主播在线喷水免费视频网站 | 免费电影在线观看免费观看| 男人和女人高潮做爰伦理| kizo精华| 2021天堂中文幕一二区在线观| 欧美激情在线99| 别揉我奶头 嗯啊视频| 欧美日韩一区二区视频在线观看视频在线 | 性色avwww在线观看| 日本一本二区三区精品| 22中文网久久字幕| 超碰av人人做人人爽久久| 成年av动漫网址| 国产一级毛片七仙女欲春2| 成人特级av手机在线观看| 国产视频内射| 国产精品.久久久| 日韩三级伦理在线观看| 欧美xxxx性猛交bbbb| 国产激情偷乱视频一区二区| 看非洲黑人一级黄片| 免费观看的影片在线观看| 99久久精品一区二区三区| 此物有八面人人有两片| 日本爱情动作片www.在线观看| 老女人水多毛片| 国产极品天堂在线| 男插女下体视频免费在线播放| 亚洲丝袜综合中文字幕| 婷婷色综合大香蕉| 亚洲四区av| 国产亚洲精品av在线| 国产伦精品一区二区三区视频9| 国产淫片久久久久久久久| 欧美人与善性xxx| 99久久中文字幕三级久久日本| 热99re8久久精品国产| 久久久久久久久久久免费av| 麻豆国产97在线/欧美| 成人亚洲精品av一区二区| 日本-黄色视频高清免费观看| 久久综合国产亚洲精品| 国产精品麻豆人妻色哟哟久久 | av卡一久久| 赤兔流量卡办理| 国产精品一及| 欧美3d第一页| 精品一区二区三区人妻视频| 日本免费a在线| 观看免费一级毛片| 精品人妻视频免费看| 春色校园在线视频观看| 免费看光身美女| 亚洲国产欧美在线一区| 成人鲁丝片一二三区免费| 亚洲人成网站在线播放欧美日韩| 国产精品日韩av在线免费观看| 中文字幕制服av| 亚洲激情五月婷婷啪啪| 免费人成视频x8x8入口观看| 亚洲国产精品国产精品| 12—13女人毛片做爰片一| 欧美一区二区国产精品久久精品| 欧美成人精品欧美一级黄| 亚洲成人久久性| 毛片一级片免费看久久久久| 大又大粗又爽又黄少妇毛片口| 亚洲精品日韩av片在线观看| 国产精品久久久久久精品电影小说 | 亚洲人成网站在线观看播放| 99国产极品粉嫩在线观看| 欧美成人一区二区免费高清观看| 久久久欧美国产精品| 久久精品国产亚洲av香蕉五月| 午夜爱爱视频在线播放| 国产黄片美女视频| 综合色av麻豆| 一本精品99久久精品77| 久久99蜜桃精品久久| 久久国内精品自在自线图片| 内射极品少妇av片p| 又粗又硬又长又爽又黄的视频 | 在线免费观看不下载黄p国产| 一个人看的www免费观看视频| 亚洲无线在线观看| 女的被弄到高潮叫床怎么办| 精品一区二区三区人妻视频| 亚洲精品影视一区二区三区av| 亚洲欧美成人精品一区二区| 国产私拍福利视频在线观看| 欧美成人免费av一区二区三区| 国产一级毛片七仙女欲春2| 免费大片18禁| 国产 一区 欧美 日韩| 在线观看一区二区三区| 国产视频内射| 久久热精品热| 能在线免费看毛片的网站| 伦精品一区二区三区| 亚洲内射少妇av| 国产 一区 欧美 日韩| 男人舔女人下体高潮全视频| 久久人人爽人人片av| 国产精品一区二区性色av| 午夜福利在线观看吧| 久久久久久久久久成人| 国产精品三级大全| 级片在线观看| 2021天堂中文幕一二区在线观| 乱系列少妇在线播放| 在线观看66精品国产| 亚洲aⅴ乱码一区二区在线播放| 97超碰精品成人国产| 黑人高潮一二区| 直男gayav资源| 国产午夜精品久久久久久一区二区三区| 久久午夜亚洲精品久久| 国产白丝娇喘喷水9色精品| 美女xxoo啪啪120秒动态图| 日韩一区二区视频免费看| 国产成人91sexporn| 亚洲一区高清亚洲精品| 欧美一区二区精品小视频在线| av女优亚洲男人天堂| 成年女人看的毛片在线观看| 久久午夜亚洲精品久久| 色哟哟哟哟哟哟| 国产麻豆成人av免费视频| 最好的美女福利视频网| 成人性生交大片免费视频hd| 国产极品天堂在线| 国产v大片淫在线免费观看| avwww免费| 日本在线视频免费播放| www.色视频.com| 国内久久婷婷六月综合欲色啪| 久久精品国产清高在天天线| 久久久久久久久久久丰满| 成人三级黄色视频| 桃色一区二区三区在线观看| 亚洲精品乱码久久久久久按摩| 国产真实乱freesex| 国产极品精品免费视频能看的| 亚洲精品国产av成人精品| 欧美区成人在线视频| 美女内射精品一级片tv| 国产精品.久久久| 69av精品久久久久久| 亚洲色图av天堂| 国产精品久久视频播放| 三级经典国产精品| 久久韩国三级中文字幕| 国产精品国产高清国产av| 成人午夜高清在线视频| 岛国毛片在线播放| 中国美女看黄片| av天堂中文字幕网|