久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

JavaWeb基础学习笔记

發(fā)布時(shí)間:2024/1/23 java 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaWeb基础学习笔记 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Tomcat

Web 應(yīng)?服務(wù)器:Tomcat、Jboos、Weblogic、Jetty

  • 安裝 Tomcat
    1、官?下載壓縮?件。https://tomcat.apache.org/download-90.cgi

    2、解壓縮。
    bin:存放各個(gè)平臺(tái)下啟動(dòng)和停? Tomcat 服務(wù)的腳本?件。
    conf:存放各種 Tomcat 服務(wù)器的配置?件。
    lib:存放 Tomcat 服務(wù)器所需要的 jar。
    logs:存放 Tomcar 服務(wù)運(yùn)?的?志。
    temp:Tomcat 運(yùn)?時(shí)的臨時(shí)?件。
    webapps:存放允許客戶端訪問(wèn)的資源(Java 程序)。
    work:存放 Tomcat 將 JSP 轉(zhuǎn)換之后的 Servlet ?件。

IDEA 集成 Tomcat

1、創(chuàng)建 Java Web ?程。






Servlet

  • 什么是 Servlet?
    Servlet 是 Java Web 開(kāi)發(fā)的基?,與平臺(tái)?關(guān)的服務(wù)器組件,它是運(yùn)?在 Servlet 容器/Web 應(yīng)?服務(wù)
    器/Tomcat,負(fù)責(zé)與客戶端進(jìn)?通信。
    Servlet 的功能:
    1、創(chuàng)建并返回基于客戶請(qǐng)求的動(dòng)態(tài) HTML ??。
    2、與數(shù)據(jù)庫(kù)進(jìn)?通信。
  • 如何使? Servlet?
    Servlet 本身是?組接?,?定義?個(gè)類(lèi),并且實(shí)現(xiàn) Servlet 接?,這個(gè)類(lèi)就具備了接受客戶端請(qǐng)求以及
    做出響應(yīng)的功能。
package com.southwind.servlet; import javax.servlet.*; import java.io.IOException; public class MyServlet implements Servlet {@Overridepublic void init(ServletConfig servletConfig) throws ServletException {}@Overridepublic ServletConfig getServletConfig() {return null;}@Overridepublic void service(ServletRequest servletRequest, ServletResponseservletResponse) throws ServletException, IOException {String id = servletRequest.getParameter("id");System.out.println("我是Servlet,我已經(jīng)接收到了客戶端發(fā)來(lái)的請(qǐng)求,參數(shù)是"+id);servletResponse.setContentType("text/html;charset=UTF-8");servletResponse.getWriter().write("客戶端你好,我已接收到你的請(qǐng)求");}@Overridepublic String getServletInfo() {return null;}@Overridepublic void destroy() {} }

瀏覽器不能直接訪問(wèn) Servlet ?件,只能通過(guò)映射的?式來(lái)間接訪問(wèn) Servlet,映射需要開(kāi)發(fā)者?動(dòng)配
置,有兩種配置?式。

  • 基于 XML ?件的配置?式。
<servlet><servlet-name>hello</servlet-name><servlet-class>com.southwind.servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/demo2</url-pattern> </servlet-mapping>
  • 基于注解的?式。
@WebServlet("/demo2") public class HelloServlet implements Servlet {}

上述兩種配置?式結(jié)果完全?致,將 demo2 與 HelloServlet 進(jìn)?映射,即在瀏覽器地址欄中直接訪問(wèn)
demo 就可以映射到 HelloServlet。

Servlet 的?命周期

1、當(dāng)瀏覽器訪問(wèn) Servlet 的時(shí)候,Tomcat 會(huì)查詢當(dāng)前 Servlet 的實(shí)例化對(duì)象是否存在,如果不存在,
則通過(guò)反射機(jī)制動(dòng)態(tài)創(chuàng)建對(duì)象,如果存在,直接執(zhí)?第 3 步。
2、調(diào)? init ?法完成初始化操作。
3、調(diào)? service ?法完成業(yè)務(wù)邏輯操作。
4、關(guān)閉 Tomcat 時(shí),會(huì)調(diào)? destory ?法,釋放當(dāng)前對(duì)象所占?的資源。
反射機(jī)制:(如下圖)

Servlet 的?命周期?法:?參構(gòu)造函數(shù)、init、service、destory
1、?參構(gòu)造函數(shù)只調(diào)??次,創(chuàng)建對(duì)象。
2、init 只調(diào)??次,初始化對(duì)象。
3、service 調(diào)? N 次,執(zhí)?業(yè)務(wù)?法。
4、destory 只調(diào)??次,卸載對(duì)象。

ServletConfig

該接?是?來(lái)描述 Servlet 的基本信息的。
getServletName() 返回 Servlet 的名稱(chēng),全類(lèi)名(帶著包名的類(lèi)名)
getInitParameter(String key) 獲取 init 參數(shù)的值(web.xml)

getInitParameterNames() 返回所有的 initParamter 的 name 值,?般?作遍歷初始化參數(shù)
getServletContext() 返回 ServletContext 對(duì)象,它是 Servlet 的上下?,整個(gè) Servlet 的管理者。
ServletConfig 和 ServletContext 的區(qū)別:
ServletConfig 作?于某個(gè) Servlet 實(shí)例,每個(gè) Servlet 都有對(duì)應(yīng)的 ServletConfig,ServletContext 作?
于整個(gè) Web 應(yīng)?,?個(gè) Web 應(yīng)?對(duì)應(yīng)?個(gè) ServletContext,多個(gè) Servlet 實(shí)例對(duì)應(yīng)?個(gè)
ServletContext。
?個(gè)是局部對(duì)象,?個(gè)是全局對(duì)象。

Servlet 的層次結(jié)構(gòu)

Servlet ====> GenericServlet ====> HttpServlet
HTTP 請(qǐng)求有很多種類(lèi)型,常?的有四種:

GET 讀取
POST 保存
PUT 修改
DELETE 刪除

GenericServlet 實(shí)現(xiàn) Servlet 接?,同時(shí)為它的?類(lèi)屏蔽了不常?的?法,?類(lèi)只需要重寫(xiě) service ?
法即可。
HttpServlet 繼承 GenericServlet,根據(jù)請(qǐng)求類(lèi)型進(jìn)?分發(fā)處理,GET 進(jìn)? doGET ?法,POST 進(jìn)?
doPOST ?法。
開(kāi)發(fā)者?定義的 Servlet 類(lèi)只需要繼承 HttpServlet 即可,重新 doGET 和 doPOST。

package com.southwind.servlet; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/test") public class TestServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {resp.getWriter().write("GET");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {resp.getWriter().write("POST");} }

JSP

JSP 本質(zhì)上就是?個(gè) Servlet,JSP 主要負(fù)責(zé)與?戶交互,將最終的界?呈現(xiàn)給?戶,
HTML+JS+CSS+Java 的混合?件。
當(dāng)服務(wù)器接收到?個(gè)后綴是 jsp 的請(qǐng)求時(shí),將該請(qǐng)求交給 JSP 引擎去處理,每?個(gè) JSP ??第?次被訪
問(wèn)的時(shí)候,JSP 引擎會(huì)將它翻譯成?個(gè) Servlet ?件,再由 Web 容器調(diào)? Servlet 完成響應(yīng)。
單純從開(kāi)發(fā)的?度看,JSP 就是在 HTML 中嵌? Java 程序。
具體的嵌??式有 3 種:
1、JSP 腳本,執(zhí)? Java 邏輯代碼

<% Java代碼 %>

2、JSP 聲明:定義 Java ?法

<%!聲明 Java ?法 %>

3、JSP 表達(dá)式:把 Java 對(duì)象直接輸出到 HTML ??中

<%=Java變量 %> <%!public String test(){return "HelloWorld"; } %> <% String str = test(); %> <%=str%>

JSP內(nèi)置對(duì)象 9 個(gè)

1、request:表示?次請(qǐng)求,HttpServletRequest。
2、response:表示?次響應(yīng),HttpServletResponse。
3、pageContext:??上下?,獲取??信息,PageContext。
4、session:表示?次會(huì)話,保存?戶信息,HttpSession。
5、application:表示當(dāng)前 Web 應(yīng)?,全局對(duì)象,保存所有?戶共享信息,ServletContext。
6、config:當(dāng)前 JSP 對(duì)應(yīng)的 Servlet 的 ServletConfig 對(duì)象,獲取當(dāng)前 Servlet 的信息。
7、out:向?yàn)g覽器輸出數(shù)據(jù),JspWriter。
8、page:當(dāng)前 JSP 對(duì)應(yīng)的 Servlet 對(duì)象,Servlet。
9、exception:表示 JSP ??發(fā)?的異常,Exception。
常?的是 request、response、session、application、pageContext

request 常??法:
1、String getParameter(String key) 獲取客戶端傳來(lái)的參數(shù)。
2、void setAttribute(String key,Object value) 通過(guò)鍵值對(duì)的形式保存數(shù)據(jù)。(服務(wù)端內(nèi)部傳遞參數(shù))
3、Object getAttribute(String key) 通過(guò) key 取出 value。
4、RequestDispatcher getRequestDispatcher(String path) 返回?個(gè) RequestDispatcher 對(duì)象,該對(duì)象的 forward ?法?于請(qǐng)求轉(zhuǎn)發(fā)。
5、String[] getParameterValues() 獲取客戶端傳來(lái)的多個(gè)同名參數(shù)。
6、void setCharacterEncoding(String charset) 指定每個(gè)請(qǐng)求的編碼。

HTTP 請(qǐng)求狀態(tài)碼

200:正常
404:資源找不到
400:請(qǐng)求類(lèi)型不匹配
500:Java 程序拋出異常

response 常??法:
1、sendRedirect(String path) 重定向,??之間的跳轉(zhuǎn)。
轉(zhuǎn)發(fā) getRequestDispatcher 和重定向 sendRedirect 的區(qū)別:
轉(zhuǎn)發(fā)是將同?個(gè)請(qǐng)求傳給下?個(gè)??,重定向是創(chuàng)建?個(gè)新的請(qǐng)求傳給下?個(gè)??,之前的請(qǐng)求結(jié)束?
命周期。
轉(zhuǎn)發(fā):同?個(gè)請(qǐng)求在服務(wù)器之間傳遞,地址欄不變,也叫服務(wù)器跳轉(zhuǎn)。
重定向:由客戶端發(fā)送?次新的請(qǐng)求來(lái)訪問(wèn)跳轉(zhuǎn)后的?標(biāo)資源,地址欄改變,也叫客戶端跳轉(zhuǎn)。
如果兩個(gè)??之間需要通過(guò) request 來(lái)傳值,則必須使?轉(zhuǎn)發(fā),不能使?重定向。
?戶登錄,如果?戶名和密碼正確,則跳轉(zhuǎn)到??(轉(zhuǎn)發(fā)),并且展示?戶名,否則重新回到登陸??
(重定向)。

Session

?戶會(huì)話
服務(wù)器?法識(shí)別每?次 HTTP 請(qǐng)求的出處(不知道來(lái)?于哪個(gè)終端),它只會(huì)接受到?個(gè)請(qǐng)求信號(hào),所
以就存在?個(gè)問(wèn)題:將?戶的響應(yīng)發(fā)送給其他?,必須有?種技術(shù)來(lái)讓服務(wù)器知道請(qǐng)求來(lái)?哪,這就是
會(huì)話技術(shù)。
會(huì)話:就是客戶端和服務(wù)器之間發(fā)?的?系列連續(xù)的請(qǐng)求和響應(yīng)的過(guò)程,打開(kāi)瀏覽器進(jìn)?操作到關(guān)閉瀏
覽器的過(guò)程。
會(huì)話狀態(tài):指服務(wù)器和瀏覽器在會(huì)話過(guò)程中產(chǎn)?的狀態(tài)信息,借助于會(huì)話狀態(tài),服務(wù)器能夠把屬于同?次會(huì)話的?系列請(qǐng)求和響應(yīng)關(guān)聯(lián)起來(lái)。
實(shí)現(xiàn)會(huì)話有兩種?式:

  • session
  • cookie

屬于同?次會(huì)話的請(qǐng)求都有?個(gè)相同的標(biāo)識(shí)符,sessionID

session 常?的?法:
String getId() 獲取 sessionID
void setMaxInactiveInterval(int interval) 設(shè)置 session 的失效時(shí)間,單位為秒
int getMaxInactiveInterval() 獲取當(dāng)前 session 的失效時(shí)間
void invalidate() 設(shè)置 session ?即失效
void setAttribute(String key,Object value) 通過(guò)鍵值對(duì)的形式來(lái)存儲(chǔ)數(shù)據(jù)
Object getAttribute(String key) 通過(guò)鍵獲取對(duì)應(yīng)的數(shù)據(jù)
void removeAttribute(String key) 通過(guò)鍵刪除對(duì)應(yīng)的數(shù)據(jù)

Cookie

Cookie 是服務(wù)端在 HTTP 響應(yīng)中附帶傳給瀏覽器的?個(gè)??本?件,?旦瀏覽器保存了某個(gè) Cookie,
在之后的請(qǐng)求和響應(yīng)過(guò)程中,會(huì)將此 Cookie 來(lái)回傳遞,這樣就可以通過(guò) Cookie 這個(gè)載體完成客戶端
和服務(wù)端的數(shù)據(jù)交互。

  • 創(chuàng)建 Cookie
Cookie cookie = new Cookie("name","tom"); response.addCookie(cookie);
  • 讀取 Cookie
Cookie[] cookies = request.getCookies(); for (Cookie cookie:cookies){out.write(cookie.getName()+":"+cookie.getValue()+"<br/>"); }

Cookie 常?的?法
void setMaxAge(int age) 設(shè)置 Cookie 的有效時(shí)間,單位為秒
int getMaxAge() 獲取 Cookie 的有效時(shí)間
String getName() 獲取 Cookie 的 name
String getValue() 獲取 Cookie 的 value

Session 和 Cookie 的區(qū)別

session:保存在服務(wù)器
保存的數(shù)據(jù)是 Object
會(huì)隨著會(huì)話的結(jié)束?銷(xiāo)毀
保存重要信息
cookie:保存在瀏覽器
保存的數(shù)據(jù)是 String
可以?期保存在瀏覽器中,?會(huì)話?關(guān)
保存不重要信息

存儲(chǔ)?戶信息:
session

setAttribute("name","admin") //存 getAttribute("name") //取

?命周期:服務(wù)端:只要 WEB 應(yīng)?重啟就銷(xiāo)毀,客戶端:只要瀏覽器關(guān)閉就銷(xiāo)毀。
退出登錄:session.invalidate()

cookie

