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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSP快速入门教程——全十讲

發布時間:2025/3/21 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSP快速入门教程——全十讲 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一講(參考《Java?Web程序設計基礎教程》第1章)
1 JSP 和?Java的關系

?? 一般Java指的標注版?Java SE
?? 另外兩個版本:Java EE?和 Java ME

?? JSP屬于Java EE的一部分。
?? Java EE:
???? 組件:Web層組件(JSP+Servlet)+業務層組件(EJB)
???? 服務:JNDI JDBC RMI JAAS JavaMail等等

?? Java EE包括2個體系:標準(上面介紹的)+流行(Struts+hibernate+spring)
?? 兩套體系都是JSP+Servlet為基礎。

2 JSP會涉及哪些內容
??
?? JSP語法基礎(Java+HTML):
?????? 對于Java,需要掌握Java的基本語法(類定義 對象定義和使用 常用類庫java.lang.*,java.util.*)
?????? 對于HTML,主要表單元素(輸入)+表格(顯示信息)+基本HTML
?? JSTL,標準標簽庫,用于輸出和控制
?? EL,通常與JSTL一起使用,主要用于輸出
?? Servlet,幾乎所有介紹JSP的書和課程都包含Servlet,因為JSP實際上指的是Java Web開發。用Servlet主要是控制器。
?? JDBC,對數據庫的訪問。
?? JavaBean(Java類)

3 JSP的運行環境

?? JDK
?? 服務器:我們用Tomcat。其它的服務器:IBM Websphere + BEA WebLogic? + JBoss(免費的) + GlassFish(新出的Java EE 5服務器)

4 JSP的開發環境
?
?? 頁面:DreamWeaver開發頁面
?? 代碼:本文編輯器 Eclipse NetBeans JBuilder
?? 注:我們采用記事本。

5 Tomcat文件夾
?
?? webapps? 主要各個應用,編寫的每個應用(網站)都可以放在這個位置
?? bin? 這個是啟動服務器的相關文件,tomcat6用于命令行方式的啟動,tomcat6w用于windows方式的啟動
?? conf? 用于配置,常用的是server.xml 另外一個是web.xml
?? work 存放臨時文件
?? logs? 系統運行時候的日志信息

6 實例:hello.jsp

?? 創建一個應用,實際上需要在webapps中創建文件夾,bookstore,相當于應用的名字

?? 文件夾中要創建一個子文件夾WEB-INF,這個每個應用web應用都需要的。

?? 在WEB-INF中需要web.xml,是web應用的配置文件,還應該有classes和lib子文件夾(存放類文件)

?? JSP文件和HTML文件直接放在bookstore下面。

?? hello.jsp文件內容如下:
<%@ page contentType="text/html;charset=gb2312"%>
<!-- 上面的代碼聲明文檔類型和編碼方式,每個JSP文件基本上都會有 -->
<html>
?? <head>
????? <title>第一個JSP程序</title>
?? </head>

?? <body>
????? Hello,晚上好!
?? </body>???
</html>

?? 先啟動服務器:
?? 訪問程序:http://127.0.0.1:8080/bookstore/hello.jsp
?? http表示協議
?? 127.0.0.1表示主機IP地址,也可以寫主機名字
?? 8080表示服務的端口,上網的時候不用輸入端口,因為采用了默認的端口,默認端口80。
?? bookstore表示應用,是應用的名字
?? hello.jsp就是資源

7 JSP的運行原理

?? 過程:
????? 首先啟動服務器,并且要保證應用在服務器上(把應用放在webapps下面,會自動加載)
????? 在客戶端通過瀏覽器發送請求(在地址欄中輸入地址)
????? 服務器接收到請求之后,查找有沒有這個文件對應的Java文件的對象。如果沒有這個對象,需要創建(先把JSP文件轉換成Java文件,
????? 編譯成.class文件,加載類并創建對象),然后調用對象的相應方法,方法完成對用戶的響應,通常是輸出的html代碼)
????? 客戶端接收到的是html代碼,瀏覽器解析這個代碼生成頁面。
???
8 表格的語法
?? 開始標志:<table>??
?? 結束標志:</table>
?? 中間是行,每行是一個<tr>? </tr>
?? 每行之間是列,每一列對應<td> </td>
?? <td></td>之間的內容就是每個表格中的信息

******http://blog.csdn.NET/javaeeteacher*******************************************************************
*************************************************第一講結束************************************************
***********************************************************************李老師的一畝三分地******************


第二講(參考《Java Web程序設計基礎教程》第2章)
1、form
?? 只要是涉及向服務器提交信息,都應該使用form。
?? 基本語法結構:
?? <form action="目標文件" method="get|post">
????? 各種表單元素
?? </form>
?? action屬性決定的目標文件來對用戶提交的信息進行處理。

2、常用的表單元素

?? 單行文本框:用于輸入少量的信息。
?? 基本語法格式:
?? <input type="text" name="名字" value="值">
?? type="text"就說明這是單行文本框;
?? name指出文本框的名字,最好不要用漢字,最好使用有意義的名字;
?? value指出默認值,如果沒有默認值,可以不要value屬性,value屬性經常在修改的時候使用。
?? 注意:如果有格式要求,要明確的告訴用戶。


?? 密碼框:用于輸入密碼。
?? 基本的語法格式:
?? <input type="password" name="名字" value="值">
?? 注意:設置密碼的時候,應該使用確認密碼,應該有兩個密碼框。


?? 提交按鈕:當點擊它的時候,會把輸入的信息提交給服務器。
?? 基本語法格式:
?? <input type="submit" value="值">
?? type應該為submit,value是顯示在按鈕上面的信息。

??
?? 復位按鈕:當點擊它的時候,會把各個表單元素的值恢復到默認值。
?? 基本語法格式:
?? <input type="reset" value="值">
??

?? 普通按鈕:也可以完成提交,還可以完成方法的調用。
?? 基本語法格式:
?? <input type="button" value="值">


?? 單選按鈕:通用用于在多個選項中選擇一個。
?? 基本語法格式:
?? <input type="radio" name="名字" value="值">
?? 這個表示一個單選按鈕,并且僅僅是一個按鈕。
?? 例,選擇性別:
?? <input type="radio" name="sex" value="1" checked>男
?? <input type="radio" name="sex" value="0">女
?? 如果希望在多個選項中選擇一個(有互斥性),必須讓他們的名字一致。


?? 復選框:用于多選。
?? 基本的語法格式:
?? <input type="checkbox" name="名字" value="值">
?? 顯示給用戶的信息與提交給服務器的信息沒有關系。
?? 如果希望多個選項是一組,應該使用相同的名字。


?? 下拉列表:用于選擇,可以單選,也可以多選。
?? 基本語法格式:
?? <select name="名字">
????? <option value="1" selected>1</option>
????? <option value="2">2</option>
????? ...
?? </select>
?? 每個選項使用一個option,使用value屬性指出該選項的值,在<option>和</option>之間是顯示給用戶的值。


?? 文本域:用于輸入大量的信息。
?? 基本語法格式:
?? <textarea name="名字" cols="列數" rows="行數">
???? 默認值
?? </textarea>
?? 要為這個文本域賦默認值,需要把值放在開始標志和結束標志之間,而不是使用value屬性。

3、完成輸入的時候應該注意的問題
?? 對格式的要求必須明確,包括長度、數字、日期、email、電話、必添。
?? 能夠從系統中獲取的信息不要讓用戶提供,例如當前時間。
?? 能夠選擇的信息不要讓用戶輸入。
?? 按照信息的重要程度安排表單元素在界面中的位置。

4、對用戶輸入信息進行驗證
?? 要用JavaScript,使用下面的標記:
?? <script language="javascript">
????? //JavaScript代碼
?? </script>

?? 要寫方法
?? function check(){
?? }
?? 方法可以不用定義返回值,但是可以有返回值

?? 獲取用戶輸入的值:
?? document.form1.username.value
?? document表示當前文檔,form1表示表單的名字,username表示該表單中表單元素的名字,value表示得到值

?? 把表單提交與方法關聯:可以使用表單的onSubmit事件。
?? onSubmit="return check();"

?? 例:
<script language="javascript">
?? function check(){
????? username = document.form1.username.value;
????? if(username.length<6 || username.length>8){
???????? alert("用戶名長度不合適!");
???????? return false;
????? }else{
???????? return true;
????? }
?? }
</script>

?? 使用button的onClick事件進行驗證:
?? 首先要把提交按鈕修改成普通按鈕;
?? 在普通按鈕上增加事件:onClick="javascript:check()"?
?? 在驗證成功的時候,提交表單:document.form1.submit();

******http://blog.csdn.Net/javaeeteacher*******************************************************************
*************************************************第二講結束************************************************
***********************************************************************李老師的一畝三分地******************

第三講(參考《Java Web程序設計基礎教程》第3.4章)
1、include指令
??? 作用:把多個文件中需要共享的代碼放在單獨的文件中,然后在需要的時候使用該指令引入這個文件。典型的應用,把網站的頭部和版權信息放在單獨的文件中,在其他文件中包含這兩部分。
??? 基本的語法格式:
??????? <%@ include file="目標文件"%>
??? file屬性指出目標文件。
??? 例:把index.jsp和register.jsp中的共同部分做成單獨的文件header.jsp(后綴名不一定是.jsp),然后在index.jsp和register.jsp中調用。
??? header.jsp中的內容如下:

<%@ page contentType="text/html;charset=gb2312"%>
<table? align="center" width=780>
?? <tr height="100">
????? <td align="center"><h1>電子書店</h1></td>
?? </tr>
?? <tr>
????? <td align="center">
???????? <!-- 超鏈接的基本格式? -->
???????? <a href="register.jsp">注冊</a>?
???????? 最新圖書 最暢銷圖書 查詢圖書 修改密碼 查詢訂單 購物車</td>
?? </tr>
?? <tr>
????? <td><hr></td>
?? </tr>

在index.jsp中引入header.jsp的代碼:
<%@ page contentType="text/html;charset=gb2312"%>

<%@ include file="header.jsp"%>

?? <tr>
????? <td>
???????? <table>
???????????? <tr>
???????????????? <td>
???????????????????? <!--登錄界面代碼-->
???????????????????? <form action="login_process.jsp" method="post">
??????????????????????? <!-- 主要是涉及提交信息,就要用到form,action決定了提交給哪個文件處理 -->
??????????????????????? 用戶名:<input type="text" name="username" value="aaa"> <br>
??????????????????????? 口令:<input type="password" name="userpass" value=""> <br>?
??????????????????????? <input type="submit" value="登錄"><input type="reset" value="重寫">
???????????????????? </form>
???????????????? </td>
???????????????? <td>
????????????????????? 歡迎光臨我們的書店!
???????????????? </td>
???????????? </tr>
???????? </table>
????? </td>
?? </tr>
</table>
?
運行過程:在轉換的時候,當遇到include指令的時候會把include指令指向的目標文件的內容拷貝到當前位置,替換include指令,這樣最后形成一個文件。然后才編譯形成class文件,然后運行。

2、<jsp:forward>標簽

?? 我們使用登錄功能的模擬來介紹。
?? 首先,使用Java代碼完成判斷,使用<jsp:forward>完成跳轉,代碼:
<%@ page contentType="text/html;charset=gb2312"%>

<%
?? // 先獲取用戶輸入的用戶名和口令,然后判斷是否合法
?? String username = request.getParameter("username");

?? String userpass = request.getParameter("userpass");

?? if(username.equals("zhangsan") && userpass.equals("zhangsan"))
?? {
%>

?????? <jsp:forward page="success.jsp"/>
<%
?? }else{
%>
?????? <jsp:forward page="index.jsp"/>
<%
?? }
%>

?? 注意:不管跳轉到success.jsp還是index.jsp,地址欄都是處理文件的名字。
?? <jsp:forward>的語法格式:
?????? <jsp:forward page="目標文件"/>
?? page屬性指出轉向的目標文件。最后的結束符為“/>”,斜杠不能省略。

?? 另外一個可以完成跳轉的方式是采用response.sendRedirect()。response和request一樣,都是內容對象,可以直接訪問。修改上面的文件:
<%@ page contentType="text/html;charset=gb2312"%>

<%
?? // 先獲取用戶輸入的用戶名和口令,然后判斷是否合法
?? String username = request.getParameter("username");

?? String userpass = request.getParameter("userpass");

?? if(username.equals("zhangsan") && userpass.equals("zhangsan"))
?? {
?????? response.sendRedirect("success.jsp");
?? }else{
?????? response.sendRedirect("index.jsp");
?? }
%>

?? <jsp:forward>和response.sendRedirect的運行效果相同(針對上面的這個例子)。
?? 相同點:都是轉向目標文件。
?? 不同點:地址欄中顯示的內容是不相同的,如果使用<jsp:forward>,地址欄顯示當前文件的名字,如果使用response,地址欄顯示的是轉向后的文件的名字。執行過程不同:使用<jsp:forward>相當于一次請求,使用response相當于兩次請求。
?? 使用<jsp:forward>的情況:
?? index.jsp中輸入用戶名和口令,提交給login_process.jsp,服務器保存用戶的輸入信息,使用<jsp:forward>轉向success.jsp之后,success.jsp還可以訪問用戶輸入的信息,因為輸入同一次請求。
?? 使用response的請求:
?? index.jsp中輸入用戶名和口令,提交給login_process.jsp,服務器保存用戶的輸入信息,使用response的sendRedirect方法相當于重新向服務器發送一次請求,這樣上次的請求內容(用戶名和口令)就不能共享了。
???
3、<jsp:include>標簽
?? 把index.jsp中<%@ include="header.jsp"%>替換成<jsp:include page="header.jsp"/>
?? 從運行效果上相同。
?? 不同點:1、兩個文件,目標文件是單獨運行的,當前文件運行到<jsp:include>標簽的時候,轉向執行標簽所指向的目標文件,執行之后返回繼續標簽之后的內容。
?? 2、<%@ include%>指令是在編譯(轉換)的時候使用,<jsp:include>在運行的時候起作用。

?? 程序中如何選用:要導入的內容是不是每次都執行,如果每次都執行的話,應該使用<%@ include%>,如果是在特定的條件下,應該使用<jsp:include>。例如,登錄之后要么轉向success.jsp要么轉向index.jsp,如果在程序中使用導入,應該用<jsp:include>。

4、<jsp:include>和<jsp:forward>區別

?? 把login_process.jsp中的<jsp:forward>替換成<jsp:include>:
<%@ page contentType="text/html;charset=gb2312"%>

<%
?? // 先獲取用戶輸入的用戶名和口令,然后判斷是否合法
?? String username = request.getParameter("username");

?? String userpass = request.getParameter("userpass");

?? if(username.equals("zhangsan") && userpass.equals("zhangsan"))
?? {
%>

?????? <jsp:include page="success.jsp"/>
<%
?? }else{
%>
?????? <jsp:include page="index.jsp"/>
<%
?? }
%>
??? 運行效果是相同的。但是有不同點,修改代碼如下:
<%@ page contentType="text/html;charset=gb2312"%>
處理文件的前半部分<br>
<%
?? // 先獲取用戶輸入的用戶名和口令,然后判斷是否合法
?? String username = request.getParameter("username");

?? String userpass = request.getParameter("userpass");

?? if(username.equals("zhangsan") && userpass.equals("zhangsan"))
?? {
%>

?????? <jsp:include page="success.jsp"/>
<%
?? }else{
%>
?????? <jsp:include page="index.jsp"/>
<%
?? }
%>
<br>處理文件的后半部分

兩次運行結果不相同。
分析原因:
?? <jsp:forward>:先執行標簽之前的內容,遇到標簽的時候轉向執行目標文件,執行完不返回,顯示的內容為目標文件的內容,標簽之前的內容執行,但是不顯示。標簽之后的內容不會執行,當然更不會顯示。
?? <jsp:include>:先執行標簽之前的內容,遇到標簽轉向執行目標文件,執行完返回,繼續執行標簽之后的內容,顯示的內容為:標簽之前的內容+目標文件的內容+標簽之后的內容,標簽的前后都執行,都顯示。

5、使用標準標簽庫(JSTL)完成登錄的判斷過程
?? 如何使用標簽標簽庫:(1)得到標簽庫的實現文件,jstl.jar和standard.jar,放在WEB-INF下面的lib子文件夾。(2)在JSP文件中要聲明標簽庫,通過tablib指令進行聲明:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> (3)使用標簽:<c:if test="">? </c:if>
?? 要完成判斷,可以使用標簽標簽庫中的c:if標簽。標簽的基本格式:
?? <c:if? test="">條件成功要執行的內容</c:if>
?? test表示測試條件,測試條件可以寫常量,可以是表達式語言(EL,主要用于輸出),主要使用表達式語言。
?? 例如:要判斷用戶提交的用戶名和口令是否是zhangsan。
?? <c:if test="${param.username==/"zhangsan/" && param.userpass==/"zhangsan/"}">?
?????? <jsp:forward page="success.jsp"/>?
?? </c:if>

?? 注意:添加完標準標簽庫之后,需要重新啟動服務器。

6、使用session保存登錄后的信息
?? 在網站中設置了application session request pageContext對象保存內存中的信息。application是網站所有用戶共享的存儲變量的位置。session是網站為每個訪問網站的人創建的,每個用戶對應一個session,也是存放變量的位置。request是為每個用戶的每次請求設置的存儲信息的位置,每次訪問會有一個request。pageContext是每次訪問的每個頁面對應一個。常用的session和request。多次訪問之間要共享信息可以使用session,如果在某次訪問的多個頁面之間共享信息使用request(例如,使用jsp:forwrad轉向的文件和當前文件就屬于同一次請求)。

?? 登錄后的用戶信息應該放在session中。

?? 要在這些范圍中保存信息,可以使用標準標簽庫中的<c:set>標簽完成。
?? <c:set>的基本語法格式:
?? <c:set var="變量的名字" scope="范圍" value="值"/>
???
?? 要把用戶名放到session中:
?? <c:set var="username" scope="session" value="${param.username}"/>

******http://blog.csdn.net/javaeeteacher*******************************************************************
*************************************************第三講結束************************************************
***********************************************************************李老師的一畝三分地******************

第四講(參考《Java Web程序設計基礎教程》第6章)
1、對Servlet的理解

??? Servlet是一種Java類。
??? Servlet能夠完成與JSP相同的功能。能夠接收用戶的請求,能夠調用功能類的方法,可以對用戶進行響應。
??? Servlet和JSP同屬于Java EE中Web層組件。

2、如何編寫一個Servlet

??? 假設:該Servlet的功能為顯示歡迎信息。

??? Java文件的編寫過程:(1)聲明包 (2)引入用到的其他的類 (3)類的編寫
??? 對于類:(1)類頭——修飾符 class關鍵字 類名 繼承父類 實現接口
??????????? (2)類體——成員變量 構造方法 對屬性進行操作的方法 功能類方法
??? 對于成員變量:修飾符 類型 變量名(對象名)?
??? 對于方法(不包括構造方法):修飾符 返回值類型 方法名 參數列表 異常列表 方法體
??? 對于方法體:變量的聲明 各種運算 調用其他的方法 返回結果

??? (1)聲明包,假設包名為servlet

package servlet;

??? (2)引入用到的類,javax.servlet.* javax.servlet.http.* java.io.*
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

??? (3)類頭的定義
??? 訪問控制符:public
??? 類名:HelloServlet
??? 繼承父類:javax.servlet.http.HttpServlet?
??? 實現接口:沒有要實現的接口

public class HelloServlet extends HttpServlet

??? (4)方法的定義
??? 主要的方法:init方法(用于初始化) destroy方法(釋放資源) doGet或者doPost(完成主要功能)
??? 通常主要實現doGet方法或者doPost方法,分別對應客戶端的get請求和post請求。


public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
{
??? // 設置編碼方式
??? response.setContentType("text/html;charset=gb2312");
??? // 得到輸出流對象
??? PrintWriter out = response.getWriter();
??? out.println("歡迎學習JSP!");
}

public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
{
?? doGet(request,response);
}

3、編譯存放

?? 需要用到javax.servlet.*和javax.servlet.http.*,兩個包的實現在tomcat下面的lib中,名字為servlet-api.jar。
?? 放在(編譯后的Servlet):WEB-INF/classes
?? 配置path: 把C:/Program Files/Java/jdk1.6.0/bin添加到path中,但是不能破壞原有的路徑。
?? 配置classpath:把C:/Program Files/Apache Software Foundation/Tomcat 6.0/lib/servlet-api.jar;添加到classpath中。
?? 編譯:在命令行方式下進入到classes目錄,然后使用 javac -d . HelloServlet.java?? -d表示生成包的路徑,.表示在當前位置生成。

4、配置Servlet
?? 配置文件及位置:WEB-INF下面的web.xml。
?? 配置包括兩個方面:Servlet的聲明 以及 Servlet訪問方式的聲明
?? Servlet的聲明:
?? <servlet>
????? <servlet-name>hello</servlet-name>
????? <servlet-class>servlet.HelloServlet</servlet-class>
?? </servlet>
???
?? 其中,<servlet-name>表示這個servlet的名字,可以隨便起。<servlet-class>是對應的Servlet類,應該包含包的信息。

?? Servlet訪問方式的聲明:
?? <servlet-mapping>
????? <servlet-name>hello</servlet-name>
????? <url-pattern>/hello</url-pattern>
?? </servlet-mapping>
?? 其中,<servlet-name>和Servlet聲明中的用法相同,并且應該與Servlet聲明中的名字保持一致。<url-pattern>表示訪問方式,決定了在客戶端如何訪問這個Servlet。

5、訪問Servlet
???http://127.0.0.1:8080/bookstore/hello

6、用Servlet完成login_process.jsp的功能
??? login_process.jsp主要功能,判斷用戶輸入的用戶名和口令是否合法,然后根據判斷的結果選擇界面對用戶響應。
??? 對于JSP文件來說,優勢在于顯示信息,login_process.jsp中的代碼都不是顯示信息的,主要用于控制。在Java Web應用中存在大量的這種現象。是Java Web中的控制功能。主要使用Servlet完成控制。
??? login_process.jsp的基本功能:獲取用戶的輸入信息;進行判斷;轉向。
??? 如果使用Servlet完成,功能代碼應該寫在doGet或者doPost方法中。對應上面的3個功能分別實現如下:
??? 獲取用戶信息:用戶信息存儲在doGet或者doPost方法的第一個參數中,所以從參數中獲取,獲取的代碼為
??????? String username = request.getParameter("username");
??????? String userpass = request.getParameter("userpass");
??? 判斷:
??????? if( username.equals("zhangsan") && userpass.equals("zhangsan") )
??? 轉向響應界面:
??????? 第一種方式:response.sendRedirect("index.jsp");
??????? 第二種方式:與<jsp:forward>功能相同
??????? RequestDispatcher rd = request.getRequestDispatcher("index.jsp");? // 參數是要轉向的頁面
??????? rd.forward(request,response); // 完成跳轉

LoginProcessServlet.java代碼如下:

package servlet;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class LoginProcessServlet extends HttpServlet
{
? public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
? {
??????? // 獲取用戶輸入的信息
??????? String username = request.getParameter("username");
??????? String userpass = request.getParameter("userpass");

??????? if( username.equals("zhangsan") && userpass.equals("zhangsan") )
??????? {
?????????? RequestDispatcher rd = request.getRequestDispatcher("success.jsp");? // 跳轉到成功的頁面
?????????? rd.forward(request,response); // 完成跳轉?
??????? }else
??????? {
?????????? RequestDispatcher rd = request.getRequestDispatcher("index1.jsp");? // 跳轉到登錄頁面
?????????? rd.forward(request,response); // 完成跳轉?
??????? }
? }

? public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
? {
???? doGet(request,response);
? }

}

配置文件中添加如下代碼:
?? <servlet>
????? <servlet-name>login_process</servlet-name>
????? <servlet-class>servlet.LoginProcessServlet</servlet-class>
?? </servlet>

?? <servlet-mapping>
????? <servlet-name>login_process</servlet-name>
????? <url-pattern>/login_process</url-pattern>
?? </servlet-mapping>

修改index1.jsp的代碼(修改form所在行),修改前:
<form action="login_process.jsp" method="post">
修改后:
<form action="login_process" method="post">

******http://blog.csdn.net/javaeeteacher*******************************************************************
*************************************************第四講結束************************************************
***********************************************************************李老師的一畝三分地******************


第五講(參考《Java Web程序設計基礎教程》第5、7章)

1、JavaBean
?
??? JavaBean是使用Java語言編寫的組件。組件是組成一個大的系統的一部分,并且組件能夠完成特定的功能,能夠共享。
??? 可以認為JavaBean是Java類,但是具有特定的功能,并且這些功能是共享的。例如,連接數據庫的功能可以封裝單獨的Java類,常用處理方法可以封裝成JavaBean。

2、早期的JSP中提供的對JavaBean的支持

?? <jsp:useBean>標簽用于定義JavaBean的對象;<jsp:setProperty>標簽用于設置JavaBean的屬性;<jsp:getProperty>用于獲取并輸出JavaBean的屬性。
?? 因為Java Web中,很少在JSP中直接訪問JavaBean,所以實際上這些標簽幾乎沒有用。現在主要在Servlet中訪問JavaBean。

3、JavaBean的編寫和用法

?? 例:以用戶信息驗證為例介紹JavaBean的編寫。
??
?? 1)聲明包
package bean;

?? 2)引入相應的類或者包
import java.sql.*;
// java.sql是訪問數據庫所需要的包

?? 3)類頭的定義
public class UserBean

?? 4)成員變量
private String username;
private String userpass;

?? 5)構造方法
// JavaBean要求應該提供一個無參數的構造方法
?? public UserBean(){
?? }

?? public UserBean(String username,String userpass){
????? this.username = username;
????? this.userpass = userpass;
?? }

?? 6)對屬性進行操作的方法
?? 包括獲取屬性值的方法和對屬性進行賦值的方法。
?? 命名方法:
?? 對于普通屬性來說,如果屬性為a,應該提供setA(屬性類型 a)方法和getA()方法。
?? 對于布爾類型的屬性來說,應該提供類似于isA()方法。
?? public void setUsername(String username){
????? this.username = username;
?? }

?? public String getUsername(){
????? return username;
?? }

?? public void setUserpass(String userpass){
????? this.userpass = userpass;
?? }

?? public String getUserpass(){
????? return userpass;
?? }

?? 7)功能類方法
?? 該JavaBean完成的功能是判斷用戶信息是否合法,需要在JavaBean中編寫相應的方法。???
?? public boolean login(){
????? return username.equals(userpass);
?? }

?? 8)編譯JavaBean
?? 9)部署
?? 所有的Java類都應該放在WEB-INF下面的classes下面,所以該JavaBean也應該放在這個地方。

4、使用JDBC的準備工作

?? JDBC是Java DataBase Connectivity的縮寫,是一組標準的接口,用于完成Java應用與各種數據庫之間的交互。
?? 要使用JDBC需要做哪些準備工作?
?? 1)創建數據庫?
?? 2)得到JDBC驅動程序,驅動程序是完成具體的交互過程的,每種數據庫有自己特定的驅動程序,從數據庫管理系統的提供商的網站下載?
?? 3)要知道數據庫的相關信息:JDBC驅動程序的名字、數據庫的位置、數據庫的端口、用戶名和口令、url的格式(建立連接的時候用)
?? 注意:我們使用JDBC-ODBC橋的方式連接數據庫。JDBC-ODBC橋是一種類型的驅動程序,共有4種類型的驅動程序,JDBC-ODBC橋是建立在ODBC數據源基礎上的。驅動是JDK中附帶的,不用下載。

5、創建數據庫及測試數據
create table usertable
(
?? username varchar(10) primary key,
?? userpass varchar(10)
)
insert into usertable values('lisi','lisi');
insert into usertable values('zhangsan','zhangsan');

6、創建ODBC數據源
?? 在 開始--〉設置--〉控制面板-->管理工具--〉數據源(ODBC)? 設置ODBC數據源的名字為bookstore
7、修改login方法,通過數據庫進行驗證
?? 1)使用JDBC連接數據庫的基本過程
?? 加載驅動程序;
?? 建立與數據庫之間的連接;
?? 創建一個執行SQL語句的語句對象;
?? 編寫要執行的SQL語句;
?? 使用語句對象執行SQL語句;
?? 如果有結果,需要對結果進行處理;
?? 關閉相關對象;
?? 注意:異常處理。

?? 2)修改login方法
?? public boolean login() throws Exception{
????? // return username.equals(userpass);
????? // 第一步:加載驅動程序,如果使用其它的驅動程序,寫出相應的名字即可
????? Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

????? // 第二步:建立連接,第一個參數是url(定位數據庫),第二個參數是用戶名,第三個參數是口令
????? Connection con = DriverManager.getConnection("jdbc:odbc:bookstore","","");? // bookstore是所創建的ODBC數據源的名字

????? // 第三步:創建SQL語句
????? String sql = "select * from usertable where username=? and userpass=?";

????? // 第四步:創建語句對象,用于執行SQL語句的
????? PreparedStatement stmt = con.prepareStatement(sql);

????? // 對變量賦值,第一個參數表示變量的序號(第幾個問號),第二個參數表示所賦的值
????? stmt.setString(1,username);
????? stmt.setString(2,userpass);

????? // 第五步:執行SQL語句,因為有查詢結果,所以使用executeQuery方法,結果保存在rs中
????? ResultSet rs = stmt.executeQuery();

????? //? rs相當于一個表格,有若干行、若干列組成,指針指向第一條記錄的前面
????? // 第六步:對結果進行處理,使用next方法進行遍歷,使用get方法得到當前行的列
????? boolean b = rs.next();

????? // 第七步:關閉相關對象
????? rs.close();?
????? stmt.close();
????? con.close();

????? return b;??????
?? }

?? 3)修改LoginProcessServlet.java

修改后的代碼為:

package servlet;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import bean.*;

public class LoginProcessServlet extends HttpServlet
{
? public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
? {
??????? // 獲取用戶輸入的信息
??????? String username = request.getParameter("username");
??????? String userpass = request.getParameter("userpass");

??????? // 調用JavaBean,創建對象、初始化、然后調用方法
??????? UserBean user = new UserBean();
??????? user.setUsername(username);
??????? user.setUserpass(userpass);
??????? boolean b = false;
??????? try{
??????????? b = user.login();
??????? }catch(Exception e){
??????????? // 當產生異常的時候,把異常信息輸出在界面上
??????????????? // 設置編碼方式
??????????????? response.setContentType("text/html;charset=gb2312");
??????????????? // 得到輸出流對象
??????????????? PrintWriter out = response.getWriter();
??????????????? out.println(e.toString());
??????????????? return;
??????? }

??????? // 轉向響應界面
??????? if(b){
?????????? RequestDispatcher rd = request.getRequestDispatcher("success.jsp");? // 跳轉到成功的頁面
?????????? rd.forward(request,response); // 完成跳轉?
??????? }else{
?????????? RequestDispatcher rd = request.getRequestDispatcher("index1.jsp");? // 跳轉到登錄頁面
?????????? rd.forward(request,response); // 完成跳轉?
??????? }
/*
??????? if( username.equals("zhangsan") && userpass.equals("zhangsan") )
??????? {
?????????? RequestDispatcher rd = request.getRequestDispatcher("success.jsp");? // 跳轉到成功的頁面
?????????? rd.forward(request,response); // 完成跳轉?
??????? }else
??????? {
?????????? RequestDispatcher rd = request.getRequestDispatcher("index1.jsp");? // 跳轉到登錄頁面
?????????? rd.forward(request,response); // 完成跳轉?
??????? }
*/
? }

? public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
? {
???? doGet(request,response);
? }

}


找到:
??????? boolean b = user.login();
修改為:??????
??????? boolean b = false;
??????? try{
??????????? b = user.login();
??????? }catch(Exception e){
??????????? // 當產生異常的時候,把異常信息輸出在界面上
??????????????? // 設置編碼方式
??????????????? response.setContentType("text/html;charset=gb2312");
??????????????? // 得到輸出流對象
??????????????? PrintWriter out = response.getWriter();
??????????????? out.println(e.toString());
??????????????? return;
??????? }


******http://blog.csdn.net/javaeeteacher*******************************************************************
*************************************************第五講結束************************************************
***********************************************************************李老師的一畝三分地******************


第六講(參考《Java Web程序設計基礎教程》第6、9章)
1、分析登錄功能

?? 界面:登錄界面index1.jsp;登錄成功的界面login_success.jsp。
?? 功能:UserBean的login方法完成登錄的判斷。
?? Servlet:LoginServlet.java
????? (1)接收用戶輸入的用戶名和口令(2)調用UserBean的login方法進行判斷(3)根據方法的返回值選擇界面響應。

2、MVC模式

??? M表示模型,主要表示系統中的功能處理部分。例如,上面的UserBean就是一個模型,描述用戶信息以及相關功能。
??? V表示視圖,表示系統中與人進行交互的部分。例如,上面的index1.jsp和login_success.jsp。
??? C表示控制器,建立模型與視圖之間的關聯關系。例如,上面的LoginServlet.java。
?????? 輸入界面直接調用控制器,控制器接收用戶在輸入界面上輸入的信息,控制器把信息傳遞給模型,調用模型的方法,方法會給控制器返回一個值,控制器根據這個值選擇輸出界面對用戶響應。
??? MVC模式把系統的每一個功能都分解成這個3個部分。然后分別實現。

3、采用MVC模式實現注冊功能

??? 一般先考慮V,包括輸入界面和輸出界面,對于注冊功能來說,輸入是注冊界面,輸出是注冊成功或者失敗的界面,通常使用JSP文件。
??? 接下來考慮M,功能如何實現,對于注冊功能來說,需要把用戶提交的信息寫到數據庫中。需要在UserBean中編寫添加用戶的方法。
??? 考慮C,如何協調M和V。需要編寫Servlet,在doGet或者doPost方法中主要完成:接收輸入;調用UserBean的方法;選擇界面響應。

4、創建注冊用的表