response.addCookie(new Cookie(name,"admin")) //存Cookie[] cookies = request.getCookies(); //取 for (Cookie cookie:cookies){if(cookie.getName().equals("name")){out.write("歡迎回來(lái)"+cookie.getValue());} }

?命周期:不隨服務(wù)端的重啟?銷(xiāo)毀,客戶端:默認(rèn)是只要關(guān)閉瀏覽器就銷(xiāo)毀,我們通過(guò) setMaxAge()
?法設(shè)置有效期,?旦設(shè)置了有效期,則不隨瀏覽器的關(guān)閉?銷(xiāo)毀,?是由設(shè)置的時(shí)間來(lái)決定。
退出登錄:setMaxAge(0)

JSP 內(nèi)置對(duì)象作?域

4個(gè)
page、request、session、application
setAttribute、getAttribute
page 作?域:對(duì)應(yīng)的內(nèi)置對(duì)象是 pageContext。
request 作?域:對(duì)應(yīng)的內(nèi)置對(duì)象是 request。
session 作?域:對(duì)應(yīng)的內(nèi)置對(duì)象是 session。
application 作?域:對(duì)應(yīng)的內(nèi)置對(duì)象是 application。

page < request < session < application

page 只在當(dāng)前??有效。
request 在?次請(qǐng)求內(nèi)有效。
session 在?次會(huì)話內(nèi)有效。
application 對(duì)應(yīng)整個(gè) WEB 應(yīng)?的。

  • ?站訪問(wèn)量統(tǒng)計(jì)
<%Integer count = (Integer) application.getAttribute("count");if(count == null){count = 1;application.setAttribute("count",count);}else{count++;application.setAttribute("count",count);} %> 您是當(dāng)前的第<%=count%>位訪客

EL 表達(dá)式

Expression Language 表達(dá)式語(yǔ)?,替代 JSP ??中數(shù)據(jù)訪問(wèn)時(shí)的復(fù)雜編碼,可以?常便捷地取出域?qū)?br /> 象(pageContext、request、session、application)中保存的數(shù)據(jù),前提是?定要先 setAttribute,
EL 就相當(dāng)于在簡(jiǎn)化 getAttribute
${變量名} 變量名就是 setAttribute 對(duì)應(yīng)的 key 值。

1、EL 對(duì)于 4 種域?qū)ο蟮哪J(rèn)查找順序:

pageContext ====> request ====> session ====> application

按照上述的順序進(jìn)?查找,找到?即返回,在 application 中也?法找到,則返回 null

2、指定作?域進(jìn)?查找
pageContext:${pageScope.name}
request:${requestScope.name}
session:${sessionScope.name}
application:${applicationScope.name}

數(shù)據(jù)級(jí)聯(lián):

<% // pageContext.setAttribute("name","page"); // request.setAttribute("name","request"); // session.setAttribute("name","session"); // application.setAttribute("name","application");User user = new User(1,"張三",86.5,new Address(1,"?寨"));System.out.println(user.toString());pageContext.setAttribute("user",user); %><table><tr><th>編號(hào)</th><th>姓名</th><th>成績(jī)</th><th>地址</th></tr><tr><td>${user.id}</td><td>${user.name}</td><td>${user.score}</td><td>${user.address}</td></tr></table>

${user[“id”]}

EL 執(zhí)?表達(dá)式:

${num1&&num2} && || ! < > <= <= == && and || or ! not == eq != ne < lt > gt <= le >= ge empty //變量為 null,?度為0的String,size為0的集合


JSTL

JSP Standard Tag Library JSP 標(biāo)準(zhǔn)標(biāo)簽庫(kù),JSP 為開(kāi)發(fā)者提供的?系列的標(biāo)簽,使?這些標(biāo)簽可以完成
?些邏輯處理,?如循環(huán)遍歷集合,讓代碼更加簡(jiǎn)潔,不再出現(xiàn) JSP 腳本穿插的情況。
實(shí)際開(kāi)發(fā)中 EL 和 JSTL 結(jié)合起來(lái)使?,JSTL 側(cè)重于邏輯處理,EL 負(fù)責(zé)展示數(shù)據(jù)。

JSTL 的使?
1、需要導(dǎo)? jar 包(兩個(gè) jstl.jar standard.jar)存放的位置 web/WEB-INF
2、在 JSP ??開(kāi)始的地?導(dǎo)? JSTL 標(biāo)簽庫(kù)

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

3、在需要的地?使?

<c:forEach items="${list}" var="user"><tr><td>${user.id}</td><td>${user.name}</td><td>${user.score}</td><td>${user.address.value}</td></tr> </c:forEach>

JSTL 優(yōu)點(diǎn):
1、提供了統(tǒng)?的標(biāo)簽
2、可以?于編寫(xiě)各種動(dòng)態(tài)功能

  • 核?標(biāo)簽庫(kù)常?標(biāo)簽:

set、out、remove、catch

set:向域?qū)ο笾刑砑訑?shù)據(jù)

<%requset.setAttribute(key,value) %> <c:set var="name" value="tom" scope="request"></c:set> ${requestScope.name} <% User user = new User(1,"張三",66.6,new Address(1,"科技路")); request.setAttribute("user",user); %> ${user.name} <hr/> <c:set target="${user}" property="name" value="李四"></c:set> ${user.name}

out:輸出域?qū)ο笾械臄?shù)據(jù)

<c:set var="name" value="tom"></c:set> <c:out value="${name}" default="未定義"></c:out>

remove:刪除域?qū)ο笾械臄?shù)據(jù)

<c:remove var="name" scope="page"></c:remove> <c:out value="${name}" default="未定義"></c:out>

catch:捕獲異常

<c:catch var="error"><%int a = 10/0;%> </c:catch> ${error}
  • 條件標(biāo)簽:if choose
<c:set var="num1" value="1"></c:set> <c:set var="num2" value="2"></c:set> <c:if test="${num1>num2}">ok</c:if> <c:if test="${num1<num2}">fail</c:if> <hr/> <c:choose><c:when test="${num1>num2}">ok</c:when><c:otherwise>fail</c:otherwise> </c:choose>
  • 迭代標(biāo)簽:forEach
<c:forEach items="${list}" var="str" begin="2" end="3" step="2" varStatus="sta">${sta.count}、${str}<br/> </c:forEach>

格式化標(biāo)簽庫(kù)常?的標(biāo)簽:

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %><% request.setAttribute("date",new Date()); %> <fmt:formatDate value="${date}" pattern="yyyy-MM-dd HH:mm:ss"> </fmt:formatDate><br/> <fmt:formatNumber value="32145.23434" maxIntegerDigits="2" maxFractionDigits="3"></fmt:formatNumber>

函數(shù)標(biāo)簽庫(kù)常?的標(biāo)簽:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %><% request.setAttribute("info","Java,C"); %> ${fn:contains(info,"Python")}<br/> ${fn:startsWith(info, "Java")}<br/> ${fn:endsWith(info, "C")}<br/> ${fn:indexOf(info, "va")}<br/> ${fn:replace(info, "C","Python")}<br/> ${fn:substring(info, 2, 3)}<br/> ${fn:split(info, ",")[0]}-${fn:split(info, ",")[1]}

過(guò)濾器 Filter

功能:
1、?來(lái)攔截傳?的請(qǐng)求和傳出的響應(yīng)。
2、修改或以某種?式處理正在客戶端和服務(wù)端之間交換的數(shù)據(jù)流。
如何使??
與使? Servlet 類(lèi)似,Filter 是 Java WEB 提供的?個(gè)接?,開(kāi)發(fā)者只需要?定義?個(gè)類(lèi)并且實(shí)現(xiàn)該接?
即可。

package com.southwind.filter; import javax.servlet.*; import java.io.IOException; public class CharacterFilter implements Filter {@Overridepublic void doFilter(ServletRequest servletRequest, seservletResponse, FilterChain filterChain) throws IOException, ServletException{servletRequest.setCharacterEncoding("UTF-8");filterChain.doFilter(servletRequest,servletResponse);} }

web.xml 中配置 Filter

<filter><filter-name>charcater</filter-name><filter-class>com.southwind.filter.CharacterFilter</filter-class> </filter> <filter-mapping><filter-name>charcater</filter-name><url-pattern>/login</url-pattern><url-pattern>/test</url-pattern> </filter-mapping>

【注意】:doFilter ?法中處理完業(yè)務(wù)邏輯之后,必須添加filterChain.doFilter(servletRequest,servletResponse);
否則請(qǐng)求/響應(yīng)?法向后傳遞,?直停留在過(guò)濾器中。

Filter 的?命周期

當(dāng) Tomcat 啟動(dòng)時(shí),通過(guò)反射機(jī)制調(diào)? Filter 的?參構(gòu)造函數(shù)創(chuàng)建實(shí)例化對(duì)象,同時(shí)調(diào)? init ?法實(shí)現(xiàn)
初始化,doFilter ?法調(diào)?多次,當(dāng) Tomcat 服務(wù)關(guān)閉的時(shí)候,調(diào)? destory 來(lái)銷(xiāo)毀 Filter 對(duì)象。
?參構(gòu)造函數(shù):只調(diào)??次,當(dāng) Tomcat 啟動(dòng)時(shí)調(diào)?(Filter ?定要進(jìn)?配置)
init ?法:只調(diào)??次,當(dāng) Filter 的實(shí)例化對(duì)象創(chuàng)建完成之后調(diào)?
doFilter:調(diào)?多次,訪問(wèn) Filter 的業(yè)務(wù)邏輯都寫(xiě)在 Filter 中
destory:只調(diào)??次,Tomcat 關(guān)閉時(shí)調(diào)?。

同時(shí)配置多個(gè) Filter,Filter 的調(diào)?順序是由 web.xml 中的配置順序來(lái)決定的,寫(xiě)在上?的配置先調(diào)
?,因?yàn)?web.xml 是從上到下順序讀取的。

<filter><filter-name>my</filter-name><filter-class>com.southwind.filter.MyFilter</filter-class> </filter> <filter-mapping><filter-name>my</filter-name><url-pattern>/login</url-pattern> </filter-mapping> <filter><filter-name>charcater</filter-name><filter-class>com.southwind.filter.CharacterFilter</filter-class> </filter> <filter-mapping><filter-name>charcater</filter-name><url-pattern>/login</url-pattern><url-pattern>/test</url-pattern> </filter-mapping>

1、MyFilter
2、CharacterFilter

也可以通過(guò)注解的?式來(lái)簡(jiǎn)化 web.xml 中的配置

<filter><filter-name>my</filter-name><filter-class>com.southwind.filter.MyFilter</filter-class> </filter> <filter-mapping><filter-name>my</filter-name><url-pattern>/login</url-pattern> </filter-mapping>

等于

@WebFilter("/login") public class MyFilter implements Filter {}

Filter 的使?場(chǎng)景

實(shí)際開(kāi)發(fā)中 Filter 的使?場(chǎng)景:
1、統(tǒng)?處理中?亂碼。
2、屏蔽敏感詞。

package com.southwind.filter; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import java.io.IOException; @WebFilter("/test") public class WordFilter implements Filter {@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {servletRequest.setCharacterEncoding("UTF-8");//將"敏感詞"替換成"***"String name = servletRequest.getParameter("name");name = name.replaceAll("敏感詞","***");servletRequest.setAttribute("name",name);filterChain.doFilter(servletRequest,servletResponse);} } package com.southwind.servlet; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/test") public class TestServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String name = (String) req.getAttribute("name");System.out.println("servlet:"+name);} }

3、控制資源的訪問(wèn)權(quán)限。

package com.southwind.filter; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; @WebFilter("/download.jsp") public class DownloadFilter implements Filter {@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) servletRequest;HttpServletResponse response = (HttpServletResponse) servletResponse;HttpSession session = request.getSession();String name = (String) session.getAttribute("name");if(name == null){//不是登錄狀態(tài)response.sendRedirect("/login.jsp");}else{filterChain.doFilter(servletRequest,servletResponse);}} }

?件上傳下載

  • JSP
    1、input 的 type 設(shè)置為 file
    2、form 表單的 method 設(shè)置 post,get 請(qǐng)求會(huì)將?件名傳給服務(wù)端,?不是?件本身
    3、form 表單的 enctype 設(shè)置 multipart/form-data,以?進(jìn)制的形式傳輸數(shù)據(jù)
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body><form enctype="multipart/form-data" action="/upload" method="post"><input name="desc" type="text"/><br/><input name="text" type="file"/><br/><input type="submit" value="上傳"/></form> </body> </html>
  • Servlet
    fileupload 組件可以將所有的請(qǐng)求信息都解析成 FileIteam 對(duì)象,可以通過(guò)對(duì) FileItem 對(duì)象的操作完成上傳,?向?qū)ο蟮乃枷搿?/li>
package com.southwind.servlet; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.util.List; @WebServlet("/upload") public class UploadServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { }@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// //通過(guò)輸?流獲取客戶端傳來(lái)的數(shù)據(jù)流// InputStream inputStream = req.getInputStream();// Reader reader = new InputStreamReader(inputStream);// BufferedReader bufferedReader = new BufferedReader(reader);// //通過(guò)輸出流將數(shù)據(jù)流輸出到本地硬盤(pán)// //獲取?件夾的絕對(duì)路徑// String path = req.getServletContext().getRealPath("file/copy.txt");// OutputStream outputStream = new FileOutputStream(path);// Writer writer = new OutputStreamWriter(outputStream);// BufferedWriter bufferedWriter = new BufferedWriter(writer);// String str = "";// while((str = bufferedReader.readLine())!=null){// System.out.println(str);// bufferedWriter.write(str);// }// bufferedWriter.close();// writer.close();// outputStream.close();// bufferedReader.close();// reader.close();// inputStream.close();try {DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();ServletFileUpload servletFileUpload = new ServletFileUpload(fileItemFactory);List<FileItem> list = servletFileUpload.parseRequest(req);for(FileItem fileItem : list){if(fileItem.isFormField()){String name = fileItem.getFieldName();String value = fileItem.getString("UTF-8");System.out.println(name+":"+value);}else{String fileName = fileItem.getName();long size = fileItem.getSize();System.out.println(fileName+":"+size+"Byte");InputStream inputStream = fileItem.getInputStream();// Reader reader = new InputStreamReader(inputStream);// BufferedReader bufferedReader = new BufferedReader(reader);String path = req.getServletContext().getRealPath("file/"+fileName);OutputStream outputStream = new FileOutputStream(path);// Writer writer = new OutputStreamWriter(outputStream);// BufferedWriter bufferedWriter = new BufferedWriter(writer);int temp = 0;while((temp = inputStream.read())!=-1){outputStream.write(temp);}// bufferedWriter.close();// writer.close();outputStream.close();// bufferedReader.close();// reader.close();inputStream.close();System.out.println("上傳成功");}}} catch (FileUploadException e) {e.printStackTrace();}} }

?件下載

package com.southwind.servlet; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @WebServlet("/download") public class DownloadServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String type = req.getParameter("type");String fileName = "";switch (type){case "png":fileName = "1.png";break;case "txt":fileName = "test.txt";break;}//設(shè)置響應(yīng)?式resp.setContentType("application/x-msdownload");//設(shè)置下載之后的?件名resp.setHeader("Content-Disposition","attachment;filename="+fileName);//獲取輸出流OutputStream outputStream = resp.getOutputStream();String path = req.getServletContext().getRealPath("file/"+fileName);InputStream inputStream = new FileInputStream(path);int temp = 0;while((temp=inputStream.read())!=-1){outputStream.write(temp);}inputStream.close();outputStream.close();} }

Ajax

Asynchronous JavaScript And XML:異步的 JavaScript 和 XML
AJAX 不是新的編程,指的是?種交互?式,異步加載,客戶端和服務(wù)器的數(shù)據(jù)交互更新在局部??的
技術(shù),不需要刷新整個(gè)??(局部刷新)
優(yōu)點(diǎn):
1、局部刷新,效率更?
2、?戶體驗(yàn)更好

【注】:同步:(打電話);異步:(發(fā)微信)

基于 jQuery 的 A JAX:

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title><script type="text/javascript" src="js/jquery-3.3.1.min.js"></script><script type="text/javascript">$(function(){var btn = $("#btn");btn.click(function(){$.ajax({url:'/test',type:'post',data:'id=1',dataType:'text',success:function(data){var text = $("#text");text.before("<span>"+data+"</span><br/>");}});});})</script> </head> <body><input id="text" type="text"/><br/><input id="btn" type="button" value="提交"/> </body> </html>

不能?表單提交請(qǐng)求,改? jQuery ?式動(dòng)態(tài)綁定事件來(lái)提交。
Servlet 不能跳轉(zhuǎn)到 JSP,只能將數(shù)據(jù)返回

package com.southwind.servlet; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/test") public class TestServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String id = req.getParameter("id");try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}String str = "Hello World";resp.getWriter().write(str);} }

傳統(tǒng)的 WEB 數(shù)據(jù)交互 VS AJAX 數(shù)據(jù)交互

  • 客戶端請(qǐng)求的?式不同:
    傳統(tǒng):瀏覽器發(fā)送同步請(qǐng)求 (form、a)
    AJAX:異步引擎對(duì)象發(fā)送異步請(qǐng)求
  • 服務(wù)器響應(yīng)的?式不同:
    傳統(tǒng):響應(yīng)?個(gè)完整 JSP ??(視圖)
    AJAX:響應(yīng)需要的數(shù)據(jù)
  • 客戶端處理?式不同:
    傳統(tǒng):需要等待服務(wù)器完成響應(yīng)并且重新加載整個(gè)??之后,?戶才能進(jìn)?后續(xù)的操作
    AJAX:動(dòng)態(tài)更新??中的局部?jī)?nèi)容,不影響?戶的其他操作