create table usertable2
(
?? username varchar(10) primary key,
?? userpass varchar(10),
?? sex char(2),
?? fav varchar(20),
?? degree varchar(8),
?? comment varchar(100),
?? email varchar(30)
)

5、V部分

?? 采用原來的register.jsp和success.jsp。

6、M部分
???
?? 在UserBean中添加方法,add方法。方法代碼如下:
?? public boolean add(){
????? // 定義變量
????? Connection con = null;
????? PreparedStatement stmt = null;
????? String driverClass = "sun.jdbc.odbc.JdbcOdbcDriver";
????? String url = "jdbc:odbc:bookstore";
????? String sql = "insert into usertable2 values(?,?,?,?,?,?,?)";
????? boolean success = true;

????? try{
???????? // 第一步:加載驅動
???????? Class.forName(driverClass);
???????? // 第二步:建立連接
???????? con = DriverManager.getConnection(url,"","");
???????? // 第三步:創建語句對象
???????? stmt = con.prepareStatement(sql);
???????? // 第四步:對SQL語句中參數賦值
???????? stmt.setString(1,username);
???????? stmt.setString(2,userpass);
???????? stmt.setString(3,sex);
???????? stmt.setString(4,fav);
???????? stmt.setString(5,degree);
???????? stmt.setString(6,comment);
???????? stmt.setString(7,email);
???????? // 第五步:執行SQL語句
???????? int n = stmt.executeUpdate();
???????? // 執行沒有結果集返回的SQL語句使用executeUpdate方法,方法的返回值是整數,表示操作成功的記錄數
???????? if(n==0)
??????????? success = false;
????? }catch(Exception e){
???????? success = false;
???????? System.out.println(e.getMessage());
????? }finally{
???????? try{ stmt.close(); }catch(Exception ee){}
???????? try{ con.close(); }catch(Exception ee){}
????? }
????? return success;
?? }

7、C部分
??? 編寫Servlet,完成添加的控制。控制器的代碼如下:
package servlet;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import bean.*;

public class AddUserServlet extends HttpServlet
{
? public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
? {
??????? // 請求中采用的編碼方式是8859_1,當前的編碼是gb2312,需要轉換
??????? request.setCharacterEncoding("gb2312");

??????? // 第一句話:獲取用戶輸入的信息
??????? String username = request.getParameter("username");

??????? String userpass1 = request.getParameter("userpass1");

??????? String sex = request.getParameter("sex");

??????? // 因為允許多選,所以結果有可能是多個,應該使用數組接收。
??????? String fav[] = request.getParameterValues("fav");
??????? String favStr = "";
??????? for(int i=0;i<fav.length;i++)
??????? {
?????????? favStr += fav[i]+";";
??????? }

??????? String degree = request.getParameter("degree");

??????? String comment = request.getParameter("content");

??????? String email = request.getParameter("email");

??????? // 第二句話:調用JavaBean,創建對象、初始化、然后調用方法
??????? UserBean user = new UserBean();
??????? user.setUsername(username);
??????? user.setUserpass(userpass1);
??????? user.setSex(sex);
??????? user.setFav(favStr);
??????? user.setDegree(degree);
??????? user.setEmail(email);
??????? user.setComment(comment);

??????? boolean b = user.add();

??????? // 第三句話:向頁面傳遞信息
??????? if(b)
??????????? request.setAttribute("info","注冊成功!");
??????? else
??????????? request.setAttribute("info","注冊失敗!");

??????? // 第四句話:轉向響應界面
??????? RequestDispatcher rd = request.getRequestDispatcher("success.jsp");?
??????? rd.forward(request,response); // 完成跳轉

/*
??????? if( username.equals("zhangsan") && userpass.equals("zhangsan") )
??????? {
?????????? RequestDispatcher rd = request.getRequestDispatcher("success.jsp");? // 跳轉到成功的頁面
?????????? rd.forward(request,response); // 完成跳轉?
??????? }else
??????? {
?????????? RequestDispatcher rd = request.getRequestDispatcher("index1.jsp");? // 跳轉到登錄頁面
?????????? rd.forward(request,response); // 完成跳轉?
??????? }
*/
? }

? public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
? {
???? doGet(request,response);
? }

}
??? 之后對Servlet進行配置,在web.xml中添加如下代碼:
?? <servlet>
????? <servlet-name>addUser</servlet-name>
????? <servlet-class>servlet.AddUserServlet</servlet-class>
?? </servlet>

?? <servlet-mapping>
????? <servlet-name>addUser</servlet-name>
????? <url-pattern>/addUser</url-pattern>
?? </servlet-mapping>

?? 需要修改register.jsp中的form的屬性action:
?????????? <form action="addUser" method="post" name="form1">
8、測試
??? 編譯、啟動服務器,然后運行。

本人的blog:??http://blog.csdn.net/javaeeteacher

******http://blog.csdn.net/javaeeteacher*******************************************************************
*************************************************第六講結束************************************************
***********************************************************************李老師的一畝三分地******************


第七講(參考《Java Web程序設計基礎教程》第7章)
1、共享連接數據庫的代碼

??? 連接數據庫的基本過程:
??? 1)加載驅動程序;
??? 2)創建連接;
??? 3)編寫SQL語句;
??? 4)創建語句對象;
??? 5)對參數賦值;
??? 6)執行SQL 語句;
??? 7)對結果進行處理;
??? 8)關閉對象。

??? 對于不同的SQL的執行,不同的地方:
??? SQL語句;
??? 參數;
??? 結果的處理方式;

??? 提取相同部分分別編寫成方法:

?? Connection con = null;
?? PreparedStatement stmt = null;
?? ResultSet rs = null;
?? String driverClass = "sun.jdbc.odbc.JdbcOdbcDriver";
?? String url = "jdbc:odbc:bookstore";

?? // 完成連接的創建,相當于第1.2步
?? public Connection getConnection() throws Exception{
????? Class.forName(driverClass); // 加載驅動程序
????? if(con == null)
???????? con = DriverManager.getConnection(url,"","");
????? return con;
?? }

?? // 創建語句對象
?? public PreparedStatement createStatement(String sql) throws Exception{
????? stmt = getConnection().prepareStatement(sql);
????? return stmt;
?? }??

?? // 執行有結果集返回的方法
?? public ResultSet executeQuery() throws Exception{
????? rs = stmt.executeQuery();
????? return rs;
?? }

?? // 執行沒有結果集返回的方法
?? public int executeUpdate() throws Exception{
????? return stmt.executeUpdate();
?? }

?? // 關閉對象
?? public void close(){
????? if(rs != null)?
???????? try{ rs.close();? }catch(Exception e){}?
????? if(stmt != null)?
???????? try{ stmt.close();? }catch(Exception e){}?
????? if(con != null)?
???????? try{ con.close();? }catch(Exception e){}?
?? }

2、修改上一次課的添加功能,使用這些共享方法

????? String sql = "insert into usertable2 values(?,?,?,?,?,?,?)";
????? boolean success = true;????
????? try{
???????? // 創建語句對象
???????? createStatement(sql);
?????????
???????? // 對SQL語句中參數賦值
???????? stmt.setString(1,username);
???????? stmt.setString(2,userpass);
???????? stmt.setString(3,sex);
???????? stmt.setString(4,fav);
???????? stmt.setString(5,degree);
???????? stmt.setString(6,comment);
???????? stmt.setString(7,email);

???????? // 執行SQL語句
???????? int n = executeUpdate();
???????? // 執行沒有結果集返回的SQL語句使用executeUpdate方法,方法的返回值是整數,表示操作成功的記錄數
???????? if(n==0)
??????????? success = false;
????? }catch(Exception e){
???????? success = false;
???????? System.out.println(e.getMessage());
????? }finally{
???????? close();
????? }??
????? return success;
3、查詢所有圖書

?? 1)創建圖書表
?? create table books(
????? bookid varchar(10) primary key,
????? bookname varchar(30),
????? author varchar(20),
????? price float,
????? publisher varchar(20)
?? )
?? 插入一些模擬數據

insert into books values('00001','Java','zhangsan',20,'電子工業')
insert into books values('00002','JSP','lisi',22,'人民郵電')
insert into books values('00003','Java EE','wang',30,'人民郵電')

?? 2)V部分
?? V主要與人進行交互,要考慮輸入和輸出
?? 輸入:在導航條中添加“查看所有圖書”的超鏈。

<a href="findAllBooks">顯示所有圖書</a>

?? 輸出:顯示所有圖書信息的JSP文件。
文件名:books.jsp
文件內容:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%@ include file="header.jsp"%>

?? <tr>
????? <td>
????????? <table align="center" border="1">
???????????? <tr>
??????????????? <td>圖書編號</td><td>圖書名稱</td><td>作者</td><td>價格</td><td>出版社</td>
???????????? </tr>
???????????? <!--? c:forEach用于循環控制,items屬性指出要循環遍歷的集合,var定義一個循環變量,表示集合中的一個元素 -->
???????????? <c:forEach var="book" items="${books}">
??????????????? <tr>
??????????????????? <td>${book.bookid}</td>
??????????????????? <td>${book.bookname}</td>
??????????????????? <td>${book.author}</td>
??????????????????? <td>${book.price}</td>
??????????????????? <td>${book.publisher}</td>
??????????????? </tr>
???????????? </c:forEach>
????????? </table>
????? </td>
?? </tr>
</table>

?? 3)M部分
?? 完成功能:從數據庫中查詢所有的圖書。
文件名:BookBean.java
文件內容:
package bean;

import java.sql.*;?
import java.util.ArrayList;

public class BookBean extends Base{

?? // 描述圖書的屬性
?? private String bookid;
?? private String bookname;
?? private String author;
?? private float price;
?? private String publisher;

?? // 編寫對乘員進行操作的方法
?? public void setBookid(String bookid){
????? this.bookid = bookid;
?? }

?? public String getBookid(){
????? return bookid;
?? }

?? public void setBookname(String bookname){
????? this.bookname = bookname;
?? }

?? public String getBookname(){
????? return bookname;
?? }

?? public void setAuthor(String author){
????? this.author = author;
?? }

?? public String getAuthor(){
????? return author;
?? }

?? public void setPrice(float price){
????? this.price = price;
?? }
???
?? public float getPrice(){
????? return price;
?? }

?? public void setPublisher(String publisher){
????? this.publisher = publisher;
?? }

?? public String getPublisher(){
????? return publisher;
?? }??

?? public ArrayList findAllBooks(){
????? ArrayList books = new ArrayList();
????? String sql = "select * from books";
????? try{
???????? createStatement(sql);
???????? rs = executeQuery();
???????? // 使用while循環遍歷結果集
???????? while(rs.next())
???????? {
??????????? // 使用rs的getString方法,以字符串的形式獲取第一列,參數也可以是列的名字
??????????? // 可以得到當前記錄的每一列
??????????? String tempBookid = rs.getString(1);
??????????? String tempBookname = rs.getString(2);
??????????? String tempAuthor = rs.getString(3);
??????????? float tempPrice = rs.getFloat(4);
??????????? String tempPublisher = rs.getString(5);

??????????? // 創建圖書對象
??????????? BookBean book = new BookBean();
??????????? book.setBookid(tempBookid);
??????????? book.setBookname(tempBookname);
??????????? book.setAuthor(tempAuthor);
??????????? book.setPrice(tempPrice);
??????????? book.setPublisher(tempPublisher);

??????????? // 把書添加到鏈表中
??????????? books.add(book);
???????? }
????? }catch(Exception e){
???????? System.out.println(e.toString());
????? }finally{
???????? close();
????? }
????? return books;
?? }
}
?? 4)C部分
?? 控制器:4句話。本功能只用到3句。
文件名:FindAllBooks。
文件內容:
package servlet;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import bean.*;
import java.util.ArrayList;

public class FindAllBooks extends HttpServlet
{
? public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
? {

??????? // 第二句話:調用JavaBean,創建對象、初始化、然后調用方法
??????? BookBean book = new BookBean();
??????? ArrayList books = book.findAllBooks();

??????? // 第三句話:向頁面傳遞信息,第一個參數是使用的名字,應該和顯示時候使用的名字一致,第二個參數傳遞的值本身
??????? request.setAttribute("books",books);

??????? // 第四句話:轉向響應界面
??????? RequestDispatcher rd = request.getRequestDispatcher("books.jsp");?
??????? rd.forward(request,response); // 完成跳轉

? }

? public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
? {
???? doGet(request,response);
? }

}
在web.xml中進行配置
?? <servlet>
????? <servlet-name>findAllBooks</servlet-name>
????? <servlet-class>servlet.FindAllBooks</servlet-class>
?? </servlet>

?? <servlet-mapping>
????? <servlet-name>findAllBooks</servlet-name>
????? <url-pattern>/findAllBooks</url-pattern>
?? </servlet-mapping>

******http://blog.csdn.net/javaeeteacher*******************************************************************
*************************************************第七講結束************************************************
***********************************************************************李老師的一畝三分地******************


第八講(參考《Java Web程序設計基礎教程》第10章)
1、刪除功能設計

?? 1)V部分
?? 輸入:可以在圖書列表界面中添加一列,使用超鏈鏈接到刪除功能,需要把將要刪除的圖書的編號傳遞過去。
?? 輸出:刪除成功或者失敗的提示界面。

?? 2)M部分
?? 刪除功能需要在BookBean添加一個刪除的方法,方法需要參數來指定刪除哪一本書。

?? 3)C部分
?? 4句話:從輸入界面獲取要刪除的圖書的編號;根據編號調用JavaBean的刪除圖書的方法;把刪除成功或者失敗的消息傳遞到界面(通過request);轉向響應界面。

2、輸入界面

?? 在books.jsp中的表格后面增加一列。
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%@ include file="header.jsp"%>

?? <tr>
????? <td>
????????? <table align="center" border="1">
???????????? <tr>
??????????????? <td>圖書編號</td><td>圖書名稱</td><td>作者</td><td>價格</td><td>出版社</td><td></td>
???????????? </tr>
???????????? <!--? c:forEach用于循環控制,items屬性指出要循環遍歷的集合,var定義一個循環變量,表示集合中的一個元素 -->
???????????? <c:forEach var="book" items="${books}">
??????????????? <tr>
??????????????????? <td>${book.bookid}</td>
??????????????????? <td>${book.bookname}</td>
??????????????????? <td>${book.author}</td>
??????????????????? <td>${book.price}</td>
??????????????????? <td>${book.publisher}</td>
??????????????????? <td> <a href="deleteBook?bookid=${book.bookid}">刪除</a> </td>
??????????????? </tr>
???????????? </c:forEach>
????????? </table>
????? </td>
?? </tr>
</table>

3、輸出界面
??? 把success.jsp作為輸出界面。

4、M部分
??? 在BookBean中添加deleteBook方法,代碼如下:
?? // 根據編號刪除圖書
?? public boolean deleteBook(String bookid){
????? // 表示刪除成功還是失敗
????? boolean success=true;
????? // 編寫SQL語句
????? String sql = "delete from books where bookid=?";
????? try{
???????? // 創建語句對象
???????? createStatement(sql);
???????? // 對SQL中的參數賦值
???????? stmt.setString(1,bookid);
???????? if( stmt.executeUpdate()>0 )
??????????? success = true;
???????? else
??????????? success = false;
????? }catch(Exception e){
???????? success = false;
???????? System.out.println(e.toString());?????????
????? }finally{
???????? close();
????? }
????? return success;
?? }

5、C部分
?? 記住4句話即可。參考代碼如下:
package servlet;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import bean.*;
import java.util.ArrayList;

public class DeleteBook extends HttpServlet
{
? public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
? {
??????? // 第一句話:獲取要刪除的圖書?
??????? String bookid = request.getParameter("bookid");

??????? // 第二句話:調用JavaBean,創建對象、初始化、然后調用方法
??????? BookBean book = new BookBean();
??????? boolean success = book.deleteBook(bookid);

??????? // 第三句話:向頁面傳遞信息,第一個參數是使用的名字,應該和顯示時候使用的名字一致,第二個參數傳遞的值本身
??????? String info;
??????? if(success)
?????????? info="刪除成功!";
??????? else
?????????? info="刪除失敗";
??????? request.setAttribute("info",info);

??????? // 第四句話:轉向響應界面
??????? RequestDispatcher rd = request.getRequestDispatcher("success.jsp");?
??????? rd.forward(request,response); // 完成跳轉

? }

? public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
? {
???? doGet(request,response);
? }

}

在web.xml中添加配置,相關代碼如下:
?? <servlet>
????? <servlet-name>deleteBook</servlet-name>
????? <servlet-class>servlet.DeleteBook</servlet-class>
?? </servlet>

?? <servlet-mapping>
????? <servlet-name>deleteBook</servlet-name>
????? <url-pattern>/deleteBook</url-pattern>
?? </servlet-mapping>

6、圖書信息修改功能設計

?? 用戶操作過程:首先先顯示要修改的圖書信息,然后修改后提交更新數據庫。
?? 首先考慮顯示信息的過程:根據用戶的選擇顯示相應圖書的信息。
?? 采用MVC模式設計如下:
?? V部分:輸入可以采用與刪除功能類似的方式,在圖書列表之后增加一修改列。輸出是修改界面。
?? M部分:根據圖書編號查詢圖書信息。需要在BookBean中添加一個根據編號查詢圖書的方法。
?? C部分:4句話,獲取圖書編號;把編號作為參數調用JavaBean中查詢圖書的方法;把查詢到的圖書對象保存到request;轉向修改界面。

7、輸入界面
?? 修改books.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%@ include file="header.jsp"%>

?? <tr>
????? <td>
????????? <table align="center" border="1">
???????????? <tr>
??????????????? <td>圖書編號</td><td>圖書名稱</td><td>作者</td><td>價格</td><td>出版社</td><td></td><td></td>
???????????? </tr>
???????????? <!--? c:forEach用于循環控制,items屬性指出要循環遍歷的集合,var定義一個循環變量,表示集合中的一個元素 -->
???????????? <c:forEach var="book" items="${books}">
??????????????? <tr>
??????????????????? <td>${book.bookid}</td>
??????????????????? <td>${book.bookname}</td>
??????????????????? <td>${book.author}</td>
??????????????????? <td>${book.price}</td>
??????????????????? <td>${book.publisher}</td>
??????????????????? <td> <a href="deleteBook?bookid=${book.bookid}">刪除</a> </td>
??????????????????? <td> <a href="findBookByID?bookid=${book.bookid}">修改</a> </td>
??????????????? </tr>
???????????? </c:forEach>
????????? </table>
????? </td>
?? </tr>
</table>

8、輸出界面
? 修改界面:顯示從控制器傳遞過來的BookBean對象book。
<%@ page contentType="text/html;charset=gb2312"%>

<%@ include file="header.jsp"%>

?? <tr>
????? <td>
?????????? <form action="updateBook" method="post" name="form1">
?????????????? <table align="center">
????????????????? <tr>?
????????????????????? <td>圖書編號:</td>
????????????????????? <td><input type="hidden" name="bookid" value="${book.bookid}">${book.bookid}</td>
????????????????? </tr>
????????????????? <tr>
????????????????????? <td>圖書名:</td>
????????????????????? <td><input type="text" name="bookname" value="${book.bookname}"></td>
????????????????? </tr>
????????????????? <tr>
????????????????????? <td>作者:</td>
????????????????????? <td><input type="text" name="author"? value="${book.author}"></td>
????????????????? </tr>
????????????????? <tr>
????????????????????? <td>價格:</td>
????????????????????? <td><input type="text" name="price"? value="${book.price}"></td>
????????????????? </tr>
????????????????? <tr>
????????????????????? <td>出版社:</td>
????????????????????? <td><input type="text" name="publisher"? value="${book.publisher}"></td>
????????????????? </tr>
????????????????? <tr>
????????????????????? <td><input type="submit" value="提交"></td>
????????????????????? <td><input type="reset" value="重寫"></td>
????????????????? </tr>
?????????????? </table>
?????????? </form>
????? </td>
?? </tr>
</table>
9、編寫根據ID查詢圖書的方法
??? 在BookBean中添加方法
?? // 根據編號查詢圖書
?? public BookBean findBookByID(String bookid){
????? BookBean book=new BookBean();
????? String sql = "select * from books where bookid=?";
????? try{
???????? createStatement(sql);
???????? stmt.setString(1,bookid);
???????? rs = executeQuery();
???????? // 轉換成對象
???????? rs.next();

???????? // 使用rs的getString方法,以字符串的形式獲取第一列,參數也可以是列的名字
???????? // 可以得到當前記錄的每一列
???????? String tempBookname = rs.getString(2);
???????? String tempAuthor = rs.getString(3);
???????? float tempPrice = rs.getFloat(4);
???????? String tempPublisher = rs.getString(5);

???????? // 創建圖書對象
???????? book.setBookid(bookid);
???????? book.setBookname(tempBookname);
???????? book.setAuthor(tempAuthor);
???????? book.setPrice(tempPrice);
???????? book.setPublisher(tempPublisher);

????? }catch(Exception e){
???????? System.out.println(e.toString());
????? }finally{
???????? close();
????? }
????? return book;
?? }
10、編寫Servlet控制器
package servlet;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import bean.*;
import java.util.ArrayList;

public class FindBookByID extends HttpServlet
{
? public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
? {
??????? // 第一句話:獲取用戶選擇圖書編號
??????? String bookid = request.getParameter("bookid");

??????? // 第二句話:調用JavaBean,創建對象、初始化、然后調用方法
??????? BookBean book = new BookBean();
??????? book = book.findBookByID(bookid);

??????? // 第三句話:向頁面傳遞信息,第一個參數是使用的名字,應該和顯示時候使用的名字一致,第二個參數傳遞的值本身
??????? request.setAttribute("book",book);

??????? // 第四句話:轉向響應界面
??????? RequestDispatcher rd = request.getRequestDispatcher("updateBook.jsp");?
??????? rd.forward(request,response); // 完成跳轉

? }

? public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
? {
???? doGet(request,response);
? }

}

在web.xml中配置:
?? <servlet>
????? <servlet-name>findBookByID</servlet-name>
????? <servlet-class>servlet.FindBookByID</servlet-class>
?? </servlet>

?? <servlet-mapping>
????? <servlet-name>findBookByID</servlet-name>
????? <url-pattern>/findBookByID</url-pattern>
?? </servlet-mapping>

11、修改功能的設計

??? V部分:輸入是修改界面不用修改,只要設置form的action屬性為updateBook即可。輸出可以采用success.jsp界面。
??? M部分:在BookBean中添加修改方法。
??? C部分:4句話,獲取用戶修改后的信息;調用JavaBean,包括初始化;把執行的結果傳遞到界面;轉向界面。
12、修改BookBean中的代碼
?? 增加update方法,代碼如下:
?? // 更新圖書信息
?? public boolean update(){
????? boolean success = false;
????? String sql = "update books set bookname=?,author=?,price=?,publisher=? where bookid=?";
????? try{
???????? createStatement(sql);
???????? stmt.setString(1,bookname);
???????? stmt.setString(2,author);
???????? stmt.setFloat(3,price);
???????? stmt.setString(4,publisher);
???????? stmt.setString(5,bookid);
??
???????? int n = executeUpdate();
?????????
???????? if(n>0)
??????????? success = true;
???????? else
??????????? success = false;
????? }catch(Exception e){
???????? success = false;?????
???????? System.out.println(e.toString());
????? }finally{
???????? close();
????? }
????? return success;
?? }
13、編寫控制器
??? 為了解決亂碼,在控制器中獲取信息之前,增加如下語句:
??????? request.setCharacterEncoding("gb2312");
??? 代碼如下:
package servlet;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import bean.*;
import java.util.ArrayList;

public class UpdateBook extends HttpServlet
{
? public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
? {
??????? request.setCharacterEncoding("gb2312");
??????? // 第一句話:獲取用戶選擇圖書編號
??????? String bookid = request.getParameter("bookid");
??????? String bookname = request.getParameter("bookname");
??????? String price = request.getParameter("price");
??????? String author = request.getParameter("author");
??????? String publisher = request.getParameter("publisher");
???
??????? float fPrice = 0f;
??????? try{
?????????? // 把字符串轉換成浮點型變量
?????????? fPrice = Float.parseFloat(price);?
??????? }catch(Exception e){
??????? }

??????? // 第二句話:調用JavaBean,創建對象、初始化、然后調用方法
??????? BookBean book = new BookBean();
??????? book.setBookid(bookid);
??????? book.setBookname(bookname);
??????? book.setPrice(fPrice);?
??????? book.setAuthor(author);
??????? book.setPublisher(publisher);

??????? boolean success = book.update();

??????? String info ;
??????? if(success)
?????????? info = "修改成功!";
??????? else
?????????? info = "修改失敗";

??????? // 第三句話:向頁面傳遞信息,第一個參數是使用的名字,應該和顯示時候使用的名字一致,第二個參數傳遞的值本身
??????? request.setAttribute("info",info);

??????? // 第四句話:轉向響應界面
??????? RequestDispatcher rd = request.getRequestDispatcher("success.jsp");?
??????? rd.forward(request,response); // 完成跳轉

? }

? public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
? {
???? doGet(request,response);
? }
}

修改配置文件:
?? <servlet>
????? <servlet-name>updateBook</servlet-name>
????? <servlet-class>servlet.UpdateBook</servlet-class>
?? </servlet>

?? <servlet-mapping>
????? <servlet-name>updateBook</servlet-name>
????? <url-pattern>/updateBook</url-pattern>
?? </servlet-mapping>


******http://blog.csdn.net/javaeeteacher*******************************************************************
*************************************************第八講結束************************************************
***********************************************************************李老師的一畝三分地******************

第九講(參考《Java Web程序設計基礎教程》第14章)
1、在JSP中如何存儲信息

??? 前面介紹過的:在數據庫中存儲信息;在request對象中存儲信息。
??? 分為兩類:內存 和 持久存儲
??? 內存中如何組織數據:
??? pageContext對象,存儲當前頁面的信息;請求涉及多少個文件,就會創建多少個pageContext對象。
??? request對象,一次請求會創建一個request對象,如果希望在同一次請求的多個文件之間共享信息,可以保存在request中。
??? session對象,每個客戶端對應一個session,session中用于存儲在用戶的整個訪問過程中要使用的信息。最典型的應用把用戶的登錄信息保存在session中,這樣在后續的頁面中使用登錄信息。
??? application對象,整個網站對應這樣一個對象,訪問網站的所有用戶在訪問所有網頁的時候都可以使用。典型的應用是公有的聊天室,聊天信息所有人都可以看到,這時候就應該使用application對象。

??? 持久存儲:
??? 數據庫,通過JDBC訪問。
??? 文件,通過IO進行操作。
??? Cookie,信息存儲在客戶端。如果使用數據庫和文件,信息都存在服務器端。

2、網上購物車的基本功能
???
?? 瀏覽圖書信息;
?? 把圖書添加到購物車中;
?? 對購物車中的物品進行管理;
?? 查看購物車的信息;
?? 生成訂單。

3、如何保存在購物過程中選擇的物品?

?? 關心購物車中有哪些類型的物品,每種類型的物品有多少。物品的種類數量不確定。每次請求只能選擇某一種物品。根據這些特點,應該設計購物車的存儲結構如下:

?? 1)需要把購物車放到session中,這樣才能進行多個頁面之間的共享;
?? 2)因為物品種類不確定,所以一般選擇ArrayList來存儲物品種類以及數量;
?? 3)對于每一種物品,包含物品本身的信息以及物品的購買數量,通常使用訂單項來表示,里面包含了物品對象及其數量。

4、完成向購物車中添加圖書的功能

?? V部分:輸入,是選擇物品向購物車添加的界面,使用物品信息查看界面;
????????? 輸出,顯示購物車信息的頁面。
?? M部分:把選擇的物品添加到購物車中,需要知道原來購物車中有什么信息,購物車在session中保存,所以需要對session進行操作。
?? C部分:第一句話,獲取信息,從輸入界面獲取要添加的圖書,從session中獲取原有的購物車信息。
????????? 第二句話,調用M部分的添加購物車功能。
????????? 第三句話,保存信息,把修改后的購物車重新寫入session中。
????????? 第四句話,轉向顯示購物車信息的頁面。
5、構建訂單項類
package bean;

// 表示購物項
public class Item{
?? private BookBean book;
?? private int quantity;
?? public void setBook(BookBean book){
????? this.book = book;
?? }
?? public BookBean getBook(){
????? return book;
?? }

?? public void setQuantity(int quantity){
????? this.quantity = quantity;
?? }
?? public int getQuantity(){
????? return quantity;
?? }
}

6、輸入界面
???
?? 在books.jsp中的圖書列表后增加“添加到購物車”這樣的超鏈接。
7、刪除功能、修改購物車信息
?? 界面:
?? 刪除的代碼:
?? <form action="deleteItem" method="post">
????? <input type="hidden" name="bookid" value="${item.book.bookid}">
????? <input type="submit" value="刪除">?
?? </form>
?? 修改的:
?? <form action="updateCart" method="post">
????? <input type="text" name="quantity" value="${item.quantity}">
????? <input type="hidden" name="bookid" value="${item.book.bookid}">
????? <input type="submit" value="修改">?
?? </form>

?? M部分:
?? 從ArrayList對象cart中刪除Item對象item:cart.remove(item)?? cart.remove(i)
?? 修改功能:在添加過程中如果要添加的圖書已經存在,就相當于修改。

?? C部分:與添加功能中的代碼非常類似。

******http://blog.csdn.net/javaeeteacher*******************************************************************
*************************************************第九講結束************************************************
***********************************************************************李老師的一畝三分地******************

第十講
1、MVC模式分析

?? 對任何功能來說,首先考慮人如何來使用這個功能。如何把人的請求發送給系統,系統如何把處理的結果返回給用戶,實際上就是輸入和輸出。輸入MVC模式中的V部分。
?? 輸入:用戶發送請求,通過超鏈接,通過瀏覽器的地址欄,通過表單提交。請求時候如何要提交數據,在超鏈接中以及地址欄中可以通過?的形式來傳遞值,表單方式通過表單元素提交信息。非常典型的應用,隱藏域,用于在多個頁面之間傳遞信息。注意:輸入一定要進行客戶端的格式驗證。
?? 輸出:主要服務器得到的信息顯示給用戶。輸出提示信息:${info}? 輸出對象信息:在更新界面中顯示信息${book.bookid}? 輸出多個對象的信息:
??????????? <c:forEach var="book" items="${books}">
??????????????? <tr>
??????????????????? <td>${book.bookid}</td>
??????????????????? <td>${book.bookname}</td>
??????????????????? <td>${book.author}</td>
??????????????????? <td>${book.price}</td>
??????????????????? <td>${book.publisher}</td>
??????????????????? <td> <a href="deleteBook?bookid=${book.bookid}">刪除</a> </td>
??????????????????? <td> <a href="findBookByID?bookid=${book.bookid}">修改</a> </td>
??????????????????? <td> <a href="addToCart?bookid=${book.bookid}">添加到購物車</a> </td>
??????????????? </tr>
???????????? </c:forEach>
??? 功能(M部分):通常轉換成方法。因為Java是面向對象的語言,方法應該輸入某個類的。所以通常需要創建JavaBean(比較特殊的類),然后在JavaBean中添加這個方法。方法的實現主要依賴你的Java基本功。
??? 控制器(C部分):通常使用Servlet來實現。對于控制器需要記住4句話:獲取信息;調用JavaBean;保存信息;響應。
??????? 獲取信息:
??????????? 獲取請求信息request.getParameter(paraname)? request.getParameterValues(paraname)
??????????? 獲取session中信息? session.getAttribute(屬性名)? 注意:獲取到之后需要進行強制類型轉換
??????????? 獲取Cookie中信息? request.getCookies()? 返回的是Cookie數組
??????????? 獲取請求頭信息?
??????????? 獲取Servlet的配置信息
??????????? 通過其他的JavaBean來獲取一些信息
??????? 調用JavaBean的方法:
??????????? 實例化,使用new加上構造方法來實例化,如果要調用的方法是靜態方法,不需要實例化。
??????????? 初始化,可能需要使用上面獲取的信息來對JavaBean進行初始化。
??????????? 調用方法,可以通過參數傳遞需要的信息
??????? 保存信息(主要為后續的頁面和處理服務的):
??????????? 保存到session中,session.setAttribute(屬性名,要保存的對象),供用戶后續的所有訪問過程使用。
??????????? 保存到request中,request.setAttribute(屬性名,要保存的對象),供后續頁面使用(頁面與當前的Servlet屬于同一次請求)
??????????? 保存到cookie,Cookie cookie = new Cookie("name","value"); response.addCookie(cookie);? ,供客戶端在以后的時間訪問
??????? 響應:
??????????? 直接輸出:
?????????????? response.setContentType("text/html;charset=gb2312");
?????????????? PrintWriter out = response.getWriter();
?????????????? out.println("歡迎學習JSP!");
??????????? 使用專門的文件進行響應:
?????????????? 方式一:
?????????????????? RequestDispatcher rd = request.getRequestDispatcher(目標文件);?
?????????????????? rd.forward(request,response); // 完成跳轉?
?????????????? 方式二:
?????????????????? response.sendRedirect(目標文件);
?????????????? 注意:如果當前功能完成的是對數據庫的插入操作,如果用戶刷新就會產生錯誤。要避免錯誤,不能使用RequestDispatcher,可以使用方式二。如果使用方式二,就不能在當前文件和目標文件之間通過request共享信息了。如果要共享可以session,使用session的時候,用完之后一定要刪除這個對象session.removeAttribute(屬性名)。

2、如何使用其他的數據庫管理系統