AJAX 原理

基于 jQuery 的 AJAX 語(yǔ)法

$.ajax({屬性})
常?的屬性參數(shù):
url:請(qǐng)求的后端服務(wù)地址
type:請(qǐng)求?式,默認(rèn) get
data:請(qǐng)求參數(shù)
dataType:服務(wù)器返回的數(shù)據(jù)類(lèi)型,text/json
success:請(qǐng)求成功的回調(diào)函數(shù)
error:請(qǐng)求失敗的回調(diào)函數(shù)
complete:請(qǐng)求完成的回調(diào)函數(shù)(?論成功或者失敗,都會(huì)調(diào)?)

JSON

JavaScript Object Notation,?種輕量級(jí)數(shù)據(jù)交互格式,完成 js 與 Java 等后端開(kāi)發(fā)語(yǔ)?對(duì)象數(shù)據(jù)之間
的轉(zhuǎn)換。
客戶端和服務(wù)器之間傳遞對(duì)象數(shù)據(jù),需要? JSON 格式。

package com.southwind.entity; public class User {private Integer id;private String name;private Double score;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Double getScore() {return score;}public void setScore(Double score) {this.score = score;}public User(Integer id, String name, Double score) {this.id = id;this.name = name;this.score = score;} } User user = new User(1,"張三",96.5) var user = {id:1,name:"張三",score:96.5 } package com.southwind.servlet; import com.southwind.entity.User; import net.sf.json.JSONObject; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/test") public class TestServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {User user = new User(1,"張三",96.5);//將 Java 對(duì)象轉(zhuǎn)為 JSON 格式resp.setCharacterEncoding("UTF-8");JSONObject jsonObject = JSONObject.fromObject(user);resp.getWriter().write(jsonObject.toString());} } <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title><script type="text/javascript" src="js/jquery-3.3.1.min.js"></script><script type="text/javascript">$(function(){var btn = $("#btn");btn.click(function(){$.ajax({url:'/test',type:'post',dataType:'json',success:function(data){$("#id").val(data.id);$("#name").val(data.name);$("#score").val(data.score);}});});})</script> </head> <body>編號(hào):<input id="id" type="text"/><br/>姓名:<input id="name" type="text"/><br/>成績(jī):<input id="score" type="text"/><br/><input id="btn" type="button" value="提交"/> </body> </html>