?? 準備工作:
?? 1)安裝數據庫;創建表。(這個過程通常是由數據庫管理員完成的,對于變成人員來說需要知道數據庫的IP地址、端口、數據庫名字、用戶名、口令)。
?? 2) 要得到數據庫的JDBC驅動程序,通常是壓縮包,可以從響應的數據庫提供商的網站上下載。需要把驅動程序放在:C:/Program Files/Apache Software Foundation/Tomcat 6.0/lib 或者 應用的WEB-INF/lib下面。
?? 在程序中使用:
?? 與現在使用JDBC-ODBC橋方式基本相同,不同點在于:驅動程序的名字;URL(通常包含IP地址、端口、數據庫名字)的格式不同(與驅動程序有關);用戶名和口令。
?? 常見的錯誤:
?? 1)ClassNotFoundException?? 通常是因為JDBC驅動程序加載失敗,找不到。確認JDBC驅動程序在正確的位置以及版本是否正確。
?? 2)沒有合適的驅動程序 Not a suitable driver? 通常是因為URL的格式不正確。
?? 3)連接不能被創建,數據庫服務器沒有正常運行獲取主機、端口、數據庫名有誤。
?? 4)Access Denied? 用戶名和口令錯誤
?? 5)java.sql.SQLException 通常SQL語句錯誤。

******http://blog.csdn.net/javaeeteacher*******************************************************************
*************************************************全十講結束************************************************
***********************************************************************李老師的一畝三分地******************?


from:?http://blog.csdn.net/javaeeteacher/article/details/1932447

總結