AJAX的簡(jiǎn)單應(yīng)用

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title><script type="text/javascript" src="js/jquery-3.3.1.min.js"></script><script type="text/javascript">$(function(){//修改省份$("#province").change(function () {var id = $(this).val();$.ajax({url:"/location",type:"POST",data:"id="+id+"&type=province",dataType:"JSON",success:function(data){var content = "";var cities = data.cities;for(var i=0;i<cities.length;i++){content += "<option>"+cities[i]+"</option>";}$("#city").html(content);content = "";var areas = data.areas;for(var i=0;i<areas.length;i++){content += "<option>"+areas[i]+"</option>";}$("#area").html(content);}});});//修改城市$("#city").change(function(){var id = $(this).val();$.ajax({url:"/location",type:"POST",data:"id="+id+"&type=city",dataType:"JSON",success:function(data){var content = "";for(var i=0;i<data.length;i++){content += "<option>"+data[i]+"</option>";}$("#area").html(content);}});});});</script> </head> <body>省:<select id="province"><option value="陜?省">陜?省</option><option value="河南省">河南省</option><option value="江蘇省">江蘇省</option></select>市:<select id="city"><option value="?安市">?安市</option><option value="寶雞市">寶雞市</option><option value="渭南市">渭南市</option></select>區(qū):<select id="area"><option>雁塔區(qū)</option><option>蓮湖區(qū)</option><option>新城區(qū)</option></select> </body> </html> package com.southwind.entity; import java.util.List; public class Location {private List<String> cities;private List<String> areas;public List<String> getCities() {return cities;}public void setCities(List<String> cities) {this.cities = cities;}public List<String> getAreas() {return areas;}public void setAreas(List<String> areas) {this.areas = areas;} } package com.southwind.servlet; import com.southwind.entity.Location; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @WebServlet("/location") public class LocationServlet extends HttpServlet {private static Map<String, List<String>> cityMap;private static Map<String,List<String>> provinceMap;static {cityMap = new HashMap<>();List<String> areas = new ArrayList<>();//?安areas.add("雁塔區(qū)");areas.add("蓮湖區(qū)");areas.add("新城區(qū)");cityMap.put("?安市",areas);//寶雞areas = new ArrayList<>();areas.add("陳倉(cāng)區(qū)");areas.add("渭賓區(qū)");areas.add("新城區(qū)");cityMap.put("寶雞市",areas);//渭南areas = new ArrayList<>();areas.add("臨渭區(qū)");areas.add("?新區(qū)");cityMap.put("渭南市",areas);//鄭州areas = new ArrayList<>();areas.add("鄭州A區(qū)");areas.add("鄭州B區(qū)");cityMap.put("鄭州市",areas);//洛陽(yáng)areas = new ArrayList<>();areas.add("洛陽(yáng)A區(qū)");areas.add("洛陽(yáng)B區(qū)");cityMap.put("洛陽(yáng)市",areas);provinceMap = new HashMap<>();List<String> cities = new ArrayList<>();cities.add("?安市");cities.add("寶雞市");cities.add("渭南市");provinceMap.put("陜?省",cities);cities = new ArrayList<>();cities.add("鄭州市");cities.add("洛陽(yáng)市");cities.add("開(kāi)封市");provinceMap.put("河南省",cities);cities = new ArrayList<>();cities.add("南京市");cities.add("蘇州市");cities.add("南通市");provinceMap.put("江蘇省",cities);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String type = req.getParameter("type");resp.setCharacterEncoding("UTF-8");String id = req.getParameter("id");switch (type){case "city":List<String> areas = cityMap.get(id);JSONArray jsonArray = JSONArray.fromObject(areas);resp.getWriter().write(jsonArray.toString());break;case "province":List<String> cities = provinceMap.get(id);String city = cities.get(0);List<String> cityAreas = cityMap.get(city);Location location = new Location();location.setCities(cities);location.setAreas(cityAreas);JSONObject jsonObject = JSONObject.fromObject(location);resp.getWriter().write(jsonObject.toString());break;}} }

JDBC

Java DataBase Connectivity 是?個(gè)獨(dú)?于特定數(shù)據(jù)庫(kù)的管理系統(tǒng),通?的 SQL 數(shù)據(jù)庫(kù)存取和操作的公
共接?。
定義了?組標(biāo)準(zhǔn),為訪問(wèn)不同數(shù)據(jù)庫(kù)提供了統(tǒng)?的途徑。

JDBC 體系結(jié)構(gòu)

JDBC 接?包括兩個(gè)層?:

  • ?向應(yīng)?的 API,供程序員調(diào)?
  • ?向數(shù)據(jù)庫(kù)的 API,供?商開(kāi)發(fā)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序

JDBC API
提供者:Java 官?
內(nèi)容:供開(kāi)發(fā)者調(diào)?的接?
java.sql 和 javax.sql

  • DriverManager 類(lèi)
  • Connection 接?
  • Statement 接?
  • ResultSet 接?

DriverManager
提供者:Java 官?
作?:管理不同的 JDBC 驅(qū)動(dòng)
JDBC 驅(qū)動(dòng)
提供者:數(shù)據(jù)庫(kù)?商
作?:負(fù)責(zé)連接不同的數(shù)據(jù)庫(kù)

JDBC 的使?

1、加載數(shù)據(jù)庫(kù)驅(qū)動(dòng),Java 程序和數(shù)據(jù)庫(kù)之間的橋梁。
2、獲取 Connection,Java 程序與數(shù)據(jù)庫(kù)的?次連接。
3、創(chuàng)建 Statement 對(duì)象,由 Connection 產(chǎn)?,執(zhí)? SQL 語(yǔ)句。
4、如果需要接收返回值,創(chuàng)建 ResultSet 對(duì)象,保存 Statement 執(zhí)?之后所查詢到的結(jié)果。

package com.southwind.test; import java.sql.*; import java.util.Date; public class Test {public static void main(String[] args) {try {//加載驅(qū)動(dòng)Class.forName("com.mysql.cj.jdbc.Driver");//獲取連接String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8";String user = "root";String password = "root";Connection connection = DriverManager.getConnection(url,user,password);// String sql = "insert into student(name,score,birthday) values('李四',78,'2019-01-01')";// String sql = "update student set name = '李四'";// String sql = "delete from student";// Statement statement = connection.createStatement();// int result = statement.executeUpdate(sql);String sql = "select * from student";Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery(sql);while (resultSet.next()){Integer id = resultSet.getInt("id");String name = resultSet.getString(2);Double score = resultSet.getDouble(3);Date date = resultSet.getDate(4);System.out.println(id+"-"+name+"-"+score+"-"+date);}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e){e.printStackTrace();}} }

PreparedStatement

Statement 的?類(lèi),提供了 SQL 占位符的功能
使? Statement 進(jìn)?開(kāi)發(fā)有兩個(gè)問(wèn)題:
1、需要頻繁拼接 String 字符串,出錯(cuò)率較?。
2、存在 SQL 注?的?險(xiǎn)。
SQL 注?:利?某些系統(tǒng)沒(méi)有對(duì)?戶輸?的信息進(jìn)?充分檢測(cè),在?戶輸?的數(shù)據(jù)中注??法的 SQL
語(yǔ)句,從?利?系統(tǒng)的 SQL 引擎完成惡意?為的做法。

String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"; String user = "root"; String password = "root"; Connection connection = DriverManager.getConnection(url,user,password); String username = "lisi"; String mypassword = "000"; String sql = "select * from t_user where username = ? and password = ?"; System.out.println(sql); PreparedStatement preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1,username); preparedStatement.setString(2,mypassword); ResultSet resultSet = preparedStatement.executeQuery(); if(resultSet.next()){System.out.println("登錄成功"); }else{System.out.println("登錄失敗"); } } catch (ClassNotFoundException e) {e.printStackTrace(); } catch (SQLException e){e.printStackTrace(); }

數(shù)據(jù)庫(kù)連接池

JDBC 開(kāi)發(fā)流程

  • 加載驅(qū)動(dòng)(只需要加載?次)
  • 建?數(shù)據(jù)庫(kù)連接(Connection)
  • 執(zhí)? SQL 語(yǔ)句(Statement)
  • ResultSet 接收結(jié)果集(查詢)
  • 斷開(kāi)連接,釋放資源

數(shù)據(jù)庫(kù)連接對(duì)象是通過(guò) DriverManager 來(lái)獲取的,每次獲取都需要向數(shù)據(jù)庫(kù)申請(qǐng)獲取連接,驗(yàn)證?戶
名和密碼,執(zhí)?完 SQL 語(yǔ)句后斷開(kāi)連接,這樣的?式會(huì)造成資源的浪費(fèi),數(shù)據(jù)連接資源沒(méi)有得到很好的重復(fù)利?。(栗子:就像是你每次打一個(gè)電話都要買(mǎi)一個(gè)手機(jī),打完一個(gè)電話就把手機(jī)扔了,很浪費(fèi),為什么我們不一直使用第一次買(mǎi)的手機(jī)一直打電話呢?)

可以使?數(shù)據(jù)庫(kù)連接池解決這?問(wèn)題。
數(shù)據(jù)庫(kù)連接池的基本思想就是為數(shù)據(jù)庫(kù)建??個(gè)緩沖池,預(yù)先向緩沖池中放??定數(shù)量的連接對(duì)象,當(dāng)需要獲取數(shù)據(jù)庫(kù)連接的時(shí)候,只需要從緩沖池中取出?個(gè)對(duì)象,?完之后再放回到緩沖池中,供下?次請(qǐng)求使?,做到了資源的重復(fù)利?,允許程序重復(fù)使??個(gè)現(xiàn)有的數(shù)據(jù)庫(kù)連接對(duì)象,?不需要重新創(chuàng)
建。
當(dāng)數(shù)據(jù)庫(kù)連接池中沒(méi)有空閑的連接時(shí),新的請(qǐng)求就會(huì)進(jìn)?等待隊(duì)列,等待其他線程釋放連接。

數(shù)據(jù)庫(kù)連接池實(shí)現(xiàn)

JDBC 的數(shù)據(jù)庫(kù)連接池使? javax.sql.DataSource 接?來(lái)完成的,DataSource 是 Java 官?提供的接
?,使?的時(shí)候開(kāi)發(fā)者并不需要??來(lái)實(shí)現(xiàn)該接?,可以使?第三?的?具,C3P0 是?個(gè)常?的第三
?實(shí)現(xiàn),實(shí)際開(kāi)發(fā)中直接使? C3P0 即可完成數(shù)據(jù)庫(kù)連接池的操作。
1、導(dǎo)? jar 包
傳統(tǒng)?式拿到的 Connection:com.mysql.cj.jdbc.ConnectionImpl@557caf28
C3P0 拿到的 Connection:com.mchange.v2.c3p0.impl.NewProxyConnection@4988d8b8
2、代碼實(shí)現(xiàn)

package com.southwind.test; import com.mchange.v2.c3p0.ComboPooledDataSource; import java.beans.PropertyVetoException; import java.sql.Connection; import java.sql.SQLException; public class DataSourceTest {public static void main(String[] args) {try {//創(chuàng)建C3P0ComboPooledDataSource dataSource = new ComboPooledDataSource();dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8");dataSource.setUser("root");dataSource.setPassword("root");Connection connection = dataSource.getConnection();System.out.println(connection);//還回到數(shù)據(jù)庫(kù)連接池中connection.close();} catch (PropertyVetoException e) {e.printStackTrace();} catch (SQLException e){e.printStackTrace();}} }


實(shí)際開(kāi)發(fā),將 C3P0 的配置信息定義在 xml ?件中,Java 程序只需要加載配置?件即可完成數(shù)據(jù)庫(kù)連接
池的初始化操作。
1、配置?件的名字必須是 c3p0-config.xml
2、初始化 ComboPooledDataSource 時(shí),傳?的參數(shù)必須是 c3p0-config.xml 中 named-config 標(biāo)簽的 name 屬性值

<?xml version="1.0" encoding="UTF-8"?> <c3p0-config><named-config name="testc3p0"><!-- 指定連接數(shù)據(jù)源的基本屬性 --><property name="user">root</property><property name="password">root</property><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://localhost:3306/library?useUnicode=true&amp;characterEncoding=UTF-8</property><!-- 若數(shù)據(jù)庫(kù)中連接數(shù)不?時(shí), ?次向數(shù)據(jù)庫(kù)服務(wù)器申請(qǐng)多少個(gè)連接 --><property name="acquireIncrement">5</property><!-- 初始化數(shù)據(jù)庫(kù)連接池時(shí)連接的數(shù)量 --><property name="initialPoolSize">20</property><!-- 數(shù)據(jù)庫(kù)連接池中的最?的數(shù)據(jù)庫(kù)連接數(shù) --><property name="minPoolSize">2</property><!-- 數(shù)據(jù)庫(kù)連接池中的最?的數(shù)據(jù)庫(kù)連接數(shù) --><property name="maxPoolSize">40</property></named-config> </c3p0-config> package com.southwind.test; import com.mchange.v2.c3p0.ComboPooledDataSource; import java.beans.PropertyVetoException; import java.sql.Connection; import java.sql.SQLException; public class DataSourceTest {public static void main(String[] args) {try {//創(chuàng)建C3P0ComboPooledDataSource dataSource = new ComboPooledDataSource("testc3p0");Connection connection = dataSource.getConnection();System.out.println(connection);//還回到數(shù)據(jù)庫(kù)連接池中connection.close();} catch (SQLException e){e.printStackTrace();}} }

DBUtils

DBUtils 可以幫助開(kāi)發(fā)者完成數(shù)據(jù)的封裝(結(jié)果集到 Java 對(duì)象的映射)
1、導(dǎo)? jar 包
ResultHandler 接?是?來(lái)處理結(jié)果集,可以將查詢到的結(jié)果集轉(zhuǎn)換成 Java 對(duì)象,提供了 4 種實(shí)現(xiàn)類(lèi)。

  • BeanHandler 將結(jié)果集映射成 Java 對(duì)象 Student
  • BeanListHandler 將結(jié)果集映射成 List 集合List <Student >
  • MapHandler 將結(jié)果集映射成 Map 對(duì)象
  • MapListHandler 將結(jié)果集映射成 MapList 結(jié)合

【注】:根據(jù)返回值決定以上handler。

public static Student findByDBUtils(Integer id){Connection connection = null;Student student = null;try {connection = dataSource.getConnection();String sql = "select * from student";//String sql = "select * from student where id=?";QueryRunner queryRunner = new QueryRunner();List<Map<String,Object>> list = queryRunner.query(connection,sql,new MapListHandler());//List<Map<String,Object>> list = queryRunner.query(connection,sql,new BeanHandler<>(Student.class),id);for (Map<String,Object> map:list){System.out.println(map);}} catch (SQLException e) {e.printStackTrace();} finally {try {connection.close();} catch (SQLException e) {e.printStackTrace();}}return student; }


【代碼來(lái)源】參考楠哥教學(xué)視頻:https://www.bilibili.com/video/BV1BJ411L7NR
【JavaWeb實(shí)戰(zhàn)代碼及所需jar包】:https://download.csdn.net/download/hhhmonkey/21516713

總結(jié)

以上是生活随笔為你收集整理的JavaWeb基础学习笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

性欧美疯狂xxxxbbbb | 亚洲精品中文字幕久久久久 | 成年美女黄网站色大免费视频 | 亚洲色成人中文字幕网站 | 欧美精品一区二区精品久久 | 男女爱爱好爽视频免费看 | 中文字幕无码乱人伦 | 中文无码精品a∨在线观看不卡 | 色一情一乱一伦一区二区三欧美 | 男女性色大片免费网站 | 欧美日韩人成综合在线播放 | 一个人免费观看的www视频 | 午夜精品久久久久久久久 | 久久精品成人欧美大片 | 国产超级va在线观看视频 | 最新国产乱人伦偷精品免费网站 | 久久婷婷五月综合色国产香蕉 | 久久婷婷五月综合色国产香蕉 | 欧美日本精品一区二区三区 | 久激情内射婷内射蜜桃人妖 | 色综合久久久久综合一本到桃花网 | 九九综合va免费看 | 亚洲成色www久久网站 | 永久免费观看美女裸体的网站 | 日日噜噜噜噜夜夜爽亚洲精品 | 欧洲熟妇色 欧美 | 精品国产青草久久久久福利 | 亚洲成熟女人毛毛耸耸多 | 熟妇人妻激情偷爽文 | 欧美黑人乱大交 | 夜精品a片一区二区三区无码白浆 | 国产电影无码午夜在线播放 | 午夜熟女插插xx免费视频 | 日韩亚洲欧美中文高清在线 | 国产av一区二区三区最新精品 | 久久无码专区国产精品s | 国产精品久久久久9999小说 | 日本精品久久久久中文字幕 | 搡女人真爽免费视频大全 | 55夜色66夜色国产精品视频 | 熟妇女人妻丰满少妇中文字幕 | 国产农村乱对白刺激视频 | 97久久国产亚洲精品超碰热 | 国产美女精品一区二区三区 | 国产无遮挡又黄又爽又色 | 欧洲vodafone精品性 | 欧美一区二区三区视频在线观看 | 国产亚洲精品久久久久久久久动漫 | 中文字幕久久久久人妻 | 国产成人精品无码播放 | 亚洲啪av永久无码精品放毛片 | 亚洲国产精华液网站w | 老头边吃奶边弄进去呻吟 | 亚洲国产精品无码一区二区三区 | 亚洲熟妇自偷自拍另类 | 久久午夜无码鲁丝片午夜精品 | 亚洲成av人片天堂网无码】 | 高清无码午夜福利视频 | 乌克兰少妇性做爰 | 内射老妇bbwx0c0ck | 人人妻人人澡人人爽欧美一区 | www国产亚洲精品久久网站 | 国产成人精品一区二区在线小狼 | 永久免费观看美女裸体的网站 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 亚洲毛片av日韩av无码 | 国产99久久精品一区二区 | 亚洲熟妇自偷自拍另类 | 老熟妇乱子伦牲交视频 | 四十如虎的丰满熟妇啪啪 | 成人欧美一区二区三区黑人免费 | 亚洲综合色区中文字幕 | 日日夜夜撸啊撸 | 久久久久av无码免费网 | 人妻无码久久精品人妻 | 丰满诱人的人妻3 | 樱花草在线播放免费中文 | 麻豆av传媒蜜桃天美传媒 | 在线精品亚洲一区二区 | 黑人玩弄人妻中文在线 | 帮老师解开蕾丝奶罩吸乳网站 | 国产在线一区二区三区四区五区 | 精品熟女少妇av免费观看 | 图片区 小说区 区 亚洲五月 | 精品国产一区二区三区av 性色 | 国产精品人妻一区二区三区四 | 国产特级毛片aaaaaa高潮流水 | yw尤物av无码国产在线观看 | 精品久久久久香蕉网 | 国产美女极度色诱视频www | 精品国产精品久久一区免费式 | 中文字幕无码热在线视频 | 日日摸夜夜摸狠狠摸婷婷 | 成人无码精品一区二区三区 | 日韩亚洲欧美精品综合 | 亚洲男女内射在线播放 | 国产特级毛片aaaaaa高潮流水 | 久久国产精品偷任你爽任你 | 欧美熟妇另类久久久久久不卡 | 国产精品亚洲综合色区韩国 | 国产两女互慰高潮视频在线观看 | 日本一区二区三区免费播放 | 亚洲一区二区三区偷拍女厕 | 天天av天天av天天透 | 日本xxxx色视频在线观看免费 | 国产va免费精品观看 | 亚洲人成影院在线无码按摩店 | 久久伊人色av天堂九九小黄鸭 | 精品国产国产综合精品 | 亚洲成色在线综合网站 | 天干天干啦夜天干天2017 | 蜜桃视频插满18在线观看 | 亚洲狠狠婷婷综合久久 | 欧美精品无码一区二区三区 | 香港三级日本三级妇三级 | 国产精品久久久av久久久 | 无码人妻av免费一区二区三区 | 在线a亚洲视频播放在线观看 | 成在人线av无码免观看麻豆 | 亚洲性无码av中文字幕 | 国产亚洲精品久久久久久国模美 | 乱中年女人伦av三区 | 成人动漫在线观看 | 国产成人无码av一区二区 | 18无码粉嫩小泬无套在线观看 | 国产色精品久久人妻 | 真人与拘做受免费视频 | 免费观看的无遮挡av | 欧美熟妇另类久久久久久多毛 | 亚洲日韩av一区二区三区四区 | 国产亚洲精品久久久久久大师 | 久久久久se色偷偷亚洲精品av | 国产精品美女久久久久av爽李琼 | 国产亚av手机在线观看 | 国产精品无码一区二区三区不卡 | 亚洲成a人片在线观看日本 | 国产内射老熟女aaaa | 成人无码影片精品久久久 | 亚洲国产综合无码一区 | 欧美精品无码一区二区三区 | 丰满妇女强制高潮18xxxx | 天天做天天爱天天爽综合网 | 少妇厨房愉情理9仑片视频 | 日韩人妻无码中文字幕视频 | 精品亚洲韩国一区二区三区 | 亚洲一区二区三区在线观看网站 | 精品久久久中文字幕人妻 | 久久久久se色偷偷亚洲精品av | 少妇人妻大乳在线视频 | 四十如虎的丰满熟妇啪啪 | 人人超人人超碰超国产 | 中文字幕+乱码+中文字幕一区 | 午夜无码区在线观看 | 亚洲国精产品一二二线 | 亚洲中文字幕av在天堂 | 久久久久久久女国产乱让韩 | 久久久久久av无码免费看大片 | 熟妇人妻激情偷爽文 | 免费男性肉肉影院 | 狂野欧美性猛xxxx乱大交 | 亚洲另类伦春色综合小说 | 午夜性刺激在线视频免费 | 精品偷拍一区二区三区在线看 | 国产成人无码专区 | 强开小婷嫩苞又嫩又紧视频 | 99精品久久毛片a片 | 日韩欧美群交p片內射中文 | 丰满少妇高潮惨叫视频 | 精品一二三区久久aaa片 | a国产一区二区免费入口 | 国内丰满熟女出轨videos | 兔费看少妇性l交大片免费 | 成人精品视频一区二区 | 亚洲人成影院在线无码按摩店 | 俺去俺来也www色官网 | 久久久久久国产精品无码下载 | 搡女人真爽免费视频大全 | 久久久久久九九精品久 | 欧美黑人性暴力猛交喷水 | 国产精品-区区久久久狼 | 久精品国产欧美亚洲色aⅴ大片 | 亚洲中文字幕乱码av波多ji | 捆绑白丝粉色jk震动捧喷白浆 | 人人妻人人澡人人爽人人精品浪潮 | 波多野42部无码喷潮在线 | 精品国产乱码久久久久乱码 | 一本久久伊人热热精品中文字幕 | 亚洲国产精品一区二区美利坚 | 亚洲熟悉妇女xxx妇女av | 夜夜高潮次次欢爽av女 | 中文字幕人成乱码熟女app | 国产成人精品必看 | 国产亚洲精品久久久久久国模美 | 国产综合久久久久鬼色 | 国产精品久久久久久久9999 | 亚洲无人区午夜福利码高清完整版 | 欧美一区二区三区视频在线观看 | 久久久精品国产sm最大网站 | 性欧美疯狂xxxxbbbb | 精品久久久中文字幕人妻 | 亚洲中文字幕无码中文字在线 | 内射后入在线观看一区 | 性开放的女人aaa片 | 人妻少妇精品无码专区动漫 | 无码成人精品区在线观看 | 精品国产aⅴ无码一区二区 | 欧美日韩综合一区二区三区 | 亚洲精品国产精品乱码视色 | 久久午夜无码鲁丝片秋霞 | 2019午夜福利不卡片在线 | 久久久久久av无码免费看大片 | 精品欧洲av无码一区二区三区 | 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲国产精品毛片av不卡在线 | 久久97精品久久久久久久不卡 | 人妻无码久久精品人妻 | 国产精品人人爽人人做我的可爱 | 亚洲精品久久久久久一区二区 | 亚洲一区二区三区在线观看网站 | 少妇无码一区二区二三区 | 午夜福利电影 | 小泽玛莉亚一区二区视频在线 | 亚洲 高清 成人 动漫 | 思思久久99热只有频精品66 | 免费人成在线观看网站 | а天堂中文在线官网 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 动漫av一区二区在线观看 | 中文字幕人妻丝袜二区 | 亚洲a无码综合a国产av中文 | 久久精品人人做人人综合 | 欧美怡红院免费全部视频 | a在线亚洲男人的天堂 | 丰满肥臀大屁股熟妇激情视频 | 波多野结衣一区二区三区av免费 | 少妇人妻偷人精品无码视频 | 久久久国产精品无码免费专区 | 久久精品人人做人人综合试看 | 国产亚洲精品久久久久久 | 青青青爽视频在线观看 | 久久国产精品精品国产色婷婷 | 偷窥村妇洗澡毛毛多 | 国产人妻大战黑人第1集 | 性欧美大战久久久久久久 | 国产网红无码精品视频 | 99久久无码一区人妻 | 男人的天堂2018无码 | 性欧美大战久久久久久久 | 狂野欧美性猛xxxx乱大交 | 美女扒开屁股让男人桶 | 岛国片人妻三上悠亚 | 在线看片无码永久免费视频 | 最近免费中文字幕中文高清百度 | 日本护士毛茸茸高潮 | 夜夜高潮次次欢爽av女 | 性开放的女人aaa片 | 国内老熟妇对白xxxxhd | 国产精品igao视频网 | 久久国产自偷自偷免费一区调 | 成人精品天堂一区二区三区 | 免费观看黄网站 | 成人动漫在线观看 | 夜夜影院未满十八勿进 | 装睡被陌生人摸出水好爽 | 蜜桃av抽搐高潮一区二区 | 免费无码的av片在线观看 | 亚洲人成人无码网www国产 | 欧美性猛交内射兽交老熟妇 | 无遮无挡爽爽免费视频 | 学生妹亚洲一区二区 | 伊人久久婷婷五月综合97色 | 丰满少妇弄高潮了www | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 亚洲国产成人a精品不卡在线 | 免费网站看v片在线18禁无码 | 性做久久久久久久久 | 福利一区二区三区视频在线观看 | 欧美精品无码一区二区三区 | 成熟妇人a片免费看网站 | 女人被爽到呻吟gif动态图视看 | 日本高清一区免费中文视频 | 一本无码人妻在中文字幕免费 | 荫蒂添的好舒服视频囗交 | 久久精品国产精品国产精品污 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲国产精品无码久久久久高潮 | 无码成人精品区在线观看 | 国产精品99久久精品爆乳 | 亚洲中文字幕av在天堂 | 欧美肥老太牲交大战 | 天天拍夜夜添久久精品大 | 青春草在线视频免费观看 | 天堂久久天堂av色综合 | 青草视频在线播放 | 中文精品久久久久人妻不卡 | 中文字幕av日韩精品一区二区 | 亚洲娇小与黑人巨大交 | 国产亚洲精品久久久ai换 | 成人精品视频一区二区三区尤物 | 国产av人人夜夜澡人人爽麻豆 | 国内少妇偷人精品视频 | 中文字幕无码人妻少妇免费 | 天天躁夜夜躁狠狠是什么心态 | 97久久国产亚洲精品超碰热 | 亚洲乱码国产乱码精品精 | 99久久无码一区人妻 | 嫩b人妻精品一区二区三区 | 久久久中文字幕日本无吗 | 成熟女人特级毛片www免费 | 久久熟妇人妻午夜寂寞影院 | 人人妻人人澡人人爽欧美一区九九 | 国产精品.xx视频.xxtv | 国产香蕉尹人视频在线 | 蜜桃臀无码内射一区二区三区 | 国产精品第一区揄拍无码 | 55夜色66夜色国产精品视频 | 熟妇人妻中文av无码 | 欧美亚洲国产一区二区三区 | 夜夜影院未满十八勿进 | 久久人人爽人人爽人人片ⅴ | 小sao货水好多真紧h无码视频 | 久久精品人妻少妇一区二区三区 | 丰满人妻被黑人猛烈进入 | 青青久在线视频免费观看 | aa片在线观看视频在线播放 | 亚洲欧美精品伊人久久 | v一区无码内射国产 | 成人精品视频一区二区 | 亚洲中文字幕在线无码一区二区 | 老熟女重囗味hdxx69 | 最近中文2019字幕第二页 | 国产午夜亚洲精品不卡下载 | 搡女人真爽免费视频大全 | 欧美日本精品一区二区三区 | 亚洲色大成网站www国产 | 熟女体下毛毛黑森林 | 成人综合网亚洲伊人 | 97色伦图片97综合影院 | 午夜成人1000部免费视频 | 久久精品99久久香蕉国产色戒 | 中文亚洲成a人片在线观看 | 天堂无码人妻精品一区二区三区 | 欧美日韩综合一区二区三区 | 欧美老妇交乱视频在线观看 | 久久精品女人的天堂av | 狠狠色噜噜狠狠狠狠7777米奇 | 精品国精品国产自在久国产87 | 久久精品国产一区二区三区肥胖 | 国产精品亚洲一区二区三区喷水 | 精品久久久久久人妻无码中文字幕 | 国产精品嫩草久久久久 | 久久精品无码一区二区三区 | 亚洲国产日韩a在线播放 | 国产精品a成v人在线播放 | 东京一本一道一二三区 | 欧美日韩久久久精品a片 | 色婷婷综合激情综在线播放 | 免费播放一区二区三区 | 少妇厨房愉情理9仑片视频 | 国产舌乚八伦偷品w中 | 人人妻人人澡人人爽人人精品浪潮 | 国产乱人伦偷精品视频 | 精品国偷自产在线视频 | av在线亚洲欧洲日产一区二区 | 国产精品无套呻吟在线 | 丰满岳乱妇在线观看中字无码 | 人妻尝试又大又粗久久 | 红桃av一区二区三区在线无码av | 少妇高潮一区二区三区99 | 夜夜影院未满十八勿进 | 少妇人妻偷人精品无码视频 | 精品国产乱码久久久久乱码 | 在线播放免费人成毛片乱码 | 人妻插b视频一区二区三区 | 精品一区二区三区无码免费视频 | 亚洲精品综合一区二区三区在线 | 黄网在线观看免费网站 | 波多野结衣av一区二区全免费观看 | 国内精品久久久久久中文字幕 | 东京热无码av男人的天堂 | 学生妹亚洲一区二区 | 六十路熟妇乱子伦 | 少妇性荡欲午夜性开放视频剧场 | 香港三级日本三级妇三级 | 国产亚洲精品久久久久久国模美 | 熟女少妇人妻中文字幕 | 欧美一区二区三区视频在线观看 | 国产亚洲精品久久久久久大师 | 欧美freesex黑人又粗又大 | 无遮挡国产高潮视频免费观看 | 久久久精品国产sm最大网站 | 久久熟妇人妻午夜寂寞影院 | 久久精品中文闷骚内射 | 青春草在线视频免费观看 | 久久精品人人做人人综合 | 最新国产乱人伦偷精品免费网站 | 中文字幕无线码免费人妻 | 亚洲中文字幕乱码av波多ji | 亚洲精品国偷拍自产在线麻豆 | 久久精品国产精品国产精品污 | 中文字幕无码热在线视频 | 人妻尝试又大又粗久久 | 极品嫩模高潮叫床 | 精品偷自拍另类在线观看 | 少妇人妻偷人精品无码视频 | 国产精品美女久久久久av爽李琼 | 国产美女极度色诱视频www | 欧美精品免费观看二区 | 人人爽人人爽人人片av亚洲 | 欧美日韩一区二区综合 | 一本加勒比波多野结衣 | 永久免费观看美女裸体的网站 | 久久99热只有频精品8 | 精品国精品国产自在久国产87 | 久青草影院在线观看国产 | 男人扒开女人内裤强吻桶进去 | 亚洲娇小与黑人巨大交 | 色老头在线一区二区三区 | 初尝人妻少妇中文字幕 | 欧美日韩久久久精品a片 | √8天堂资源地址中文在线 | 国产成人综合在线女婷五月99播放 | 丰满少妇弄高潮了www | 国产精品怡红院永久免费 | 亚洲日本va午夜在线电影 | 国产精品无码一区二区桃花视频 | 中文字幕人成乱码熟女app | 亚洲人成网站色7799 | 77777熟女视频在线观看 а天堂中文在线官网 | √天堂资源地址中文在线 | 亚洲另类伦春色综合小说 | 欧美xxxx黑人又粗又长 | 国产欧美精品一区二区三区 | 久久久久久av无码免费看大片 | 亚洲 a v无 码免 费 成 人 a v | 国产av久久久久精东av | 久久99热只有频精品8 | 婷婷五月综合缴情在线视频 | www成人国产高清内射 | 欧美性黑人极品hd | 亚洲成a人片在线观看日本 | 波多野结衣av在线观看 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 亚洲精品中文字幕久久久久 | 人妻人人添人妻人人爱 | 日日橹狠狠爱欧美视频 | 青草视频在线播放 | 福利一区二区三区视频在线观看 | 成人性做爰aaa片免费看不忠 | 久久99国产综合精品 | 性欧美熟妇videofreesex | 国产亚洲精品久久久久久国模美 | 婷婷综合久久中文字幕蜜桃三电影 | 日本丰满护士爆乳xxxx | 成人亚洲精品久久久久软件 | 亚洲国产精品一区二区美利坚 | 日本高清一区免费中文视频 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 久久精品中文字幕大胸 | 亚洲人成网站在线播放942 | 超碰97人人做人人爱少妇 | 国内精品久久毛片一区二区 | 精品 日韩 国产 欧美 视频 | 亚洲另类伦春色综合小说 | 亚洲精品国产第一综合99久久 | 熟妇人妻激情偷爽文 | √天堂中文官网8在线 | 丝袜美腿亚洲一区二区 | 亚洲中文字幕乱码av波多ji | 精品人妻人人做人人爽 | 免费无码一区二区三区蜜桃大 | 国产真实夫妇视频 | 精品国产一区二区三区四区在线看 | 国产无遮挡又黄又爽免费视频 | 狠狠亚洲超碰狼人久久 | 成人精品天堂一区二区三区 | 午夜福利一区二区三区在线观看 | 免费观看又污又黄的网站 | 成人女人看片免费视频放人 | 女人色极品影院 | 欧洲vodafone精品性 | 国产成人一区二区三区别 | 亚洲成av人综合在线观看 | 人妻aⅴ无码一区二区三区 | 麻豆av传媒蜜桃天美传媒 | 99视频精品全部免费免费观看 | 丝袜足控一区二区三区 | 久久久久久国产精品无码下载 | 精品无码一区二区三区爱欲 | 亚洲国产精品无码久久久久高潮 | 久久午夜无码鲁丝片 | 国产超级va在线观看视频 | 亚洲综合精品香蕉久久网 | 巨爆乳无码视频在线观看 | 高潮喷水的毛片 | 亚洲一区av无码专区在线观看 | 国产精品亚洲а∨无码播放麻豆 | 撕开奶罩揉吮奶头视频 | 福利一区二区三区视频在线观看 | 久久国产精品二国产精品 | 丰满人妻精品国产99aⅴ | 午夜不卡av免费 一本久久a久久精品vr综合 | 在线视频网站www色 | 97无码免费人妻超级碰碰夜夜 | 成人性做爰aaa片免费看不忠 | 亚洲中文字幕成人无码 | 三上悠亚人妻中文字幕在线 | 国内揄拍国内精品人妻 | yw尤物av无码国产在线观看 | 欧美zoozzooz性欧美 | 一本久久a久久精品亚洲 | 日日噜噜噜噜夜夜爽亚洲精品 | 性做久久久久久久免费看 | 亚洲色大成网站www国产 | 中文字幕人成乱码熟女app | 国产精品a成v人在线播放 | 欧美自拍另类欧美综合图片区 | 麻豆果冻传媒2021精品传媒一区下载 | 亚洲精品一区国产 | 久热国产vs视频在线观看 | 无码精品人妻一区二区三区av | 亚洲爆乳精品无码一区二区三区 | 亚洲精品综合一区二区三区在线 | 欧美乱妇无乱码大黄a片 | 最近免费中文字幕中文高清百度 | 一二三四社区在线中文视频 | 国语精品一区二区三区 | 亚洲色偷偷男人的天堂 | 欧美一区二区三区视频在线观看 | 国产精品美女久久久 | 亚洲人成网站在线播放942 | 人妻夜夜爽天天爽三区 | 久久久久se色偷偷亚洲精品av | 玩弄中年熟妇正在播放 | 三级4级全黄60分钟 | 性欧美videos高清精品 | 日韩成人一区二区三区在线观看 | 国产精品久久久 | 国产偷自视频区视频 | 水蜜桃亚洲一二三四在线 | 国产精品久久久久久亚洲毛片 | 又紧又大又爽精品一区二区 | 国产精品久久国产精品99 | 亚洲春色在线视频 | 在线精品亚洲一区二区 | 中文久久乱码一区二区 | 国产成人无码a区在线观看视频app | 久久综合给久久狠狠97色 | 水蜜桃亚洲一二三四在线 | 性做久久久久久久免费看 | 女人被爽到呻吟gif动态图视看 | 国产内射老熟女aaaa | 美女极度色诱视频国产 | 性生交大片免费看l | 18精品久久久无码午夜福利 | 一区二区三区高清视频一 | 国产婷婷色一区二区三区在线 | 亚洲精品久久久久中文第一幕 | 日本免费一区二区三区最新 | 国产97人人超碰caoprom | 日产国产精品亚洲系列 | 亚洲日韩乱码中文无码蜜桃臀网站 | 精品少妇爆乳无码av无码专区 | 日韩av无码中文无码电影 | 老太婆性杂交欧美肥老太 | 亚洲熟悉妇女xxx妇女av | 动漫av网站免费观看 | 丝袜人妻一区二区三区 | 亚洲国产一区二区三区在线观看 | 日本一区二区更新不卡 | 无码国内精品人妻少妇 | 日韩av无码中文无码电影 | 国产乱子伦视频在线播放 | 午夜性刺激在线视频免费 | 无码人妻精品一区二区三区不卡 | 人人爽人人爽人人片av亚洲 | 人妻少妇精品久久 | 少妇高潮一区二区三区99 | 亚洲中文字幕成人无码 | 国产无套内射久久久国产 | 老子影院午夜精品无码 | 好爽又高潮了毛片免费下载 | 日本丰满护士爆乳xxxx | 久久亚洲中文字幕精品一区 | 老熟女重囗味hdxx69 | 免费男性肉肉影院 | 99久久亚洲精品无码毛片 | 亚洲の无码国产の无码步美 | 亚洲国产欧美在线成人 | 国产精品丝袜黑色高跟鞋 | 中文字幕人妻无码一区二区三区 | 精品人妻人人做人人爽夜夜爽 | 熟妇人妻激情偷爽文 | 欧美丰满熟妇xxxx | 国产激情综合五月久久 | 国产三级久久久精品麻豆三级 | 丰满岳乱妇在线观看中字无码 | 国产69精品久久久久app下载 | 99久久无码一区人妻 | 人人妻人人澡人人爽欧美一区九九 | 亚洲 另类 在线 欧美 制服 | 撕开奶罩揉吮奶头视频 | 国产手机在线αⅴ片无码观看 | 亚洲成a人片在线观看无码3d | 呦交小u女精品视频 | 国产精品成人av在线观看 | www国产亚洲精品久久网站 | 人人妻在人人 | 色窝窝无码一区二区三区色欲 | 国产精品怡红院永久免费 | 在线亚洲高清揄拍自拍一品区 | 真人与拘做受免费视频一 | 亚洲中文字幕无码一久久区 | 色欲综合久久中文字幕网 | 国产成人无码区免费内射一片色欲 | 天天做天天爱天天爽综合网 | 午夜福利试看120秒体验区 | 久久亚洲中文字幕精品一区 | 欧洲欧美人成视频在线 | 久久久国产一区二区三区 | 网友自拍区视频精品 | 野外少妇愉情中文字幕 | 国产精品成人av在线观看 | 女高中生第一次破苞av | 一本久道久久综合狠狠爱 | 乱码午夜-极国产极内射 | 国产激情精品一区二区三区 | 欧美乱妇无乱码大黄a片 | 色一情一乱一伦一区二区三欧美 | 亚洲aⅴ无码成人网站国产app | 蜜桃臀无码内射一区二区三区 | 国产无遮挡又黄又爽免费视频 | 成人无码精品1区2区3区免费看 | 精品国产av色一区二区深夜久久 | 蜜桃视频插满18在线观看 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 久久人妻内射无码一区三区 | 伊人久久大香线蕉av一区二区 | 亚洲精品国产精品乱码不卡 | 日产精品99久久久久久 | 亚洲精品久久久久avwww潮水 | 国产又粗又硬又大爽黄老大爷视 | 国产尤物精品视频 | 亚洲成av人片天堂网无码】 | 欧美日韩精品 | 人妻无码久久精品人妻 | 欧美日本免费一区二区三区 | 永久黄网站色视频免费直播 | 成人片黄网站色大片免费观看 | 色噜噜亚洲男人的天堂 | 午夜无码区在线观看 | 无码人妻丰满熟妇区毛片18 | 中文精品无码中文字幕无码专区 | 77777熟女视频在线观看 а天堂中文在线官网 | 天天燥日日燥 | 久久久久亚洲精品男人的天堂 | 欧美人与禽zoz0性伦交 | 少妇性l交大片欧洲热妇乱xxx | 窝窝午夜理论片影院 | 日产精品99久久久久久 | 扒开双腿疯狂进出爽爽爽视频 | 亚洲国产精品成人久久蜜臀 | 一本加勒比波多野结衣 | 扒开双腿吃奶呻吟做受视频 | 丰满岳乱妇在线观看中字无码 | 国产激情一区二区三区 | 亚洲综合久久一区二区 | 久久精品人妻少妇一区二区三区 | 久久精品国产日本波多野结衣 | 国产精品毛多多水多 | 高中生自慰www网站 | 成 人影片 免费观看 | 亚洲s色大片在线观看 | 内射后入在线观看一区 | 97夜夜澡人人爽人人喊中国片 | 兔费看少妇性l交大片免费 | 国产亚洲人成a在线v网站 | 日本欧美一区二区三区乱码 | 欧美日韩色另类综合 | 精品一二三区久久aaa片 | 中文字幕无码乱人伦 | 激情五月综合色婷婷一区二区 | 亚洲理论电影在线观看 | 欧美日韩一区二区三区自拍 | 免费乱码人妻系列无码专区 | 国产亚洲精品久久久久久 | 中文字幕人妻丝袜二区 | 亚拍精品一区二区三区探花 | 人人妻人人澡人人爽精品欧美 | 国产电影无码午夜在线播放 | 无码人妻丰满熟妇区五十路百度 | 国产精品成人av在线观看 | 国产精品va在线观看无码 | 99久久精品日本一区二区免费 | 成人精品一区二区三区中文字幕 | 东京无码熟妇人妻av在线网址 | 亚洲伊人久久精品影院 | 久久综合给合久久狠狠狠97色 | 国産精品久久久久久久 | 国产麻豆精品精东影业av网站 | 鲁鲁鲁爽爽爽在线视频观看 | 国产精品va在线观看无码 | 1000部啪啪未满十八勿入下载 | 精品久久久无码人妻字幂 | av无码久久久久不卡免费网站 | www国产亚洲精品久久久日本 | 亚洲色欲色欲天天天www | 欧美人与禽zoz0性伦交 | 国产农村妇女高潮大叫 | 少妇性荡欲午夜性开放视频剧场 | 亚洲乱亚洲乱妇50p | 无码纯肉视频在线观看 | 色诱久久久久综合网ywww | 一个人看的www免费视频在线观看 | 领导边摸边吃奶边做爽在线观看 | 免费无码一区二区三区蜜桃大 | 精品国产一区二区三区四区在线看 | 装睡被陌生人摸出水好爽 | 国产人妻大战黑人第1集 | 日韩欧美成人免费观看 | 久激情内射婷内射蜜桃人妖 | 久久久久久a亚洲欧洲av冫 | 人妻熟女一区 | 内射后入在线观看一区 | 无码毛片视频一区二区本码 | 久久综合色之久久综合 | 亚洲成av人片天堂网无码】 | 国产精品久久久久久无码 | 日韩少妇内射免费播放 | 色欲久久久天天天综合网精品 | 国产乱人偷精品人妻a片 | 日韩 欧美 动漫 国产 制服 | 精品国产一区二区三区av 性色 | 亚洲中文字幕在线无码一区二区 | 欧美国产日韩亚洲中文 | 乌克兰少妇性做爰 | 激情五月综合色婷婷一区二区 | 成人无码精品1区2区3区免费看 | 97无码免费人妻超级碰碰夜夜 | 狠狠色丁香久久婷婷综合五月 | 国产精品永久免费视频 | 东京热无码av男人的天堂 | 免费乱码人妻系列无码专区 | 双乳奶水饱满少妇呻吟 | 曰本女人与公拘交酡免费视频 | 国产成人精品优优av | 小泽玛莉亚一区二区视频在线 | 成熟妇人a片免费看网站 | 国产免费久久精品国产传媒 | 暴力强奷在线播放无码 | 亚洲熟熟妇xxxx | 色综合视频一区二区三区 | 国产精品怡红院永久免费 | 日韩精品久久久肉伦网站 | 激情内射亚州一区二区三区爱妻 | 亚洲s码欧洲m码国产av | 国产精品久久久久久亚洲影视内衣 | 亚洲熟妇色xxxxx欧美老妇 | а√天堂www在线天堂小说 | 女人被男人爽到呻吟的视频 | 中文字幕av日韩精品一区二区 | 国产精品久久久久久亚洲毛片 | 欧美肥老太牲交大战 | 最近的中文字幕在线看视频 | 男女下面进入的视频免费午夜 | 少妇久久久久久人妻无码 | 玩弄少妇高潮ⅹxxxyw | 中国女人内谢69xxxx | 天干天干啦夜天干天2017 | aa片在线观看视频在线播放 | 麻豆蜜桃av蜜臀av色欲av | 久久综合激激的五月天 | 亚洲人亚洲人成电影网站色 | 日本xxxx色视频在线观看免费 | 蜜臀aⅴ国产精品久久久国产老师 | 成人无码视频在线观看网站 | 亚洲国产欧美日韩精品一区二区三区 | 男女下面进入的视频免费午夜 | 免费看男女做好爽好硬视频 | 亚洲精品国产a久久久久久 | 国产精品久久久久9999小说 | 国产高潮视频在线观看 | 久久久亚洲欧洲日产国码αv | 波多野结衣av一区二区全免费观看 | 亚洲国产成人av在线观看 | 欧美成人午夜精品久久久 | 久久婷婷五月综合色国产香蕉 | 日日摸夜夜摸狠狠摸婷婷 | 高潮喷水的毛片 | 亚洲国产精品久久人人爱 | 97久久超碰中文字幕 | 亚洲人亚洲人成电影网站色 | 爽爽影院免费观看 | 中文无码伦av中文字幕 | 亚洲国产精品无码久久久久高潮 | 国产极品美女高潮无套在线观看 | 一本一道久久综合久久 | 无码av中文字幕免费放 | 特黄特色大片免费播放器图片 | 国产亚洲精品久久久闺蜜 | 色情久久久av熟女人妻网站 | 最新国产乱人伦偷精品免费网站 | 色婷婷香蕉在线一区二区 | 国产亚洲精品久久久ai换 | 免费人成网站视频在线观看 | 日韩无码专区 | 久久亚洲日韩精品一区二区三区 | 日本精品久久久久中文字幕 | 免费国产成人高清在线观看网站 | 人妻少妇精品视频专区 | 欧美高清在线精品一区 | 日韩人妻系列无码专区 | 国产人妻人伦精品1国产丝袜 | 色综合久久88色综合天天 | 国产精品香蕉在线观看 | 成人免费无码大片a毛片 | 无码人妻丰满熟妇区五十路百度 | 亚洲中文字幕无码中字 | 曰韩无码二三区中文字幕 | 国产成人一区二区三区别 | 久久久久av无码免费网 | 精品人妻人人做人人爽夜夜爽 | 内射后入在线观看一区 | 婷婷五月综合缴情在线视频 | 最新国产乱人伦偷精品免费网站 | 免费视频欧美无人区码 | 高潮毛片无遮挡高清免费 | 牲欲强的熟妇农村老妇女视频 | 国产午夜无码精品免费看 | 久久午夜夜伦鲁鲁片无码免费 | 国产精品亚洲专区无码不卡 | 精品成在人线av无码免费看 | 日韩精品一区二区av在线 | 波多野42部无码喷潮在线 | 国产绳艺sm调教室论坛 | 国产亚洲精品久久久久久久久动漫 | 中文无码精品a∨在线观看不卡 | 精品无码一区二区三区的天堂 | 伊人色综合久久天天小片 | 国产香蕉97碰碰久久人人 | 亚洲一区二区观看播放 | av无码久久久久不卡免费网站 | 天堂亚洲免费视频 | 免费网站看v片在线18禁无码 | 国产suv精品一区二区五 | 亚洲天堂2017无码中文 | 亚洲 日韩 欧美 成人 在线观看 | 无码一区二区三区在线观看 | 成年美女黄网站色大免费视频 | 真人与拘做受免费视频一 | 久久久亚洲欧洲日产国码αv | 5858s亚洲色大成网站www | 国产热a欧美热a在线视频 | 最近免费中文字幕中文高清百度 | 久久天天躁夜夜躁狠狠 | 久久精品人人做人人综合 | 国精品人妻无码一区二区三区蜜柚 | 波多野42部无码喷潮在线 | 国精产品一区二区三区 | 国产精品久久久一区二区三区 | 少妇高潮一区二区三区99 | 国产精品久久国产精品99 | 99久久无码一区人妻 | 亚洲精品一区二区三区四区五区 | 无码帝国www无码专区色综合 | 午夜精品久久久久久久 | а天堂中文在线官网 | 亚洲国产精品成人久久蜜臀 | 久久精品国产一区二区三区 | 俄罗斯老熟妇色xxxx | 欧美阿v高清资源不卡在线播放 | 成人试看120秒体验区 | 超碰97人人做人人爱少妇 | 国产特级毛片aaaaaa高潮流水 | 亚洲熟妇自偷自拍另类 | 亚洲精品无码国产 | 色情久久久av熟女人妻网站 | 无套内射视频囯产 | 中文久久乱码一区二区 | 婷婷丁香六月激情综合啪 | 青草青草久热国产精品 | 日日天干夜夜狠狠爱 | 亚洲中文字幕久久无码 | 国产va免费精品观看 | 久久久精品国产sm最大网站 | 国产无av码在线观看 | 欧美日韩视频无码一区二区三 | 亚洲欧美日韩国产精品一区二区 | 未满成年国产在线观看 | 国产特级毛片aaaaaa高潮流水 | 欧美日本日韩 | 欧美 日韩 人妻 高清 中文 | 日韩人妻无码一区二区三区久久99 | 国产又爽又黄又刺激的视频 | 强奷人妻日本中文字幕 | 波多野结衣一区二区三区av免费 | 久久aⅴ免费观看 | 风流少妇按摩来高潮 | 国产高潮视频在线观看 | 午夜丰满少妇性开放视频 | 狠狠色丁香久久婷婷综合五月 | 精品国产乱码久久久久乱码 | 亚洲人成网站色7799 | 在线精品亚洲一区二区 | 国产成人av免费观看 | 国产精品久久国产三级国 | 成人无码视频在线观看网站 | 国产极品美女高潮无套在线观看 | 亚洲日本va午夜在线电影 | 99久久人妻精品免费二区 | 国产偷国产偷精品高清尤物 | 中文精品久久久久人妻不卡 | 国产熟妇高潮叫床视频播放 | 亚洲精品久久久久久一区二区 | 国内精品人妻无码久久久影院 | 亚洲欧美中文字幕5发布 | 午夜熟女插插xx免费视频 | 国产精品多人p群无码 | 熟女少妇在线视频播放 | 国产成人精品无码播放 | 永久免费精品精品永久-夜色 | 中文字幕无码av波多野吉衣 | 国产suv精品一区二区五 | 日韩精品a片一区二区三区妖精 | 国产精品无码mv在线观看 | 中文字幕人妻无码一夲道 | 成人女人看片免费视频放人 | 中文字幕乱码中文乱码51精品 | 国产无av码在线观看 | 在线精品国产一区二区三区 | 黄网在线观看免费网站 | 成人欧美一区二区三区黑人 | 又紧又大又爽精品一区二区 | 国产精品办公室沙发 | 久久久精品成人免费观看 | 少女韩国电视剧在线观看完整 | 久久精品成人欧美大片 | 欧美性黑人极品hd | 精品久久综合1区2区3区激情 | 国产成人无码午夜视频在线观看 | 国内丰满熟女出轨videos | 国产av无码专区亚洲awww | 国产成人无码一二三区视频 | 成人免费视频在线观看 | 蜜臀av在线播放 久久综合激激的五月天 | 久久精品国产一区二区三区 | 免费人成在线视频无码 | 日韩人妻少妇一区二区三区 | 亚洲综合无码久久精品综合 | 国产精品内射视频免费 | 无码午夜成人1000部免费视频 | 亚洲自偷精品视频自拍 | 黑人大群体交免费视频 | 国产成人亚洲综合无码 | 又大又黄又粗又爽的免费视频 | 亚洲成av人影院在线观看 | 成人毛片一区二区 | 亚洲精品一区三区三区在线观看 | 精品日本一区二区三区在线观看 | 日韩在线不卡免费视频一区 | 老熟妇乱子伦牲交视频 | 熟女少妇人妻中文字幕 | 九九热爱视频精品 | 国产精品无套呻吟在线 | 国产欧美亚洲精品a | 亚洲一区二区三区四区 | 久久久久久av无码免费看大片 | 欧美激情一区二区三区成人 | v一区无码内射国产 | 久久久久成人精品免费播放动漫 | 特黄特色大片免费播放器图片 | 未满小14洗澡无码视频网站 | 永久免费精品精品永久-夜色 | 精品国产成人一区二区三区 | 国产色xx群视频射精 | 国产精品久久久久久无码 | 国产美女极度色诱视频www | 国产成人无码区免费内射一片色欲 | 国产肉丝袜在线观看 | 午夜精品久久久久久久 | 亚洲午夜久久久影院 | 国产精品人人妻人人爽 | 熟妇人妻激情偷爽文 | 青青青手机频在线观看 | 亚洲中文字幕无码中文字在线 | 成年美女黄网站色大免费视频 | 亚洲精品国产精品乱码视色 | 日韩精品成人一区二区三区 | 国内老熟妇对白xxxxhd | 久久亚洲中文字幕精品一区 | 亚洲国产精品美女久久久久 | 欧美老妇交乱视频在线观看 | 亚无码乱人伦一区二区 | 亚拍精品一区二区三区探花 | 色综合久久88色综合天天 | 熟妇女人妻丰满少妇中文字幕 | 西西人体www44rt大胆高清 | 成人免费无码大片a毛片 | 国产绳艺sm调教室论坛 | 亚洲精品成人av在线 | 国产亚洲精品久久久久久久 | 亚洲成a人片在线观看无码3d | 国产成人人人97超碰超爽8 | 国产成人精品必看 | 日本丰满护士爆乳xxxx | 97夜夜澡人人爽人人喊中国片 | 欧美 亚洲 国产 另类 | 国内精品久久久久久中文字幕 | 国产69精品久久久久app下载 | 久久综合色之久久综合 | 欧美肥老太牲交大战 | 99riav国产精品视频 | 国产熟女一区二区三区四区五区 | 无遮无挡爽爽免费视频 | 精品一区二区三区无码免费视频 | 中文毛片无遮挡高清免费 | 成人动漫在线观看 | 亚洲一区二区三区 | 无码av岛国片在线播放 | 无码乱肉视频免费大全合集 | 日本丰满护士爆乳xxxx | 性欧美牲交在线视频 | 亚洲精品无码国产 | 乱码午夜-极国产极内射 | 蜜臀av在线播放 久久综合激激的五月天 | 学生妹亚洲一区二区 | 狠狠色噜噜狠狠狠7777奇米 | 无码国模国产在线观看 | 精品久久久久久人妻无码中文字幕 | 国产亚洲日韩欧美另类第八页 | 免费无码肉片在线观看 | 高清无码午夜福利视频 | 国产无套粉嫩白浆在线 | 亚洲人成无码网www | 国产精品久久久久久久9999 | 精品久久久中文字幕人妻 | 熟妇人妻中文av无码 | 成 人影片 免费观看 | 精品熟女少妇av免费观看 | 黑人大群体交免费视频 | 亚洲第一无码av无码专区 | 秋霞特色aa大片 | 人妻尝试又大又粗久久 | 亚洲色www成人永久网址 | 岛国片人妻三上悠亚 | 日欧一片内射va在线影院 | 成人免费视频视频在线观看 免费 | 精品人妻人人做人人爽 | 欧美日韩久久久精品a片 | av人摸人人人澡人人超碰下载 | 秋霞特色aa大片 | √天堂中文官网8在线 | 风流少妇按摩来高潮 | 天天拍夜夜添久久精品大 | 亚洲 日韩 欧美 成人 在线观看 | 成人综合网亚洲伊人 | 夜夜躁日日躁狠狠久久av | 人人超人人超碰超国产 | 国产精品久久精品三级 | 国产口爆吞精在线视频 | 人妻尝试又大又粗久久 | 久久久久久九九精品久 | 成熟女人特级毛片www免费 | 国产精品久久久久无码av色戒 | 未满成年国产在线观看 | 国产办公室秘书无码精品99 | 少妇厨房愉情理9仑片视频 | 色五月丁香五月综合五月 | 国内揄拍国内精品少妇国语 | www国产亚洲精品久久久日本 | 青青青手机频在线观看 | 国产免费无码一区二区视频 | 露脸叫床粗话东北少妇 | 熟妇人妻中文av无码 | 在线精品国产一区二区三区 | 国产 精品 自在自线 | 亚洲成a人一区二区三区 | 国产精品国产自线拍免费软件 | 青草视频在线播放 | 无码av免费一区二区三区试看 | 欧美 日韩 亚洲 在线 | 国产香蕉尹人视频在线 | 久激情内射婷内射蜜桃人妖 | 久久国产自偷自偷免费一区调 | 日本饥渴人妻欲求不满 | 国产精品久久久久9999小说 | 亚洲精品久久久久久久久久久 | 免费人成网站视频在线观看 | 久久99国产综合精品 | 亚洲国产精品无码久久久久高潮 | 亚洲成av人影院在线观看 | 成人精品天堂一区二区三区 | 天堂在线观看www | 精品熟女少妇av免费观看 | 国产人妻精品一区二区三区不卡 | 偷窥村妇洗澡毛毛多 | 亚洲色大成网站www | 少妇性俱乐部纵欲狂欢电影 | 亚洲人成无码网www | 亚洲区欧美区综合区自拍区 | 一本久久a久久精品vr综合 | 人妻少妇精品视频专区 | 亚洲国产欧美在线成人 | 中文精品无码中文字幕无码专区 | 日韩少妇白浆无码系列 | 国产午夜福利100集发布 | 国产成人无码a区在线观看视频app | 欧美大屁股xxxxhd黑色 | 亚洲小说春色综合另类 | 国产在线精品一区二区三区直播 | 波多野结衣一区二区三区av免费 | 女人被男人躁得好爽免费视频 | 欧美国产日韩亚洲中文 | 精品国产乱码久久久久乱码 | 国产日产欧产精品精品app | 丰满肥臀大屁股熟妇激情视频 | 亚洲 激情 小说 另类 欧美 | 国产在线一区二区三区四区五区 | 午夜理论片yy44880影院 | 国产欧美精品一区二区三区 | 无码一区二区三区在线观看 | 人人爽人人澡人人人妻 | 色妞www精品免费视频 | 久久精品女人的天堂av | 日本熟妇浓毛 | 无码国产激情在线观看 | 四虎影视成人永久免费观看视频 | 美女扒开屁股让男人桶 | 综合网日日天干夜夜久久 | 人妻体内射精一区二区三四 | 美女黄网站人色视频免费国产 | 内射爽无广熟女亚洲 | 国产 浪潮av性色四虎 | 99久久精品日本一区二区免费 | 亚洲一区二区三区香蕉 | 国产精品久久久久久无码 | 两性色午夜视频免费播放 | 午夜不卡av免费 一本久久a久久精品vr综合 | 国语精品一区二区三区 | 亚洲国产精品久久久久久 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 亚洲色大成网站www | 久久精品99久久香蕉国产色戒 | 亚洲中文字幕无码中文字在线 | 扒开双腿吃奶呻吟做受视频 | 亚洲国产精品一区二区第一页 | 秋霞成人午夜鲁丝一区二区三区 | 国产精品多人p群无码 | 日韩人妻无码中文字幕视频 | 大地资源网第二页免费观看 | 久久午夜无码鲁丝片 | 亚洲综合无码久久精品综合 | 无码人妻丰满熟妇区五十路百度 | 国产电影无码午夜在线播放 | 国产午夜无码视频在线观看 | 伊人久久大香线蕉午夜 | 久久zyz资源站无码中文动漫 | 爆乳一区二区三区无码 | 亚洲小说春色综合另类 | 国产亚洲人成在线播放 | 日韩欧美中文字幕在线三区 | 日韩视频 中文字幕 视频一区 | 人妻中文无码久热丝袜 | 国产无遮挡又黄又爽免费视频 | 久久久久久久女国产乱让韩 | 蜜桃视频韩日免费播放 | 国产激情综合五月久久 | 久久精品中文闷骚内射 | 老熟妇仑乱视频一区二区 | www国产亚洲精品久久网站 | 亚洲啪av永久无码精品放毛片 | 国产99久久精品一区二区 | 丰满人妻一区二区三区免费视频 | 免费播放一区二区三区 | 久久99精品国产麻豆 | 亚洲成av人在线观看网址 | 久久久精品欧美一区二区免费 | 漂亮人妻洗澡被公强 日日躁 | 黑人玩弄人妻中文在线 | 日本在线高清不卡免费播放 | 婷婷综合久久中文字幕蜜桃三电影 | 无码国内精品人妻少妇 | 天堂无码人妻精品一区二区三区 | 一本久道久久综合婷婷五月 | 久久久久免费精品国产 | 亚洲成av人影院在线观看 | 无码人妻丰满熟妇区五十路百度 | 亚洲欧洲日本综合aⅴ在线 | 最新版天堂资源中文官网 | 性生交片免费无码看人 | 夜先锋av资源网站 | 国产精品对白交换视频 | 国产午夜精品一区二区三区嫩草 | 亚洲中文字幕在线无码一区二区 | 成人综合网亚洲伊人 | 国产高潮视频在线观看 | 亚洲性无码av中文字幕 | 亚洲熟妇自偷自拍另类 | 亚洲精品鲁一鲁一区二区三区 | 成人免费视频视频在线观看 免费 | 国内丰满熟女出轨videos | 精品乱码久久久久久久 | 亚洲码国产精品高潮在线 | 精品国产一区二区三区四区在线看 | 成人一区二区免费视频 | 国产精品第一区揄拍无码 | 成人免费视频视频在线观看 免费 | 国产办公室秘书无码精品99 | 思思久久99热只有频精品66 | а√资源新版在线天堂 | 最新版天堂资源中文官网 | 少妇无码吹潮 | 国产精品美女久久久网av | 精品国产一区二区三区四区在线看 | 免费观看激色视频网站 | 久久精品成人欧美大片 | 波多野结衣aⅴ在线 | 国产99久久精品一区二区 | 无码一区二区三区在线观看 | 日韩av无码一区二区三区不卡 | 久久天天躁狠狠躁夜夜免费观看 | 免费网站看v片在线18禁无码 | 在线亚洲高清揄拍自拍一品区 | 国产精品久久久久久亚洲毛片 | 无码人妻丰满熟妇区毛片18 | 无码精品人妻一区二区三区av | 亚洲日韩av一区二区三区四区 | 日韩精品成人一区二区三区 | 国内精品九九久久久精品 | 亚洲国产欧美日韩精品一区二区三区 | 真人与拘做受免费视频 | 麻豆av传媒蜜桃天美传媒 | 国产办公室秘书无码精品99 | 精品国产一区二区三区av 性色 | 无码人中文字幕 | 国产精品自产拍在线观看 | 婷婷五月综合缴情在线视频 | 婷婷五月综合缴情在线视频 | 国产精品无码成人午夜电影 | 久久99精品久久久久婷婷 | 国产精品人人爽人人做我的可爱 | 少妇高潮喷潮久久久影院 | 久久国产精品精品国产色婷婷 | 精品aⅴ一区二区三区 | 中国女人内谢69xxxx | 欧美日韩综合一区二区三区 | 熟女少妇人妻中文字幕 | 国产精品无码成人午夜电影 | 亚洲欧美日韩国产精品一区二区 | 国产xxx69麻豆国语对白 | 四虎影视成人永久免费观看视频 | 人妻与老人中文字幕 | 99riav国产精品视频 | 久久精品人人做人人综合试看 | 99麻豆久久久国产精品免费 | 好屌草这里只有精品 | 在教室伦流澡到高潮hnp视频 | 高清不卡一区二区三区 | 一本大道久久东京热无码av | 欧美怡红院免费全部视频 | 2019午夜福利不卡片在线 | 欧美阿v高清资源不卡在线播放 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 99久久亚洲精品无码毛片 | 精品久久久久久人妻无码中文字幕 | 日本熟妇浓毛 | 四虎国产精品一区二区 | 天下第一社区视频www日本 | 亚洲人成网站色7799 | 国产精品多人p群无码 | 亚洲自偷自偷在线制服 | 熟妇人妻激情偷爽文 | 麻豆人妻少妇精品无码专区 | 人妻无码久久精品人妻 | 国产综合在线观看 | 日韩成人一区二区三区在线观看 | 波多野结衣av一区二区全免费观看 | 中文字幕精品av一区二区五区 | 对白脏话肉麻粗话av | 乱码av麻豆丝袜熟女系列 | 色婷婷综合中文久久一本 | 久久久久亚洲精品男人的天堂 | 国产色视频一区二区三区 | yw尤物av无码国产在线观看 | 亚洲日本va中文字幕 | 午夜成人1000部免费视频 | 99久久久国产精品无码免费 | 大肉大捧一进一出视频出来呀 | 色爱情人网站 | 2019午夜福利不卡片在线 | 精品一区二区三区无码免费视频 | 又粗又大又硬又长又爽 | 天下第一社区视频www日本 | 欧美性猛交内射兽交老熟妇 | 亚洲一区二区观看播放 | 免费人成在线观看网站 | 丰满少妇女裸体bbw | 亚洲熟悉妇女xxx妇女av | 99久久亚洲精品无码毛片 | 午夜无码人妻av大片色欲 | 久久久久久久人妻无码中文字幕爆 | 窝窝午夜理论片影院 | 亚洲爆乳精品无码一区二区三区 | 国产午夜亚洲精品不卡下载 | 欧美激情内射喷水高潮 | 少妇性l交大片欧洲热妇乱xxx | 亚洲精品午夜无码电影网 | 国产成人一区二区三区在线观看 | 久久久中文久久久无码 | 少妇无套内谢久久久久 | 国内精品九九久久久精品 | 免费中文字幕日韩欧美 | 亚洲精品一区三区三区在线观看 | 久久综合久久自在自线精品自 | 欧美丰满老熟妇xxxxx性 | 午夜精品一区二区三区在线观看 | 久久人人爽人人爽人人片ⅴ | 成在人线av无码免观看麻豆 | 国内少妇偷人精品视频 | 久久视频在线观看精品 | 无码一区二区三区在线 | а√天堂www在线天堂小说 | 无码人妻丰满熟妇区五十路百度 | 久久 国产 尿 小便 嘘嘘 | 欧美精品国产综合久久 | 国产精品亚洲一区二区三区喷水 | 国产成人午夜福利在线播放 | 九九在线中文字幕无码 | 性欧美熟妇videofreesex | 国产精品久久久久9999小说 | 日本大乳高潮视频在线观看 | 久久99热只有频精品8 | 欧美国产亚洲日韩在线二区 | 久久国语露脸国产精品电影 | 夜夜高潮次次欢爽av女 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 婷婷丁香六月激情综合啪 | 正在播放东北夫妻内射 | 国产国产精品人在线视 | 亚洲成在人网站无码天堂 | 亚洲熟悉妇女xxx妇女av | 丰满妇女强制高潮18xxxx | 日本熟妇浓毛 | 国产亲子乱弄免费视频 | 丰满人妻翻云覆雨呻吟视频 | 任你躁国产自任一区二区三区 | 秋霞成人午夜鲁丝一区二区三区 | 少妇激情av一区二区 | 小泽玛莉亚一区二区视频在线 | 久久亚洲精品中文字幕无男同 | 丰满少妇高潮惨叫视频 | 4hu四虎永久在线观看 | 性开放的女人aaa片 | 日韩在线不卡免费视频一区 | 蜜桃臀无码内射一区二区三区 | 沈阳熟女露脸对白视频 | 岛国片人妻三上悠亚 | 欧洲vodafone精品性 | 噜噜噜亚洲色成人网站 | 亚洲熟妇色xxxxx欧美老妇y | 18禁止看的免费污网站 | 免费观看黄网站 | 中文字幕色婷婷在线视频 | 日本一区二区三区免费高清 | 成年美女黄网站色大免费全看 | 久久精品丝袜高跟鞋 | 色欲av亚洲一区无码少妇 | 国产黄在线观看免费观看不卡 | 国产精品无码久久av | 亚洲一区二区三区在线观看网站 | 精品国产福利一区二区 | 一本大道伊人av久久综合 | 成人片黄网站色大片免费观看 | 67194成是人免费无码 | 日韩无套无码精品 | 天天摸天天透天天添 | 欧美精品免费观看二区 | 日本一卡二卡不卡视频查询 | 国产精品亚洲lv粉色 | 女高中生第一次破苞av | 一本色道久久综合狠狠躁 | 丁香啪啪综合成人亚洲 | 久久国产精品精品国产色婷婷 | 无码中文字幕色专区 | 无码人妻av免费一区二区三区 | 亚洲精品国产a久久久久久 | 国产亚洲精品久久久久久国模美 | 免费中文字幕日韩欧美 | 色妞www精品免费视频 | 少妇性l交大片欧洲热妇乱xxx | 精品无码av一区二区三区 | 性啪啪chinese东北女人 | 色窝窝无码一区二区三区色欲 | 亚洲色在线无码国产精品不卡 | 亚洲欧美中文字幕5发布 | 欧美xxxx黑人又粗又长 | 99久久99久久免费精品蜜桃 | 亚洲国产欧美日韩精品一区二区三区 | 内射后入在线观看一区 | 无码毛片视频一区二区本码 | 麻豆果冻传媒2021精品传媒一区下载 | 四虎4hu永久免费 | 18禁黄网站男男禁片免费观看 | 日韩视频 中文字幕 视频一区 | 亚洲一区二区三区国产精华液 | 久久国产精品偷任你爽任你 | 亚洲精品www久久久 | 欧美日本日韩 | 正在播放老肥熟妇露脸 | 欧美三级a做爰在线观看 | 日本一卡2卡3卡四卡精品网站 | 国产精品99爱免费视频 | 麻豆国产97在线 | 欧洲 | 精品国产一区二区三区四区在线看 | 97久久国产亚洲精品超碰热 | 国产精品a成v人在线播放 | 日日麻批免费40分钟无码 | 亚洲精品无码国产 | 成人性做爰aaa片免费看 | 色综合久久88色综合天天 | 在线精品国产一区二区三区 | 97se亚洲精品一区 | 成人无码精品1区2区3区免费看 | 国产卡一卡二卡三 | 亚洲精品综合五月久久小说 | 波多野42部无码喷潮在线 | 老熟女重囗味hdxx69 | 国产午夜无码视频在线观看 | 性做久久久久久久久 | 乱人伦中文视频在线观看 | 中文字幕无码热在线视频 | 亚洲欧洲无卡二区视頻 | 人妻少妇精品无码专区动漫 | 国产精品.xx视频.xxtv | 红桃av一区二区三区在线无码av | 亚洲国产av精品一区二区蜜芽 | 亚洲中文字幕在线无码一区二区 | 一本久久伊人热热精品中文字幕 | 国产特级毛片aaaaaaa高清 | 国产精品无码永久免费888 | 131美女爱做视频 | 中文字幕无码乱人伦 | 亚洲欧美日韩综合久久久 | 亚洲日本一区二区三区在线 | 国产无av码在线观看 | 国产尤物精品视频 | 中文字幕无码av波多野吉衣 | 日本丰满熟妇videos | 人妻与老人中文字幕 | 波多野结衣一区二区三区av免费 | 久久婷婷五月综合色国产香蕉 | 中国女人内谢69xxxxxa片 | aa片在线观看视频在线播放 | 成人性做爰aaa片免费看不忠 | 亚洲热妇无码av在线播放 | 日本欧美一区二区三区乱码 | 啦啦啦www在线观看免费视频 | 一个人看的www免费视频在线观看 | 午夜福利电影 | 亚欧洲精品在线视频免费观看 | 亚洲午夜久久久影院 | 亚洲aⅴ无码成人网站国产app | 亚洲小说图区综合在线 | 精品久久久久久人妻无码中文字幕 | 无码中文字幕色专区 | 波多野结衣av在线观看 | 国产疯狂伦交大片 | 最新国产乱人伦偷精品免费网站 | 欧美日韩在线亚洲综合国产人 | 欧美日韩久久久精品a片 | 精品一区二区三区无码免费视频 | 国产黑色丝袜在线播放 | 亚洲欧美综合区丁香五月小说 | 99麻豆久久久国产精品免费 | 久久久久久a亚洲欧洲av冫 | 欧美日韩色另类综合 | 女人高潮内射99精品 | 午夜不卡av免费 一本久久a久久精品vr综合 | 国产一精品一av一免费 | 亚洲а∨天堂久久精品2021 | 激情内射日本一区二区三区 | 精品少妇爆乳无码av无码专区 | 性欧美熟妇videofreesex | 国产精品人人妻人人爽 | 黑人巨大精品欧美一区二区 | 3d动漫精品啪啪一区二区中 | 午夜精品久久久内射近拍高清 | 日本饥渴人妻欲求不满 | 国产高潮视频在线观看 | 中文字幕日产无线码一区 | 97精品国产97久久久久久免费 | 日韩 欧美 动漫 国产 制服 | 熟妇人妻无乱码中文字幕 | 欧美阿v高清资源不卡在线播放 | 丰满护士巨好爽好大乳 | 亚洲 激情 小说 另类 欧美 | 影音先锋中文字幕无码 | 亚洲 欧美 激情 小说 另类 | 丰满妇女强制高潮18xxxx | 久久精品国产99久久6动漫 | 国产综合在线观看 | 亚洲欧美综合区丁香五月小说 | 乌克兰少妇xxxx做受 | 欧美成人高清在线播放 | 亚洲人成影院在线无码按摩店 | 精品一区二区不卡无码av | 午夜丰满少妇性开放视频 | 无码国产色欲xxxxx视频 | 最近免费中文字幕中文高清百度 | 欧美亚洲国产一区二区三区 | 国产精品二区一区二区aⅴ污介绍 | 又大又硬又黄的免费视频 | 国内精品人妻无码久久久影院蜜桃 | 无码纯肉视频在线观看 | 无码国产乱人伦偷精品视频 | 中文字幕乱码人妻无码久久 | 日本精品久久久久中文字幕 | 亚洲精品久久久久久久久久久 | 四虎影视成人永久免费观看视频 | 精品国产aⅴ无码一区二区 | 国产精品自产拍在线观看 | 好屌草这里只有精品 | 日本丰满熟妇videos | 免费网站看v片在线18禁无码 | 国产乱码精品一品二品 | 国产又粗又硬又大爽黄老大爷视 | 国产在线精品一区二区高清不卡 | 国产在热线精品视频 | 日产精品高潮呻吟av久久 | 日本爽爽爽爽爽爽在线观看免 | 樱花草在线播放免费中文 | 暴力强奷在线播放无码 | 国产精品爱久久久久久久 | 日韩人妻无码一区二区三区久久99 | 丰满人妻一区二区三区免费视频 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产精品久久久久久久9999 | 天天av天天av天天透 | 人人妻人人澡人人爽人人精品 | 日本熟妇人妻xxxxx人hd | 国产成人精品三级麻豆 | 国内老熟妇对白xxxxhd | 亚洲 欧美 激情 小说 另类 | 国产性生大片免费观看性 | 中文字幕日韩精品一区二区三区 | 国产精品无套呻吟在线 | 少妇的肉体aa片免费 | 国产精品免费大片 | 亚洲精品成人av在线 | 亚洲区欧美区综合区自拍区 | 日本丰满熟妇videos | 国产麻豆精品一区二区三区v视界 | 国产精品久久精品三级 | 无码免费一区二区三区 | 精品人人妻人人澡人人爽人人 | 牛和人交xxxx欧美 | 国产亲子乱弄免费视频 | 色噜噜亚洲男人的天堂 | 亚洲第一无码av无码专区 | 国产两女互慰高潮视频在线观看 | 内射老妇bbwx0c0ck | 国产无套粉嫩白浆在线 | 精品 日韩 国产 欧美 视频 | 亚洲精品综合一区二区三区在线 | 丰满肥臀大屁股熟妇激情视频 | 久久精品人妻少妇一区二区三区 | 精品无码国产一区二区三区av | 久久精品人人做人人综合试看 | 国产综合久久久久鬼色 | 亚洲日韩乱码中文无码蜜桃臀网站 | 精品夜夜澡人妻无码av蜜桃 | 青草青草久热国产精品 | 九九综合va免费看 | 亚洲欧美国产精品久久 | 国产乱子伦视频在线播放 | 少妇高潮一区二区三区99 | 日韩 欧美 动漫 国产 制服 | 国产一区二区三区日韩精品 | 国产亚洲精品久久久闺蜜 | 久久综合给合久久狠狠狠97色 | 久久精品中文闷骚内射 | 免费无码一区二区三区蜜桃大 | 午夜男女很黄的视频 | 国产亚洲精品久久久久久久 | 亚洲s色大片在线观看 | 亚洲热妇无码av在线播放 | 午夜肉伦伦影院 | 丁香花在线影院观看在线播放 | 亚洲欧洲日本综合aⅴ在线 | 成人精品一区二区三区中文字幕 | 亚洲乱码日产精品bd | 麻豆果冻传媒2021精品传媒一区下载 | 人妻尝试又大又粗久久 | 日本丰满护士爆乳xxxx | 久久精品女人天堂av免费观看 | 精品人人妻人人澡人人爽人人 | 日韩av无码中文无码电影 | 国产情侣作爱视频免费观看 | 精品无人国产偷自产在线 | 中文无码成人免费视频在线观看 | 2020久久超碰国产精品最新 | 欧美日韩在线亚洲综合国产人 | 日本xxxx色视频在线观看免费 | 欧美日韩一区二区三区自拍 | 蜜桃视频插满18在线观看 | 青草视频在线播放 | 国产精品va在线观看无码 | 亚洲欧洲无卡二区视頻 | 国产av无码专区亚洲a∨毛片 | 国产特级毛片aaaaaaa高清 | 97久久精品无码一区二区 | 成人免费无码大片a毛片 | 97精品人妻一区二区三区香蕉 | 久久综合久久自在自线精品自 | 久久亚洲a片com人成 | 亚洲精品成a人在线观看 | 荫蒂被男人添的好舒服爽免费视频 | 精品亚洲成av人在线观看 | 国产亚洲精品久久久久久久 | 帮老师解开蕾丝奶罩吸乳网站 | 国产av久久久久精东av | 国产激情综合五月久久 | 午夜不卡av免费 一本久久a久久精品vr综合 | 日本成熟视频免费视频 | 国产特级毛片aaaaaaa高清 | 无码国模国产在线观看 | 国产在线精品一区二区高清不卡 | 人妻人人添人妻人人爱 | 国产午夜福利100集发布 | 色一情一乱一伦一视频免费看 | 青草青草久热国产精品 | 帮老师解开蕾丝奶罩吸乳网站 | 国产一区二区三区日韩精品 | 久久国产36精品色熟妇 | 小泽玛莉亚一区二区视频在线 | 国产精品无码久久av | 亚洲乱码中文字幕在线 | 无码精品国产va在线观看dvd | 撕开奶罩揉吮奶头视频 | 亚洲狠狠色丁香婷婷综合 | 亚洲日本va午夜在线电影 | 熟妇人妻中文av无码 | 日韩欧美中文字幕公布 | 老子影院午夜精品无码 | 日本一卡2卡3卡四卡精品网站 | 男人扒开女人内裤强吻桶进去 | 国产精品无码一区二区桃花视频 | 强开小婷嫩苞又嫩又紧视频 | 欧美丰满老熟妇xxxxx性 | 99久久精品无码一区二区毛片 | 欧美人与禽猛交狂配 | 国产美女极度色诱视频www | 亚洲精品国产品国语在线观看 | www成人国产高清内射 | 国产成人无码a区在线观看视频app | 免费观看激色视频网站 | 熟女俱乐部五十路六十路av | 国产精品igao视频网 | 18精品久久久无码午夜福利 | 一个人看的视频www在线 | 婷婷五月综合缴情在线视频 | 中文无码成人免费视频在线观看 | 熟妇人妻无乱码中文字幕 | 最近中文2019字幕第二页 | 国产高清不卡无码视频 | 黑人玩弄人妻中文在线 | 亚洲精品www久久久 | 啦啦啦www在线观看免费视频 | 婷婷六月久久综合丁香 | 国产精品久久久久久无码 | 67194成是人免费无码 | 粗大的内捧猛烈进出视频 | 国产手机在线αⅴ片无码观看 | 两性色午夜视频免费播放 | 久久人人爽人人爽人人片av高清 | 色诱久久久久综合网ywww |