以上是生活随笔為你收集整理的JSP快速入门教程——全十讲的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产超碰人人爽人人做人人添 | 日本www一道久久久免费榴莲 | 亚洲第一网站男人都懂 | 久久亚洲国产成人精品性色 | 久久久www成人免费毛片 | 白嫩日本少妇做爰 | 强辱丰满人妻hd中文字幕 | 成 人 网 站国产免费观看 | 少妇激情av一区二区 | 澳门永久av免费网站 | 亚洲中文字幕在线无码一区二区 | 狂野欧美性猛交免费视频 | 丰腴饱满的极品熟妇 | 亚洲成a人片在线观看日本 | 亚洲一区二区三区在线观看网站 | 亚洲爆乳大丰满无码专区 | 国产精品a成v人在线播放 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 中文字幕人成乱码熟女app | aⅴ在线视频男人的天堂 | 亚洲 激情 小说 另类 欧美 | 图片小说视频一区二区 | 任你躁国产自任一区二区三区 | 俺去俺来也在线www色官网 | 真人与拘做受免费视频 | 丰满护士巨好爽好大乳 | 永久黄网站色视频免费直播 | 无码午夜成人1000部免费视频 | 亚洲欧洲日本综合aⅴ在线 | 无码精品国产va在线观看dvd | 国产人妻大战黑人第1集 | 高清国产亚洲精品自在久久 | 亚洲一区二区三区香蕉 | 天干天干啦夜天干天2017 | 中文字幕人成乱码熟女app | av无码久久久久不卡免费网站 | 国产高潮视频在线观看 | 午夜福利不卡在线视频 | а√天堂www在线天堂小说 | 伊人久久大香线焦av综合影院 | 国产精品久久久久久久9999 | 中文字幕中文有码在线 | 精品无码av一区二区三区 | 国产精品.xx视频.xxtv | 东京热无码av男人的天堂 | 亚洲精品久久久久久一区二区 | 欧美性色19p | 国产免费观看黄av片 | 少妇人妻偷人精品无码视频 | 国产成人无码一二三区视频 | 亚洲午夜福利在线观看 | 一本色道久久综合狠狠躁 | 欧美性色19p | 国内精品人妻无码久久久影院蜜桃 | 精品国精品国产自在久国产87 | 亚洲精品久久久久avwww潮水 | 国产片av国语在线观看 | 亚洲精品无码国产 | 漂亮人妻洗澡被公强 日日躁 | 久久国产精品二国产精品 | 亚洲色欲久久久综合网东京热 | 小泽玛莉亚一区二区视频在线 | 日本熟妇大屁股人妻 | 四虎国产精品免费久久 | 牲欲强的熟妇农村老妇女 | 国产人妻精品午夜福利免费 | 国产精品沙发午睡系列 | 正在播放东北夫妻内射 | 两性色午夜视频免费播放 | www成人国产高清内射 | 免费国产黄网站在线观看 | 对白脏话肉麻粗话av | 亚洲精品一区二区三区在线 | 国产人妻精品一区二区三区 | 呦交小u女精品视频 | 日日碰狠狠丁香久燥 | 国产精品香蕉在线观看 | 亚洲午夜福利在线观看 | 久久无码专区国产精品s | 亚洲国产av美女网站 | 国产精品亚洲综合色区韩国 | 日韩精品无码免费一区二区三区 | 天天摸天天透天天添 | 亚洲综合色区中文字幕 | 国产黑色丝袜在线播放 | 荫蒂添的好舒服视频囗交 | 亚洲熟悉妇女xxx妇女av | 国产欧美亚洲精品a | 国产亚洲精品久久久久久久久动漫 | 成年美女黄网站色大免费视频 | 免费视频欧美无人区码 | 欧美人与牲动交xxxx | 天天综合网天天综合色 | 东京热一精品无码av | 中文字幕人妻无码一区二区三区 | 噜噜噜亚洲色成人网站 | 精品人妻人人做人人爽 | 狂野欧美性猛xxxx乱大交 | 国产女主播喷水视频在线观看 | 亚洲一区二区三区无码久久 | 国产另类ts人妖一区二区 | 97资源共享在线视频 | 中文毛片无遮挡高清免费 | 一本久道高清无码视频 | 鲁大师影院在线观看 | 日韩精品无码一本二本三本色 | 欧美野外疯狂做受xxxx高潮 | 激情人妻另类人妻伦 | 男女下面进入的视频免费午夜 | 欧美乱妇无乱码大黄a片 | 荫蒂被男人添的好舒服爽免费视频 | 国精产品一品二品国精品69xx | 乱人伦中文视频在线观看 | 在线播放免费人成毛片乱码 | 午夜熟女插插xx免费视频 | av无码电影一区二区三区 | 99在线 | 亚洲 | 波多野结衣乳巨码无在线观看 | 熟妇女人妻丰满少妇中文字幕 | 88国产精品欧美一区二区三区 | 久久精品成人欧美大片 | 漂亮人妻洗澡被公强 日日躁 | 日日摸天天摸爽爽狠狠97 | 午夜精品一区二区三区的区别 | 人妻熟女一区 | 中文字幕乱码中文乱码51精品 | 国产成人综合在线女婷五月99播放 | 亚洲精品国产品国语在线观看 | 国产一区二区不卡老阿姨 | 久久国产劲爆∧v内射 | 台湾无码一区二区 | 国产尤物精品视频 | 色老头在线一区二区三区 | 丰满妇女强制高潮18xxxx | 成 人 免费观看网站 | 国产又爽又猛又粗的视频a片 | 亚洲色欲色欲欲www在线 | 久青草影院在线观看国产 | ass日本丰满熟妇pics | 久久精品一区二区三区四区 | 蜜臀aⅴ国产精品久久久国产老师 | 国产精品丝袜黑色高跟鞋 | 欧美老人巨大xxxx做受 | 久久久久久久人妻无码中文字幕爆 | 国产乱人伦偷精品视频 | 亚洲精品一区二区三区婷婷月 | 亚洲伊人久久精品影院 | 少女韩国电视剧在线观看完整 | 国产婷婷色一区二区三区在线 | 欧美精品免费观看二区 | 成人精品一区二区三区中文字幕 | 老熟女重囗味hdxx69 | 国产一精品一av一免费 | 香蕉久久久久久av成人 | 亚洲一区二区三区四区 | 婷婷六月久久综合丁香 | 国产精品久久久久7777 | 国产明星裸体无码xxxx视频 | 国产午夜亚洲精品不卡下载 | 精品厕所偷拍各类美女tp嘘嘘 | 日韩精品a片一区二区三区妖精 | 日本大香伊一区二区三区 | 亚洲精品美女久久久久久久 | 亚洲爆乳精品无码一区二区三区 | 又色又爽又黄的美女裸体网站 | 日韩亚洲欧美中文高清在线 | 亚洲国产精品无码一区二区三区 | 欧美日韩一区二区三区自拍 | 精品欧美一区二区三区久久久 | 领导边摸边吃奶边做爽在线观看 | 澳门永久av免费网站 | 国产黄在线观看免费观看不卡 | 国产欧美熟妇另类久久久 | 久久久国产精品无码免费专区 | 又粗又大又硬又长又爽 | 欧美性生交xxxxx久久久 | 乱人伦人妻中文字幕无码久久网 | 国产va免费精品观看 | 久久久久久国产精品无码下载 | 2020最新国产自产精品 | 国产成人综合美国十次 | 性生交大片免费看l | 久久这里只有精品视频9 | 在线观看欧美一区二区三区 | 天天拍夜夜添久久精品大 | 成人一在线视频日韩国产 | 亚洲日韩中文字幕在线播放 | 高潮毛片无遮挡高清免费 | 人人爽人人爽人人片av亚洲 | 国产精品久久久午夜夜伦鲁鲁 | 亚洲高清偷拍一区二区三区 | 性做久久久久久久免费看 | 水蜜桃亚洲一二三四在线 | 亚洲综合久久一区二区 | 女人和拘做爰正片视频 | 久久99热只有频精品8 | 久久99国产综合精品 | 久久久久久九九精品久 | 日本乱偷人妻中文字幕 | 国产精品18久久久久久麻辣 | 国产凸凹视频一区二区 | 内射白嫩少妇超碰 | 性欧美牲交在线视频 | 300部国产真实乱 | 欧美黑人巨大xxxxx | 亚洲成熟女人毛毛耸耸多 | 国产免费久久精品国产传媒 | 欧美第一黄网免费网站 | 水蜜桃av无码 | 国产乱码精品一品二品 | 久热国产vs视频在线观看 | 精品国产乱码久久久久乱码 | 永久免费精品精品永久-夜色 | 久久久久久久久蜜桃 | 夜夜夜高潮夜夜爽夜夜爰爰 | 中文字幕无码热在线视频 | 中文字幕乱码人妻二区三区 | 亚洲国产欧美日韩精品一区二区三区 | 老太婆性杂交欧美肥老太 | 全球成人中文在线 | 沈阳熟女露脸对白视频 | 久久精品视频在线看15 | 国产乡下妇女做爰 | 久久成人a毛片免费观看网站 | 国产亚洲精品久久久久久久久动漫 | 人人妻人人藻人人爽欧美一区 | 久久久精品欧美一区二区免费 | 亚洲区欧美区综合区自拍区 | 色爱情人网站 | 无码纯肉视频在线观看 | 亚洲综合色区中文字幕 | 亚洲国产精品一区二区美利坚 | 久久国语露脸国产精品电影 | 永久免费观看国产裸体美女 | 日韩视频 中文字幕 视频一区 | 噜噜噜亚洲色成人网站 | 国产熟女一区二区三区四区五区 | 亚洲国产精华液网站w | 奇米影视7777久久精品人人爽 | 欧美日韩一区二区免费视频 | 欧美精品在线观看 | 国产人妻久久精品二区三区老狼 | 内射爽无广熟女亚洲 | 色老头在线一区二区三区 | 国产成人午夜福利在线播放 | 亚洲天堂2017无码 | 人人爽人人爽人人片av亚洲 | 天堂在线观看www | 97无码免费人妻超级碰碰夜夜 | 久久综合九色综合欧美狠狠 | 在线精品亚洲一区二区 | 国产成人综合在线女婷五月99播放 | 精品乱子伦一区二区三区 | 欧洲欧美人成视频在线 | 国产精品对白交换视频 | 我要看www免费看插插视频 | 日韩精品久久久肉伦网站 | 精品国产一区二区三区av 性色 | 国产三级久久久精品麻豆三级 | 亚洲色在线无码国产精品不卡 | 国产在线aaa片一区二区99 | 国产乱人伦av在线无码 | 欧美 亚洲 国产 另类 | 中国女人内谢69xxxx | 亚洲国产精华液网站w | 亚洲一区二区三区香蕉 | 无码人中文字幕 | 欧美国产日韩久久mv | 97资源共享在线视频 | 丰满少妇熟乱xxxxx视频 | 亚洲日韩精品欧美一区二区 | 国产精品国产自线拍免费软件 | 动漫av一区二区在线观看 | 日本丰满护士爆乳xxxx | 久热国产vs视频在线观看 | 免费中文字幕日韩欧美 | 亚洲中文字幕久久无码 | 正在播放东北夫妻内射 | 成人一区二区免费视频 | 又大又硬又黄的免费视频 | 亚洲人交乣女bbw | 亚洲国产精品无码久久久久高潮 | 少妇无码av无码专区在线观看 | aⅴ在线视频男人的天堂 | 无码人妻精品一区二区三区不卡 | 色欲人妻aaaaaaa无码 | 欧美性黑人极品hd | a在线亚洲男人的天堂 | 狂野欧美性猛xxxx乱大交 | 玩弄中年熟妇正在播放 | 久久99精品久久久久婷婷 | av在线亚洲欧洲日产一区二区 | 色欲人妻aaaaaaa无码 | 久久久久久a亚洲欧洲av冫 | 精品人妻人人做人人爽夜夜爽 | 妺妺窝人体色www婷婷 | 国产性生交xxxxx无码 | 国产在线一区二区三区四区五区 | 欧美日本免费一区二区三区 | 亚洲s码欧洲m码国产av | 日本精品人妻无码免费大全 | 国产无遮挡又黄又爽又色 | 无码av免费一区二区三区试看 | 狠狠色欧美亚洲狠狠色www | 狠狠躁日日躁夜夜躁2020 | 性欧美疯狂xxxxbbbb | 久久无码人妻影院 | 中文字幕乱码人妻无码久久 | 亚洲一区二区三区四区 | 亚洲大尺度无码无码专区 | 国产精品igao视频网 | 久久久久99精品成人片 | 内射爽无广熟女亚洲 | 色妞www精品免费视频 | 九月婷婷人人澡人人添人人爽 | 日日天日日夜日日摸 | 在线播放免费人成毛片乱码 | 亚洲国产欧美在线成人 | 天海翼激烈高潮到腰振不止 | 久久久久se色偷偷亚洲精品av | 日日摸天天摸爽爽狠狠97 | 双乳奶水饱满少妇呻吟 | 国产小呦泬泬99精品 | 丝袜 中出 制服 人妻 美腿 | 国产片av国语在线观看 | 欧美丰满熟妇xxxx性ppx人交 | 97久久精品无码一区二区 | 国产色精品久久人妻 | 国产无遮挡又黄又爽又色 | 日本欧美一区二区三区乱码 | 性欧美大战久久久久久久 | 国产一区二区三区精品视频 | 欧美日韩一区二区免费视频 | 亚洲熟妇自偷自拍另类 | 精品日本一区二区三区在线观看 | 午夜福利不卡在线视频 | 国产乡下妇女做爰 | 国产精品亚洲lv粉色 | 奇米影视888欧美在线观看 | 玩弄中年熟妇正在播放 | 欧美三级a做爰在线观看 | 影音先锋中文字幕无码 | 国产精品理论片在线观看 | 又大又硬又爽免费视频 | 婷婷五月综合缴情在线视频 | 国产高清不卡无码视频 | 久久久久久九九精品久 | 岛国片人妻三上悠亚 | 一二三四社区在线中文视频 | 国产亚洲精品久久久久久久久动漫 | 免费观看的无遮挡av | 色 综合 欧美 亚洲 国产 | 亚洲熟妇色xxxxx亚洲 | 天天躁日日躁狠狠躁免费麻豆 | 亚洲综合色区中文字幕 | 亚洲日韩中文字幕在线播放 | 天天燥日日燥 | www国产亚洲精品久久网站 | 巨爆乳无码视频在线观看 | 少妇无码av无码专区在线观看 | 久久国产精品偷任你爽任你 | 午夜不卡av免费 一本久久a久久精品vr综合 | 亚洲中文字幕在线观看 | 色欲av亚洲一区无码少妇 | 午夜不卡av免费 一本久久a久久精品vr综合 | 国产女主播喷水视频在线观看 | 男女超爽视频免费播放 | 日韩人妻系列无码专区 | 一本久道久久综合狠狠爱 | 少妇愉情理伦片bd | 中文字幕无码热在线视频 | 亚洲国产精品无码久久久久高潮 | 亚洲の无码国产の无码影院 | 内射白嫩少妇超碰 | 免费看少妇作爱视频 | 欧美亚洲日韩国产人成在线播放 | 精品日本一区二区三区在线观看 | 天海翼激烈高潮到腰振不止 | 亚洲区小说区激情区图片区 | 国产亚洲精品久久久久久久久动漫 | 成熟人妻av无码专区 | 国产特级毛片aaaaaa高潮流水 | 美女毛片一区二区三区四区 | 亚洲精品国产品国语在线观看 | 久久天天躁夜夜躁狠狠 | 3d动漫精品啪啪一区二区中 | 天天躁夜夜躁狠狠是什么心态 | 久久综合香蕉国产蜜臀av | 夜夜躁日日躁狠狠久久av | 澳门永久av免费网站 | 大地资源网第二页免费观看 | 无码人妻久久一区二区三区不卡 | 麻豆蜜桃av蜜臀av色欲av | 熟妇人妻无乱码中文字幕 | 成年美女黄网站色大免费视频 | 亚洲精品久久久久久久久久久 | 无套内谢的新婚少妇国语播放 | 日韩av无码中文无码电影 | 亚洲日本一区二区三区在线 | 国产农村妇女高潮大叫 | 国内揄拍国内精品人妻 | 久久久久久久人妻无码中文字幕爆 | 久久www免费人成人片 | 午夜丰满少妇性开放视频 | 18无码粉嫩小泬无套在线观看 | 大地资源中文第3页 | 精品欧洲av无码一区二区三区 | 色综合久久久无码中文字幕 | 久久精品国产99久久6动漫 | 国产av久久久久精东av | 精品国产一区二区三区四区 | 性开放的女人aaa片 | 99久久精品国产一区二区蜜芽 | 理论片87福利理论电影 | 夜夜夜高潮夜夜爽夜夜爰爰 | 国产精品人妻一区二区三区四 | 无码人妻出轨黑人中文字幕 | 青青青爽视频在线观看 | 精品 日韩 国产 欧美 视频 | 成人女人看片免费视频放人 | 中文字幕乱码中文乱码51精品 | 欧美性黑人极品hd | 国产国产精品人在线视 | 久久99精品国产.久久久久 | 久久无码人妻影院 | 四虎影视成人永久免费观看视频 | 色爱情人网站 | 亚洲成a人片在线观看日本 | 娇妻被黑人粗大高潮白浆 | 亚洲男人av天堂午夜在 | 成在人线av无码免费 | 欧美丰满熟妇xxxx性ppx人交 | 5858s亚洲色大成网站www | 国产熟妇另类久久久久 | 亚洲乱码日产精品bd | 国产尤物精品视频 | 俺去俺来也在线www色官网 | 爆乳一区二区三区无码 | 自拍偷自拍亚洲精品10p | 久久久中文久久久无码 | 麻豆精产国品 | 狠狠噜狠狠狠狠丁香五月 | 日本一区二区三区免费播放 | 国产亚洲人成在线播放 | 精品国产av色一区二区深夜久久 | 精品国精品国产自在久国产87 | 久久综合九色综合97网 | 永久免费精品精品永久-夜色 | 欧美日本免费一区二区三区 | 亚洲精品欧美二区三区中文字幕 | аⅴ资源天堂资源库在线 | 国产亚洲欧美在线专区 | 久久人人97超碰a片精品 | 精品国产精品久久一区免费式 | 久久综合给久久狠狠97色 | 亚洲综合在线一区二区三区 | 人人爽人人澡人人人妻 | 久久精品国产99精品亚洲 | 高清无码午夜福利视频 | 久久精品国产一区二区三区 | 亚洲精品久久久久中文第一幕 | 天堂а√在线中文在线 | 天堂亚洲2017在线观看 | 国产精品无码一区二区三区不卡 | 久久精品国产99久久6动漫 | 色欲久久久天天天综合网精品 | 娇妻被黑人粗大高潮白浆 | 久久国产劲爆∧v内射 | 俺去俺来也在线www色官网 | 国精品人妻无码一区二区三区蜜柚 | 国产精品怡红院永久免费 | 少妇邻居内射在线 | 欧美日韩人成综合在线播放 | 四十如虎的丰满熟妇啪啪 | 亚拍精品一区二区三区探花 | 亚洲自偷精品视频自拍 | 亚洲呦女专区 | 精品水蜜桃久久久久久久 | 成熟人妻av无码专区 | 精品国产一区二区三区av 性色 | 欧美国产日韩久久mv | 夜夜躁日日躁狠狠久久av | 国产成人无码av在线影院 | 天海翼激烈高潮到腰振不止 | 成人免费无码大片a毛片 | 成熟女人特级毛片www免费 | 熟女少妇人妻中文字幕 | 国产午夜无码精品免费看 | 久久久久99精品国产片 | 国产精品国产三级国产专播 | 精品少妇爆乳无码av无码专区 | 国产人成高清在线视频99最全资源 | 人人妻人人澡人人爽欧美一区九九 | 亚洲色大成网站www | 免费男性肉肉影院 | 国产做国产爱免费视频 | 精品久久久无码中文字幕 | 国产乡下妇女做爰 | 日日摸天天摸爽爽狠狠97 | 国产无av码在线观看 | 亚洲熟女一区二区三区 | 免费男性肉肉影院 | 亚洲精品国产精品乱码视色 | 久久久久av无码免费网 | 日产国产精品亚洲系列 | 日韩av无码中文无码电影 | 亚洲国产精品久久人人爱 | 亚洲日韩精品欧美一区二区 | 日韩欧美中文字幕在线三区 | 精品久久8x国产免费观看 | 欧美成人家庭影院 | 婷婷五月综合缴情在线视频 | 亚洲一区二区三区 | 久热国产vs视频在线观看 | 少妇被粗大的猛进出69影院 | 捆绑白丝粉色jk震动捧喷白浆 | 国产人妻精品一区二区三区不卡 | 沈阳熟女露脸对白视频 | 性色欲情网站iwww九文堂 | 亚洲欧美精品aaaaaa片 | 国产av无码专区亚洲awww | 色 综合 欧美 亚洲 国产 | 久久这里只有精品视频9 | 欧美熟妇另类久久久久久不卡 | 欧洲精品码一区二区三区免费看 | 国产精品丝袜黑色高跟鞋 | 无码人妻精品一区二区三区不卡 | 久久久久人妻一区精品色欧美 | 99久久99久久免费精品蜜桃 | 午夜福利一区二区三区在线观看 | 欧美丰满老熟妇xxxxx性 | 天天爽夜夜爽夜夜爽 | 天下第一社区视频www日本 | 亚洲一区二区三区无码久久 | 人人妻人人澡人人爽欧美精品 | 国产网红无码精品视频 | 在线a亚洲视频播放在线观看 | 亚洲日韩一区二区 | 国产69精品久久久久app下载 | 国产午夜亚洲精品不卡下载 | 日韩人妻无码一区二区三区久久99 | 国产麻豆精品一区二区三区v视界 | 波多野结衣高清一区二区三区 | aⅴ在线视频男人的天堂 | 精品无码国产自产拍在线观看蜜 | 女高中生第一次破苞av | 亚洲乱码国产乱码精品精 | 日韩精品a片一区二区三区妖精 | 成在人线av无码免费 | 麻豆md0077饥渴少妇 | 日本精品久久久久中文字幕 | 搡女人真爽免费视频大全 | 天天综合网天天综合色 | 999久久久国产精品消防器材 | 欧美日本免费一区二区三区 | 国产 浪潮av性色四虎 | 国产av人人夜夜澡人人爽麻豆 | 国产在线aaa片一区二区99 | 爆乳一区二区三区无码 | 亚洲中文无码av永久不收费 | 国产尤物精品视频 | 国语精品一区二区三区 | 日韩少妇白浆无码系列 | 熟女少妇在线视频播放 | 中文字幕无码av激情不卡 | 国产一区二区三区四区五区加勒比 | 在线 国产 欧美 亚洲 天堂 | 亚洲精品国产品国语在线观看 | 国产激情无码一区二区app | 啦啦啦www在线观看免费视频 | 久久99精品国产麻豆 | 精品国产成人一区二区三区 | 性生交大片免费看女人按摩摩 | 国产高清不卡无码视频 | 久久99精品国产.久久久久 | 色噜噜亚洲男人的天堂 | 人人妻人人澡人人爽人人精品 | 51国偷自产一区二区三区 | 桃花色综合影院 | 97夜夜澡人人爽人人喊中国片 | 国产精品人妻一区二区三区四 | 婷婷五月综合缴情在线视频 | 欧美成人免费全部网站 | 精品国产一区二区三区av 性色 | 亚洲爆乳无码专区 | 亚洲人成网站免费播放 | 亚洲男人av香蕉爽爽爽爽 | 欧美xxxx黑人又粗又长 | 色一情一乱一伦一视频免费看 | 俺去俺来也在线www色官网 | 国产精品怡红院永久免费 | 亚洲国产精品毛片av不卡在线 | 人人妻人人藻人人爽欧美一区 | 国产熟妇高潮叫床视频播放 | 中国女人内谢69xxxxxa片 | 东北女人啪啪对白 | 美女黄网站人色视频免费国产 | 日本精品久久久久中文字幕 | 精品国产av色一区二区深夜久久 | 亚洲中文字幕无码中字 | 色婷婷综合中文久久一本 | 亚洲色欲色欲欲www在线 | 亚洲熟妇色xxxxx亚洲 | 国语自产偷拍精品视频偷 | 蜜臀av无码人妻精品 | 黑人巨大精品欧美黑寡妇 | 一本久道久久综合婷婷五月 | 色一情一乱一伦一视频免费看 | 国产熟女一区二区三区四区五区 | 少妇高潮喷潮久久久影院 | 久久久久久亚洲精品a片成人 | 国内丰满熟女出轨videos | 18无码粉嫩小泬无套在线观看 | 国产精品人人爽人人做我的可爱 | 在线 国产 欧美 亚洲 天堂 | 自拍偷自拍亚洲精品被多人伦好爽 | 人人妻人人澡人人爽人人精品 | 在线亚洲高清揄拍自拍一品区 | 狠狠躁日日躁夜夜躁2020 | 婷婷五月综合缴情在线视频 | 国产精品人妻一区二区三区四 | 久久国产精品二国产精品 | 亚洲区小说区激情区图片区 | 伊在人天堂亚洲香蕉精品区 | 国产在线无码精品电影网 | 欧美人与动性行为视频 | 久久亚洲a片com人成 | 欧美人与动性行为视频 | 好屌草这里只有精品 | 精品偷拍一区二区三区在线看 | 3d动漫精品啪啪一区二区中 | 国产乡下妇女做爰 | 亚洲区小说区激情区图片区 | 午夜福利电影 | 超碰97人人射妻 | 日本一卡2卡3卡四卡精品网站 | 亚洲七七久久桃花影院 | 久久国语露脸国产精品电影 | 好屌草这里只有精品 | 国产特级毛片aaaaaaa高清 | 日本免费一区二区三区最新 | 野外少妇愉情中文字幕 | 在线播放亚洲第一字幕 | 又紧又大又爽精品一区二区 | 亚洲一区二区三区国产精华液 | 丁香啪啪综合成人亚洲 | 精品乱子伦一区二区三区 | 成人动漫在线观看 | 色一情一乱一伦 | 久久久久成人精品免费播放动漫 | 亚洲七七久久桃花影院 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 少女韩国电视剧在线观看完整 | 国产精品美女久久久 | 初尝人妻少妇中文字幕 | 久久无码中文字幕免费影院蜜桃 | 水蜜桃av无码 | 丰满肥臀大屁股熟妇激情视频 | 国产特级毛片aaaaaa高潮流水 | 日本乱偷人妻中文字幕 | 日日麻批免费40分钟无码 | 真人与拘做受免费视频 | 亚洲天堂2017无码 | 人人妻在人人 | 亚洲精品久久久久avwww潮水 | 成人动漫在线观看 | 国产精品爱久久久久久久 | 小sao货水好多真紧h无码视频 | 国产97人人超碰caoprom | 国产乡下妇女做爰 | 久久精品一区二区三区四区 | 蜜臀av无码人妻精品 | 日本va欧美va欧美va精品 | 少妇人妻av毛片在线看 | 国产成人精品无码播放 | 男女下面进入的视频免费午夜 | 亚洲国产精品久久久天堂 | 久久人人爽人人爽人人片ⅴ | 久久久久av无码免费网 | 欧美老熟妇乱xxxxx | 亚洲欧洲无卡二区视頻 | 98国产精品综合一区二区三区 | 亚洲综合久久一区二区 | 亚洲人亚洲人成电影网站色 | 亚洲色欲色欲天天天www | 日日噜噜噜噜夜夜爽亚洲精品 | 鲁大师影院在线观看 | 性做久久久久久久久 | 国精品人妻无码一区二区三区蜜柚 | 特级做a爰片毛片免费69 | 国产免费无码一区二区视频 | 中文字幕人妻无码一夲道 | 国产精品无码一区二区三区不卡 | 欧美第一黄网免费网站 | 欧美xxxx黑人又粗又长 | 久久久久久a亚洲欧洲av冫 | 欧美亚洲日韩国产人成在线播放 | 99久久精品无码一区二区毛片 | 老熟妇仑乱视频一区二区 | 日日干夜夜干 | 色婷婷av一区二区三区之红樱桃 | 伊人久久大香线蕉av一区二区 | 免费无码肉片在线观看 | 欧美性生交xxxxx久久久 | 久久精品成人欧美大片 | 男人和女人高潮免费网站 | 久久97精品久久久久久久不卡 | 欧美老人巨大xxxx做受 | 内射白嫩少妇超碰 | 久久精品99久久香蕉国产色戒 | 天海翼激烈高潮到腰振不止 | 国产精品国产自线拍免费软件 | 精品无码一区二区三区的天堂 | 老熟女乱子伦 | 美女毛片一区二区三区四区 | 妺妺窝人体色www在线小说 | 国产成人综合在线女婷五月99播放 | 人人妻人人澡人人爽人人精品 | 人妻夜夜爽天天爽三区 | 欧美放荡的少妇 | 亚洲国产综合无码一区 | 55夜色66夜色国产精品视频 | 久久人人97超碰a片精品 | 男女作爱免费网站 | 丰满少妇人妻久久久久久 | 成 人影片 免费观看 | 99精品无人区乱码1区2区3区 | 久久久成人毛片无码 | 亚洲啪av永久无码精品放毛片 | 国产亚洲人成a在线v网站 | 欧美国产日韩久久mv | 97精品人妻一区二区三区香蕉 | 动漫av一区二区在线观看 | 搡女人真爽免费视频大全 | 久久99精品国产麻豆 | 成人女人看片免费视频放人 | 性色欲网站人妻丰满中文久久不卡 | 日欧一片内射va在线影院 | 丁香啪啪综合成人亚洲 | 伊人久久大香线焦av综合影院 | 亚洲va欧美va天堂v国产综合 | 天海翼激烈高潮到腰振不止 | 色欲av亚洲一区无码少妇 | 无码av免费一区二区三区试看 | 国産精品久久久久久久 | 国产精品爱久久久久久久 | 久久这里只有精品视频9 | 国产av人人夜夜澡人人爽麻豆 | 清纯唯美经典一区二区 | 亚洲欧洲日本无在线码 | 奇米影视7777久久精品人人爽 | 国产尤物精品视频 | 成人精品一区二区三区中文字幕 | 日本精品少妇一区二区三区 | 国产suv精品一区二区五 | 色窝窝无码一区二区三区色欲 | 一本一道久久综合久久 | 国产亚洲欧美在线专区 | 一本久道久久综合狠狠爱 | 成人一在线视频日韩国产 | 国产人妻大战黑人第1集 | 色一情一乱一伦 | www国产精品内射老师 | 丰腴饱满的极品熟妇 | 亚洲日本va午夜在线电影 | 色诱久久久久综合网ywww | 日韩精品无码一本二本三本色 | 亚洲综合色区中文字幕 | 久久国产精品萌白酱免费 | 午夜福利电影 | 精品国精品国产自在久国产87 | 国内综合精品午夜久久资源 | 国产精品毛片一区二区 | 国产成人综合在线女婷五月99播放 | 麻豆精产国品 | 国产精品嫩草久久久久 | 久久天天躁狠狠躁夜夜免费观看 | 一本无码人妻在中文字幕免费 | 一本久道高清无码视频 | 少妇的肉体aa片免费 | 97久久国产亚洲精品超碰热 | 丁香花在线影院观看在线播放 | 亚洲码国产精品高潮在线 | 无码人妻丰满熟妇区毛片18 | av无码久久久久不卡免费网站 | 亚洲 高清 成人 动漫 | 大胆欧美熟妇xx | 欧美性猛交xxxx富婆 | 亚洲另类伦春色综合小说 | 国产麻豆精品精东影业av网站 | 精品亚洲韩国一区二区三区 | 欧美性黑人极品hd | 最新国产麻豆aⅴ精品无码 | 国产乱人无码伦av在线a | 欧美日韩精品 | 内射老妇bbwx0c0ck | 青青久在线视频免费观看 | 熟妇人妻无乱码中文字幕 | 九月婷婷人人澡人人添人人爽 | 欧美怡红院免费全部视频 | 又大又紧又粉嫩18p少妇 | 思思久久99热只有频精品66 | 老熟妇乱子伦牲交视频 | 免费乱码人妻系列无码专区 | 欧美老妇与禽交 | 欧美丰满少妇xxxx性 | 蜜桃无码一区二区三区 | 97夜夜澡人人爽人人喊中国片 | 亚洲成a人一区二区三区 | 久久国产精品精品国产色婷婷 | 天天躁日日躁狠狠躁免费麻豆 | 沈阳熟女露脸对白视频 | 亚洲精品综合一区二区三区在线 | 一本一道久久综合久久 | 奇米影视7777久久精品 | 国产人成高清在线视频99最全资源 | 国产精品无码mv在线观看 | 亚洲欧洲日本无在线码 | 久久天天躁狠狠躁夜夜免费观看 | 东京一本一道一二三区 | 免费看少妇作爱视频 | 欧美变态另类xxxx | 丰满人妻一区二区三区免费视频 | 大屁股大乳丰满人妻 | 亚洲一区二区三区无码久久 | 天天拍夜夜添久久精品大 | 成人免费视频视频在线观看 免费 | 牲欲强的熟妇农村老妇女视频 | 中文字幕无线码免费人妻 | 日本饥渴人妻欲求不满 | 国产午夜福利亚洲第一 | 亚洲中文字幕在线无码一区二区 | 97人妻精品一区二区三区 | 久久综合网欧美色妞网 | 狠狠色噜噜狠狠狠狠7777米奇 | 永久免费观看国产裸体美女 | 国产午夜无码视频在线观看 | 波多野结衣高清一区二区三区 | 日韩亚洲欧美精品综合 | 中文字幕无码av激情不卡 | 丰满岳乱妇在线观看中字无码 | 亚洲欧美中文字幕5发布 | 日本精品久久久久中文字幕 | 美女扒开屁股让男人桶 | 亚洲精品综合五月久久小说 | 无码人妻精品一区二区三区不卡 | 无码一区二区三区在线观看 | 亚洲乱码中文字幕在线 | 国产内射爽爽大片视频社区在线 | 无码av中文字幕免费放 | 性生交片免费无码看人 | 国产99久久精品一区二区 | 伊在人天堂亚洲香蕉精品区 | 久久国产精品偷任你爽任你 | 性色欲网站人妻丰满中文久久不卡 | 色综合视频一区二区三区 | 成人亚洲精品久久久久 | 国产精品国产自线拍免费软件 | 免费国产成人高清在线观看网站 | 亚洲欧美国产精品专区久久 | 久久久久人妻一区精品色欧美 | 亚无码乱人伦一区二区 | 精品国产精品久久一区免费式 | 精品一区二区三区波多野结衣 | 美女极度色诱视频国产 | 三上悠亚人妻中文字幕在线 | 精品国产青草久久久久福利 | 午夜精品一区二区三区在线观看 | 18禁黄网站男男禁片免费观看 | 午夜理论片yy44880影院 | 国产精品自产拍在线观看 | 搡女人真爽免费视频大全 | 亚洲码国产精品高潮在线 | 国产熟女一区二区三区四区五区 | 欧美人妻一区二区三区 | 中文无码成人免费视频在线观看 | 十八禁视频网站在线观看 | 天天躁夜夜躁狠狠是什么心态 | 丰满少妇人妻久久久久久 | 日欧一片内射va在线影院 | 日韩精品无码一本二本三本色 | 国语自产偷拍精品视频偷 | 99久久精品无码一区二区毛片 | 久久精品成人欧美大片 | 老熟妇乱子伦牲交视频 | 精品久久久中文字幕人妻 | 日日橹狠狠爱欧美视频 | 日本精品高清一区二区 | 亚洲成色在线综合网站 | 久久伊人色av天堂九九小黄鸭 | 99久久亚洲精品无码毛片 | 日韩精品一区二区av在线 | 1000部啪啪未满十八勿入下载 | 国产精品理论片在线观看 | 无人区乱码一区二区三区 | 久久97精品久久久久久久不卡 | 久久天天躁夜夜躁狠狠 | 色综合久久久无码中文字幕 | 欧美国产日韩久久mv | 丰满岳乱妇在线观看中字无码 | 乱码午夜-极国产极内射 | 一本一道久久综合久久 | 波多野结衣av在线观看 | 国产精品久久久av久久久 | 激情五月综合色婷婷一区二区 | 大屁股大乳丰满人妻 | 中文字幕无码av激情不卡 | 成人精品视频一区二区三区尤物 | 国产成人精品必看 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产片av国语在线观看 | 综合激情五月综合激情五月激情1 | 国产极品视觉盛宴 | 久久精品丝袜高跟鞋 | 日本护士毛茸茸高潮 | 97精品国产97久久久久久免费 | 97精品国产97久久久久久免费 | 麻豆人妻少妇精品无码专区 | 国产亚洲美女精品久久久2020 | 丰满妇女强制高潮18xxxx | 国产农村妇女高潮大叫 | 激情爆乳一区二区三区 | 97精品人妻一区二区三区香蕉 | 天下第一社区视频www日本 | 美女极度色诱视频国产 | 久久国产精品萌白酱免费 | 成人无码视频免费播放 | 成人精品一区二区三区中文字幕 | 蜜臀av在线播放 久久综合激激的五月天 | 中文字幕色婷婷在线视频 | av香港经典三级级 在线 | 男女超爽视频免费播放 | 日产精品高潮呻吟av久久 | 乱人伦中文视频在线观看 | 亚洲欧美日韩国产精品一区二区 | 思思久久99热只有频精品66 | 高潮毛片无遮挡高清免费 | 亚洲成a人片在线观看无码 | 青春草在线视频免费观看 | 国产真实夫妇视频 | 色偷偷人人澡人人爽人人模 | 无遮挡啪啪摇乳动态图 | 亚洲日本va午夜在线电影 | 国产成人一区二区三区在线观看 | 人妻体内射精一区二区三四 | 亚洲精品久久久久avwww潮水 | 黑人大群体交免费视频 | 狠狠cao日日穞夜夜穞av | 黑人粗大猛烈进出高潮视频 | 少妇无套内谢久久久久 | 国产成人精品久久亚洲高清不卡 | 自拍偷自拍亚洲精品被多人伦好爽 | 粉嫩少妇内射浓精videos | 日本精品人妻无码免费大全 | 色综合久久久无码中文字幕 | 欧美成人免费全部网站 | 国产精品理论片在线观看 | 国产人妻精品午夜福利免费 | 日韩亚洲欧美中文高清在线 | 欧洲精品码一区二区三区免费看 | 99精品国产综合久久久久五月天 | 99视频精品全部免费免费观看 | 国内精品九九久久久精品 | 欧美性黑人极品hd | 亚洲国产精品一区二区第一页 | 男女性色大片免费网站 | 国产成人精品优优av | 特大黑人娇小亚洲女 | 无遮挡国产高潮视频免费观看 | 色综合久久网 | 亚洲一区二区三区香蕉 | 亚洲精品国产精品乱码视色 | 国产成人一区二区三区在线观看 | 国产成人无码a区在线观看视频app | 午夜嘿嘿嘿影院 | 午夜成人1000部免费视频 | 成人一区二区免费视频 | аⅴ资源天堂资源库在线 | 亚洲熟妇自偷自拍另类 | 免费乱码人妻系列无码专区 | 久久天天躁狠狠躁夜夜免费观看 | 国产人妻精品一区二区三区不卡 | 少妇性荡欲午夜性开放视频剧场 | 国产精品高潮呻吟av久久4虎 | 午夜无码人妻av大片色欲 | 国产午夜无码视频在线观看 | 国产福利视频一区二区 | 女人色极品影院 | 欧洲vodafone精品性 | 自拍偷自拍亚洲精品10p | 国产精品久免费的黄网站 | 国产精品高潮呻吟av久久 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 久久这里只有精品视频9 | 夜夜躁日日躁狠狠久久av | 中文字幕精品av一区二区五区 | 玩弄少妇高潮ⅹxxxyw | 天天摸天天碰天天添 | 熟妇女人妻丰满少妇中文字幕 | 国产激情综合五月久久 | 在线观看欧美一区二区三区 | 成人片黄网站色大片免费观看 | 久久久久久久久蜜桃 | 亚洲成a人片在线观看无码 | 西西人体www44rt大胆高清 | 久久99久久99精品中文字幕 | 中文字幕无码免费久久99 | 国产亚洲精品久久久ai换 | 性生交大片免费看女人按摩摩 | 国产精品手机免费 | 国产人妻人伦精品1国产丝袜 | 99精品无人区乱码1区2区3区 | 在线精品国产一区二区三区 | 久久无码中文字幕免费影院蜜桃 | 真人与拘做受免费视频一 | 免费视频欧美无人区码 | 午夜精品一区二区三区在线观看 | 亚洲中文字幕无码中文字在线 | 国产精品亚洲а∨无码播放麻豆 | 99精品国产综合久久久久五月天 | 午夜男女很黄的视频 | 国产日产欧产精品精品app | 精品国产乱码久久久久乱码 | 性做久久久久久久免费看 | 丝袜人妻一区二区三区 | 国内少妇偷人精品视频 | 欧美国产亚洲日韩在线二区 | 精品日本一区二区三区在线观看 | 亚洲天堂2017无码 | 久久精品国产大片免费观看 | 青青久在线视频免费观看 | 日韩少妇白浆无码系列 | 久9re热视频这里只有精品 | 野外少妇愉情中文字幕 | 亚洲一区二区三区含羞草 | 亚洲欧洲日本综合aⅴ在线 | 亚洲中文字幕va福利 | 97夜夜澡人人爽人人喊中国片 | 青青青爽视频在线观看 | 日日天日日夜日日摸 | 国产香蕉尹人综合在线观看 | 1000部夫妻午夜免费 | 中文字幕无码av激情不卡 | 国语自产偷拍精品视频偷 | 成人性做爰aaa片免费看不忠 | 夜夜躁日日躁狠狠久久av | 九九在线中文字幕无码 | 亚洲最大成人网站 | 99视频精品全部免费免费观看 | 亚洲 高清 成人 动漫 | 日日干夜夜干 | 亚洲日本va中文字幕 | 久久久久久久久888 | 亚洲 a v无 码免 费 成 人 a v | 爽爽影院免费观看 | 精品 日韩 国产 欧美 视频 | 又粗又大又硬毛片免费看 | 亚洲色无码一区二区三区 | 亚洲欧美精品aaaaaa片 | 亚洲成在人网站无码天堂 | 无遮挡国产高潮视频免费观看 | 国产精品igao视频网 | 无码纯肉视频在线观看 | 国产精品无码一区二区三区不卡 | 高中生自慰www网站 | 中文字幕乱码亚洲无线三区 | 午夜精品一区二区三区在线观看 | 妺妺窝人体色www在线小说 | 国产午夜手机精彩视频 | 国产人妻精品一区二区三区 | 人人澡人人透人人爽 | 国产精品二区一区二区aⅴ污介绍 | 国产 浪潮av性色四虎 | 国产精品人人爽人人做我的可爱 | 欧美乱妇无乱码大黄a片 | 婷婷丁香五月天综合东京热 | 18禁黄网站男男禁片免费观看 | 国产成人综合在线女婷五月99播放 | 国产精品美女久久久久av爽李琼 | 99久久99久久免费精品蜜桃 | www成人国产高清内射 | 国产又爽又黄又刺激的视频 | 亚洲国产精品成人久久蜜臀 | 亚洲中文字幕无码一久久区 | 亚洲精品一区二区三区在线 | 日韩人妻系列无码专区 | 一本大道久久东京热无码av | 久久国产精品二国产精品 | 天堂亚洲免费视频 | 国产av一区二区三区最新精品 | 国产精品久久久久9999小说 | 精品欧洲av无码一区二区三区 | 无人区乱码一区二区三区 | 久久99久久99精品中文字幕 | 97色伦图片97综合影院 | 人人澡人人妻人人爽人人蜜桃 | 国产成人一区二区三区在线观看 | 性色欲网站人妻丰满中文久久不卡 | 日本又色又爽又黄的a片18禁 | 男女性色大片免费网站 | 中文字幕亚洲情99在线 | 午夜无码区在线观看 | 精品国产一区二区三区av 性色 | 精品人妻中文字幕有码在线 | 少妇无码吹潮 | 国产精品内射视频免费 | 无码人妻丰满熟妇区五十路百度 | 国内综合精品午夜久久资源 | 国产亚洲精品久久久ai换 | 青青久在线视频免费观看 | 国产精品无码一区二区三区不卡 | 中文亚洲成a人片在线观看 | 日韩在线不卡免费视频一区 | 亚洲色欲久久久综合网东京热 | 免费无码午夜福利片69 | 国产性生交xxxxx无码 | 欧洲精品码一区二区三区免费看 | 亚洲の无码国产の无码影院 | 欧美老妇交乱视频在线观看 | 国产午夜手机精彩视频 | 老子影院午夜精品无码 | 中文精品无码中文字幕无码专区 | 欧美精品国产综合久久 | 无码av中文字幕免费放 | 少妇的肉体aa片免费 | 免费无码午夜福利片69 | 久久精品人人做人人综合试看 | 精品国产一区二区三区av 性色 | 亚洲高清偷拍一区二区三区 | 中文字幕av无码一区二区三区电影 | 免费视频欧美无人区码 | √天堂资源地址中文在线 | 野狼第一精品社区 | 亚洲欧美国产精品专区久久 | 夜夜夜高潮夜夜爽夜夜爰爰 | 天干天干啦夜天干天2017 | 国精产品一品二品国精品69xx | 乌克兰少妇性做爰 | 丝袜美腿亚洲一区二区 | 色综合久久久久综合一本到桃花网 | 亚洲中文字幕va福利 | 久久人人爽人人人人片 | 久久精品一区二区三区四区 | 日本一卡2卡3卡四卡精品网站 | 无码精品国产va在线观看dvd | 国产精品久久福利网站 | 亚洲综合久久一区二区 | av小次郎收藏 | 国产 浪潮av性色四虎 | 少妇人妻大乳在线视频 | 国产一精品一av一免费 | 一区二区三区高清视频一 | 免费人成在线视频无码 | 午夜无码人妻av大片色欲 | 99久久精品无码一区二区毛片 | 国产熟妇高潮叫床视频播放 | 中文字幕无码乱人伦 | 欧美自拍另类欧美综合图片区 | 亚洲国产欧美日韩精品一区二区三区 | 一区二区三区乱码在线 | 欧洲 | 人人妻人人澡人人爽欧美一区九九 | 国产精品爱久久久久久久 | 国产成人无码av在线影院 | 亚洲国产欧美国产综合一区 | 国产亚洲精品久久久久久久久动漫 | 国产偷国产偷精品高清尤物 | 少妇厨房愉情理9仑片视频 | 真人与拘做受免费视频一 | 国内精品久久毛片一区二区 | 国产xxx69麻豆国语对白 | 久久视频在线观看精品 | 久久精品国产99精品亚洲 | 成人无码精品1区2区3区免费看 | 精品无码一区二区三区爱欲 | 国产成人精品视频ⅴa片软件竹菊 | 精品国产乱码久久久久乱码 | 欧美人与禽zoz0性伦交 | 伊人久久大香线蕉av一区二区 | 日日摸日日碰夜夜爽av | 性史性农村dvd毛片 | 一区二区三区乱码在线 | 欧洲 | 18黄暴禁片在线观看 | 色 综合 欧美 亚洲 国产 | 亚洲国产综合无码一区 | 亚洲色欲久久久综合网东京热 | 青草视频在线播放 | 未满小14洗澡无码视频网站 | 激情内射日本一区二区三区 | 久久亚洲精品成人无码 | 九九久久精品国产免费看小说 | 青青青手机频在线观看 | 中文字幕日产无线码一区 | 久久精品无码一区二区三区 | 国产精品自产拍在线观看 | 无码人妻久久一区二区三区不卡 | 免费看少妇作爱视频 | 性做久久久久久久久 | 亚洲国产av精品一区二区蜜芽 | 蜜桃av抽搐高潮一区二区 | 丁香花在线影院观看在线播放 | 国产香蕉尹人综合在线观看 | 九一九色国产 | 国产偷自视频区视频 | 激情国产av做激情国产爱 | 4hu四虎永久在线观看 | 人妻无码久久精品人妻 | 久久99国产综合精品 | 亚洲色偷偷偷综合网 | 天干天干啦夜天干天2017 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 美女张开腿让人桶 | 无码国产激情在线观看 | 亚洲欧洲无卡二区视頻 | 少妇被粗大的猛进出69影院 | 午夜时刻免费入口 | 三级4级全黄60分钟 | 少妇厨房愉情理9仑片视频 | 青春草在线视频免费观看 | 性做久久久久久久免费看 | 精品国产成人一区二区三区 | 日韩欧美群交p片內射中文 | 国产偷抇久久精品a片69 | 无码国产乱人伦偷精品视频 | 18黄暴禁片在线观看 | 无码精品国产va在线观看dvd | 天天综合网天天综合色 | 久久99热只有频精品8 | 日产国产精品亚洲系列 | √8天堂资源地址中文在线 | 久久人人爽人人爽人人片ⅴ | 国产精品久久久久久亚洲影视内衣 | 无套内谢老熟女 | 国产尤物精品视频 | 国精产品一品二品国精品69xx | 国内精品人妻无码久久久影院 | 日本精品人妻无码77777 天堂一区人妻无码 | 亚洲人成影院在线观看 | 人妻少妇精品视频专区 | 亚洲阿v天堂在线 | 国产精品鲁鲁鲁 | 亚洲无人区午夜福利码高清完整版 | 久久国产精品萌白酱免费 | 色 综合 欧美 亚洲 国产 | 国产精品亚洲五月天高清 | 性欧美牲交在线视频 | 丝袜人妻一区二区三区 | 欧美三级a做爰在线观看 | 精品无码国产一区二区三区av | 亚洲日韩一区二区三区 | 夜夜影院未满十八勿进 | 俺去俺来也在线www色官网 | 国产精品亚洲lv粉色 | 国产黄在线观看免费观看不卡 | 2019午夜福利不卡片在线 | 欧美自拍另类欧美综合图片区 | 中文字幕无码av波多野吉衣 | 综合网日日天干夜夜久久 | 中文字幕亚洲情99在线 | 精品国产一区二区三区av 性色 | 国产成人综合美国十次 | 在线观看免费人成视频 | 成人aaa片一区国产精品 | 未满小14洗澡无码视频网站 | 黄网在线观看免费网站 | 日韩人妻无码一区二区三区久久99 | 日韩欧美中文字幕公布 | 毛片内射-百度 | 日韩无套无码精品 | 国产精品人妻一区二区三区四 | 麻花豆传媒剧国产免费mv在线 | 国产精品高潮呻吟av久久 | 图片小说视频一区二区 | 久久精品国产精品国产精品污 | 欧美日韩一区二区三区自拍 | 人人爽人人澡人人高潮 | av无码电影一区二区三区 | 国产免费无码一区二区视频 | 99riav国产精品视频 | 国产免费久久精品国产传媒 | 在线天堂新版最新版在线8 | 国产激情精品一区二区三区 | 捆绑白丝粉色jk震动捧喷白浆 | 国产精品二区一区二区aⅴ污介绍 | 中文字幕无线码免费人妻 | 一二三四社区在线中文视频 | 亚洲码国产精品高潮在线 | 久久人人爽人人爽人人片ⅴ | 欧美性色19p | 亚洲国产av美女网站 | 精品无人国产偷自产在线 | 日本饥渴人妻欲求不满 | 国产亚洲精品精品国产亚洲综合 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产一区二区三区影院 | 亚洲成a人片在线观看日本 | 精品久久综合1区2区3区激情 | 免费人成在线观看网站 | 欧美怡红院免费全部视频 | 强伦人妻一区二区三区视频18 | 国产无av码在线观看 | 蜜桃无码一区二区三区 | 乱人伦人妻中文字幕无码 | 成人亚洲精品久久久久软件 | 欧美日本免费一区二区三区 | 99久久精品无码一区二区毛片 | 高潮毛片无遮挡高清免费视频 | 国产9 9在线 | 中文 | 丝袜人妻一区二区三区 | 丰满妇女强制高潮18xxxx | 99久久人妻精品免费二区 | 极品尤物被啪到呻吟喷水 | 乱中年女人伦av三区 | 亚洲一区二区观看播放 | 中文字幕av无码一区二区三区电影 | 国产真人无遮挡作爱免费视频 | 亚洲成av人片天堂网无码】 | 久久久精品456亚洲影院 | 樱花草在线播放免费中文 | 日日麻批免费40分钟无码 | 精品人妻中文字幕有码在线 | 国产精品人人妻人人爽 | 中文字幕无码av波多野吉衣 | 久久99国产综合精品 | 图片小说视频一区二区 | 国产精品亚洲五月天高清 | 性欧美熟妇videofreesex | 亚洲日本va中文字幕 | 国语精品一区二区三区 | 精品国产av色一区二区深夜久久 | 欧美性猛交xxxx富婆 | 999久久久国产精品消防器材 | 中文无码成人免费视频在线观看 | 日本又色又爽又黄的a片18禁 | 久久zyz资源站无码中文动漫 | 无码av岛国片在线播放 | 国产精品人人妻人人爽 | 欧美野外疯狂做受xxxx高潮 | 最近免费中文字幕中文高清百度 | 国产精品沙发午睡系列 | aⅴ亚洲 日韩 色 图网站 播放 | 欧美freesex黑人又粗又大 | 久热国产vs视频在线观看 | 国产色在线 | 国产 | 亚洲成熟女人毛毛耸耸多 | 国产精品99久久精品爆乳 | 色偷偷人人澡人人爽人人模 | 中文字幕无码视频专区 | 色老头在线一区二区三区 | 日日鲁鲁鲁夜夜爽爽狠狠 | 亚洲精品国偷拍自产在线观看蜜桃 | 在线欧美精品一区二区三区 | 午夜不卡av免费 一本久久a久久精品vr综合 | 扒开双腿疯狂进出爽爽爽视频 | 久久久久久a亚洲欧洲av冫 | 国产亚洲美女精品久久久2020 | 国产精品久久福利网站 | 中文字幕亚洲情99在线 | 国产内射老熟女aaaa | 中文字幕无线码 | 2019午夜福利不卡片在线 | 中文字幕+乱码+中文字幕一区 | 国产午夜精品一区二区三区嫩草 | 亚洲国产欧美日韩精品一区二区三区 | 色欲av亚洲一区无码少妇 | 国产成人无码一二三区视频 | 国产成人无码午夜视频在线观看 | 老熟妇仑乱视频一区二区 | 欧美三级不卡在线观看 | 久久久成人毛片无码 | 久久99精品国产.久久久久 | 色综合久久久无码中文字幕 | 国产精品亚洲五月天高清 | 天天拍夜夜添久久精品 | 国产精品久久精品三级 | 少妇无码一区二区二三区 | 午夜熟女插插xx免费视频 | 欧美怡红院免费全部视频 | 无码中文字幕色专区 | 欧美放荡的少妇 | 精品人人妻人人澡人人爽人人 | 好男人www社区 | 日韩人妻系列无码专区 | 无人区乱码一区二区三区 | 免费观看的无遮挡av | 日日夜夜撸啊撸 | 亚洲中文字幕无码一久久区 | 国产精品久久久av久久久 | 97久久国产亚洲精品超碰热 | 亚洲国产精品一区二区美利坚 | 亚洲色欲久久久综合网东京热 | 国产色在线 | 国产 | 大色综合色综合网站 | 国产成人无码av在线影院 | 国产激情艳情在线看视频 | 亚洲精品久久久久久一区二区 | 久久人人爽人人人人片 | 亚洲 欧美 激情 小说 另类 | 人人爽人人澡人人人妻 | 日本精品人妻无码免费大全 | 亚洲精品国产精品乱码视色 | 精品亚洲成av人在线观看 | 四虎影视成人永久免费观看视频 | 色综合久久久无码网中文 | 亚洲人成网站色7799 | 亚洲精品无码人妻无码 | 久久久久99精品国产片 | 18精品久久久无码午夜福利 | 国产精品无码mv在线观看 | 欧美成人高清在线播放 | 少妇被粗大的猛进出69影院 | 久久精品国产99精品亚洲 | 日本一区二区三区免费高清 | 丰满肥臀大屁股熟妇激情视频 | 最新国产乱人伦偷精品免费网站 | 青春草在线视频免费观看 | 日日摸天天摸爽爽狠狠97 | 欧美国产日产一区二区 | 中文久久乱码一区二区 | 亚洲人成影院在线观看 | 性史性农村dvd毛片 | 扒开双腿疯狂进出爽爽爽视频 | 国产电影无码午夜在线播放 | 久久精品国产99精品亚洲 | 精品一二三区久久aaa片 | 亚洲经典千人经典日产 | 樱花草在线播放免费中文 | 中文字幕无码av波多野吉衣 | 欧美激情综合亚洲一二区 | 精品无人区无码乱码毛片国产 | 两性色午夜免费视频 | 我要看www免费看插插视频 | 无码中文字幕色专区 | 国产美女极度色诱视频www | 日日鲁鲁鲁夜夜爽爽狠狠 | 精品一区二区三区无码免费视频 | 老子影院午夜伦不卡 | 国产在线精品一区二区三区直播 | 黑森林福利视频导航 | 日本xxxx色视频在线观看免费 | 黑人玩弄人妻中文在线 | 男女超爽视频免费播放 | 亚洲精品国产精品乱码视色 | 亚洲国产精品成人久久蜜臀 | 97夜夜澡人人双人人人喊 | 极品嫩模高潮叫床 | 一区二区三区高清视频一 | 久久www免费人成人片 | 精品水蜜桃久久久久久久 | 久久99久久99精品中文字幕 | 无码人妻丰满熟妇区毛片18 | 欧美三级不卡在线观看 | 九九久久精品国产免费看小说 | 亚洲国产综合无码一区 | 亚洲熟悉妇女xxx妇女av | 精品国产一区二区三区av 性色 | 东京无码熟妇人妻av在线网址 | 欧美黑人性暴力猛交喷水 | 婷婷丁香五月天综合东京热 | 欧美日韩视频无码一区二区三 | 亚洲阿v天堂在线 | 国产乱人无码伦av在线a | 亚洲国产午夜精品理论片 | 亚洲一区二区三区含羞草 | 欧美国产日韩亚洲中文 | 小泽玛莉亚一区二区视频在线 | 亚洲天堂2017无码 | 日日噜噜噜噜夜夜爽亚洲精品 | www国产亚洲精品久久久日本 | 草草网站影院白丝内射 | 在线观看国产一区二区三区 | 国产亚洲精品久久久久久国模美 | 日韩欧美群交p片內射中文 | 人妻夜夜爽天天爽三区 | 搡女人真爽免费视频大全 | 天海翼激烈高潮到腰振不止 | 日本在线高清不卡免费播放 | 亚洲精品综合一区二区三区在线 | 亚洲精品久久久久中文第一幕 | 精品无人区无码乱码毛片国产 | 国产极品视觉盛宴 | 大肉大捧一进一出好爽视频 | 国产黄在线观看免费观看不卡 | www一区二区www免费 | 青草青草久热国产精品 | 一本久久a久久精品亚洲 | 国产精品无套呻吟在线 | 无码任你躁久久久久久久 | 免费人成在线观看网站 | 久久久久成人精品免费播放动漫 | 亚洲精品国产精品乱码不卡 | 成人精品视频一区二区 | 久久精品成人欧美大片 | 国产精品久久久久久无码 | 亚洲色大成网站www | 久久精品国产日本波多野结衣 | 国产另类ts人妖一区二区 | 欧美性猛交xxxx富婆 | 丰满人妻精品国产99aⅴ | 日本熟妇人妻xxxxx人hd | 性生交片免费无码看人 | 77777熟女视频在线观看 а天堂中文在线官网 | 亚洲国产欧美日韩精品一区二区三区 | 成人免费视频在线观看 | 野狼第一精品社区 | 亚洲热妇无码av在线播放 | 国产熟女一区二区三区四区五区 | 国产特级毛片aaaaaaa高清 | 久久综合香蕉国产蜜臀av | 久久天天躁狠狠躁夜夜免费观看 | 亚洲一区二区三区含羞草 | 亚洲阿v天堂在线 | 国产片av国语在线观看 | 最新国产乱人伦偷精品免费网站 | 久久99国产综合精品 | 一本精品99久久精品77 | 大屁股大乳丰满人妻 | 中文字幕色婷婷在线视频 | 麻豆国产丝袜白领秘书在线观看 | 俺去俺来也www色官网 | 动漫av一区二区在线观看 | 久久久久亚洲精品中文字幕 | 一本久久伊人热热精品中文字幕 | 激情内射日本一区二区三区 | 久久国产自偷自偷免费一区调 | 我要看www免费看插插视频 | 亚洲欧美日韩成人高清在线一区 | 亚洲经典千人经典日产 | 精品 日韩 国产 欧美 视频 | 精品无码av一区二区三区 | 人人妻人人澡人人爽欧美一区九九 | 国产熟妇另类久久久久 | 国产精品办公室沙发 | 亚洲乱码中文字幕在线 | 日本一区二区三区免费播放 | 国产亲子乱弄免费视频 | 日本精品人妻无码免费大全 | 国产午夜亚洲精品不卡下载 | 一二三四在线观看免费视频 | 国产精品久久久午夜夜伦鲁鲁 | 国产精品人人妻人人爽 | 人人妻人人澡人人爽人人精品 | 丝袜 中出 制服 人妻 美腿 | 精品亚洲韩国一区二区三区 | 夜精品a片一区二区三区无码白浆 | 国产av久久久久精东av | 久久精品国产亚洲精品 | 亚洲精品午夜国产va久久成人 | 国产综合在线观看 | 久久无码中文字幕免费影院蜜桃 | 老熟女重囗味hdxx69 | 色综合久久久无码网中文 | 亚洲国产日韩a在线播放 | 好屌草这里只有精品 | 999久久久国产精品消防器材 | 日本成熟视频免费视频 | 在线成人www免费观看视频 | 久久久久久久人妻无码中文字幕爆 | 永久黄网站色视频免费直播 | 国产电影无码午夜在线播放 | 久久久久99精品国产片 | 日本熟妇人妻xxxxx人hd | 亚洲综合伊人久久大杳蕉 | 亚洲精品综合一区二区三区在线 | 亚洲日韩乱码中文无码蜜桃臀网站 | 又紧又大又爽精品一区二区 | 99久久精品国产一区二区蜜芽 | 99久久亚洲精品无码毛片 | 荫蒂添的好舒服视频囗交 | 国产一区二区不卡老阿姨 | 国产精品久久久久久亚洲影视内衣 | 久久久婷婷五月亚洲97号色 | 国产一区二区不卡老阿姨 | 天堂在线观看www | 欧美性黑人极品hd | 精品成在人线av无码免费看 | 骚片av蜜桃精品一区 | 日韩欧美中文字幕在线三区 | 呦交小u女精品视频 | yw尤物av无码国产在线观看 | 精品无码国产自产拍在线观看蜜 | 99久久无码一区人妻 | 欧美高清在线精品一区 | 未满成年国产在线观看 | 丰满少妇熟乱xxxxx视频 | 奇米影视7777久久精品人人爽 | 成人免费视频一区二区 | 丰满少妇弄高潮了www | 久久久久99精品成人片 | 精品国产麻豆免费人成网站 | 欧美真人作爱免费视频 | 夜夜夜高潮夜夜爽夜夜爰爰 | 99国产精品白浆在线观看免费 | 一二三四社区在线中文视频 | 两性色午夜视频免费播放 | 国产亚洲精品精品国产亚洲综合 | 国产美女极度色诱视频www | 久久亚洲日韩精品一区二区三区 | 中国女人内谢69xxxx | 熟妇人妻激情偷爽文 | 久久久久久久久蜜桃 | 麻豆人妻少妇精品无码专区 | 午夜福利不卡在线视频 | 国产艳妇av在线观看果冻传媒 | 女人和拘做爰正片视频 | 免费人成网站视频在线观看 | 男女超爽视频免费播放 | 日韩人妻系列无码专区 | 无码人妻精品一区二区三区下载 | 天天躁夜夜躁狠狠是什么心态 | 特级做a爰片毛片免费69 | 一本久久伊人热热精品中文字幕 | 久久综合网欧美色妞网 | 18无码粉嫩小泬无套在线观看 | 免费国产黄网站在线观看 | 欧美freesex黑人又粗又大 | 精品国产精品久久一区免费式 | 久久久婷婷五月亚洲97号色 | 成人无码影片精品久久久 | 纯爱无遮挡h肉动漫在线播放 | 国产热a欧美热a在线视频 | 国产成人精品一区二区在线小狼 | 成人欧美一区二区三区 | 国产麻豆精品一区二区三区v视界 | 亚拍精品一区二区三区探花 | 波多野结衣乳巨码无在线观看 | 日韩人妻无码一区二区三区久久99 | 又大又硬又爽免费视频 | 麻豆国产丝袜白领秘书在线观看 | 亚洲国产精品无码一区二区三区 | 国产无遮挡又黄又爽又色 | 中文字幕乱码人妻二区三区 | 成人免费视频视频在线观看 免费 | 精品熟女少妇av免费观看 | 国产综合在线观看 | 美女扒开屁股让男人桶 | 最新国产乱人伦偷精品免费网站 | 亚洲欧美国产精品专区久久 | 免费观看又污又黄的网站 | 国产深夜福利视频在线 | 东京热无码av男人的天堂 | 久久久久av无码免费网 | 成人欧美一区二区三区黑人免费 | 十八禁真人啪啪免费网站 | 欧美人与物videos另类 | 亚洲欧美日韩成人高清在线一区 | 双乳奶水饱满少妇呻吟 | a片在线免费观看 | 亚洲国产精品久久久久久 | 欧美老人巨大xxxx做受 | 久久99精品久久久久久动态图 | 欧美黑人性暴力猛交喷水 | 久久精品国产99精品亚洲 | 久久这里只有精品视频9 | 女人被爽到呻吟gif动态图视看 | 日韩亚洲欧美精品综合 | 午夜理论片yy44880影院 | 性啪啪chinese东北女人 | 亚洲色无码一区二区三区 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 亚洲中文字幕在线观看 | 国产成人亚洲综合无码 | 国产精品无码一区二区桃花视频 | 人妻少妇精品久久 | 日日夜夜撸啊撸 | 久久精品丝袜高跟鞋 | 女人被爽到呻吟gif动态图视看 | 人人妻人人藻人人爽欧美一区 | 97夜夜澡人人爽人人喊中国片 | 亚洲码国产精品高潮在线 | 亚洲狠狠色丁香婷婷综合 | 中文字幕 人妻熟女 | 娇妻被黑人粗大高潮白浆 | 久久国内精品自在自线 | 成在人线av无码免观看麻豆 | 亚洲日韩av一区二区三区中文 | 久久99久久99精品中文字幕 |