<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    sclsch

    java備忘

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      10 Posts :: 0 Stories :: 6 Comments :: 0 Trackbacks

    2007年7月10日 #

    package com.secondHand.db;

    import java.math.BigDecimal;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;

    public class DBUtil {
        
    private String url = "jdbc:mysql://localhost:3306/db_secondhand?user=root&password=root";

        
    private String dbUserName = "root";

        
    private String dbUserPassword = "root";

        
    private String driver = "com.mysql.jdbc.Driver";

        
    private Connection conn = null;

        
    private Statement stmt = null;

        
    private ResultSet rs = null;

        
    public DBUtil() {
            
    try {
                Class.forName(driver);
            } 
    catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }

        
    private Connection getConnection() {
            
    try {
                conn 
    = DriverManager.getConnection(url, dbUserName, dbUserPassword);
            } 
    catch (SQLException e) {
                e.printStackTrace();
            }
            
    return conn;
        }

        
    private void close(ResultSet rs, Statement stmt, Connection conn) {
            
    if (rs != null) {
                
    try {
                    rs.close();
                } 
    catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            
    if (stmt != null) {
                
    try {
                    stmt.close();
                } 
    catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            
    if (conn != null) {
                
    try {
                    conn.close();
                } 
    catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

        
    public List query(String sql) {
            List list 
    = new ArrayList();

            conn 
    = this.getConnection();
            
    try {
                stmt 
    = conn.createStatement();
                rs 
    = stmt.executeQuery(sql);
                
    // 獲取數據庫表結構
                ResultSetMetaData rsm = rs.getMetaData();
                
    // 取得數據庫的列數
                int col = rsm.getColumnCount();
                
    // 生成col長度的Object數組
                Object[] obj = new Object[col];
                
    // 遍歷結果集,將結果存入Object數組
                while (rs.next()) {
                    
    for (int i = 0; i < col; i++) {
                        obj[i] 
    = rs.getObject(i + 1);
                    }
                    list.add(obj);
                }
            } 
    catch (SQLException e) {
                e.printStackTrace();
            } 
    finally {
                
    this.close(rs, stmt, conn);
            }
            
    return list;
        }

        
    public void update(String sql) {
            
    try {
                conn 
    = this.getConnection();
                stmt 
    = conn.createStatement();
                stmt.executeUpdate(sql);
            } 
    catch (SQLException e) {
                e.printStackTrace();
            }
    finally{
                
    this.close(rs, stmt, conn);            
            }
        }

        
    public static void main(String args[]) {
            DBUtil nj 
    = new DBUtil();
            String sql 
    = "select * from users";
            List list 
    = nj.query(sql);
            
    // 返回list的迭代器
            Iterator it = list.iterator();
            
    // 遍歷迭代器,取出結果
            while (it.hasNext()) {
                Object[] o 
    = (Object[]) it.next();
                
    int id = ((BigDecimal) o[0]).intValue();
                System.out.println(id);
            }

        }
    }
    posted @ 2009-04-03 10:51 sclsch 閱讀(183) | 評論 (0)編輯 收藏

         摘要: 增加區域截取屏幕的功能,歡迎試用,簡單實用。  閱讀全文
    posted @ 2009-01-27 21:45 sclsch 閱讀(1439) | 評論 (2)編輯 收藏

    個人開發的小巧的屏幕截圖工具,可以全屏截圖,其他功能還待完善。
    下載地址/Files/sclsch/LittleScreenCapture.rar
    posted @ 2009-01-26 18:15 sclsch 閱讀(1208) | 評論 (0)編輯 收藏

        下拉框是網頁的重要元素,動態取數據并不難,通常的思路是在action中取數據,然后把數據放到request中,最后在頁面上用標簽遍歷數據,但寫多了,是不是很煩,我想做一個通用的下拉框標簽,只要指明了業務接口,并且該接口實現了特定方法,就可以了。
        首先定義一個接口,用來取下拉框的數據。
       
       1package com.ssh.tag;
       
    2.
       
    3import java.util.List;
       
    4.
       
    5/** 
       6.  * 
    @author 孫程亮 E-mail:sclsch@188.com 
       7.  * 
    @version 創建時間:Oct 27, 2008 6:59:05 PM
       8.  * 取得下拉框數據接口 
       9.  
    */
      
    10public interface SelectorInterface {
      
    11.   public List getVableValueList();
      
    12. }
       
        如果哪個業務層service需要增加下拉框的功能,就需要實現它。
    例如:
      
       1package com.ssh.entity.board.service;
       
    2.
       
    3import java.util.ArrayList;
       
    4import java.util.List;
       
    5.
       
    6import com.ssh.common.vo.ValueLabelBean;
       
    7import com.ssh.entity.board.dao.IBoardDao;
       
    8import com.ssh.entity.board.model.Board;
       
    9import com.ssh.tag.SelectorInterface;
      
    10import com.sun.java_cup.internal.internal_error;
      
    11.
      
    12/**
      13.  * 
    @author 孫程亮 E-mail:sclsch@188.com
      14.  * 
    @version 創建時間:Sep 4, 2008 6:36:22 PM
      15.  
    */
      
    16public class BoardServiceImpl implements IBoardService,SelectorInterface{
      
    17.     private IBoardDao boardDao;
      
    18.
      
    19.     public void addBoard(Board b) {
      
    20.        boardDao.addBorad(b);
      
    21.     }
      
    22.
      
    23.     public IBoardDao getBoardDao() {
      
    24.         return boardDao;
      
    25.     }
      
    26.
      
    27.     public void setBoardDao(IBoardDao boardDao) {
      
    28.         this.boardDao = boardDao;
      
    29.     }
      
    30.
      
    31.     public List getAllBoards() {
      
    32.         return this.boardDao.getAllBoards();
      
    33.     }
      
    34.     /**
      35.      * 用來實現下拉框的方法,
      36.      * 把下拉數據存放在ValuLabelBean中,再存放在list中返回
      37.      * 給自定義標簽。
      38.      * 
    @return 下拉數據集合
      39.      
    */
      
    40.     public List getVableValueList() {
      
    41.         List list = this.boardDao.getAllBoards();
      
    42.         List valueLableList = new ArrayList();
      
    43.         for(int i=0;i<list.size();i++){
      
    44.           Board board = (Board)list.get(i);
      
    45.           ValueLabelBean vlb = new ValueLabelBean();
      
    46.           vlb.setValue(board.getId().toString());
      
    47.           vlb.setLabel(board.getName());
      
    48.           valueLableList.add(vlb);
      
    49.         }
      
    50.         return valueLableList;
      
    51.     }
      
    52. }
        注意數據必須放在ValueLabelBean中,label表示下拉框顯示的數據,value表示下拉框的value值,下面是ValueLabelBean
    這個bean:
       1package com.ssh.common.vo;
       
    2.
       
    3import java.io.Serializable;
       
    4.
       
    5/**
       6.  * 
    @author 孫程亮 E-mail:sclsch@188.com
       7.  * 
    @version 創建時間:Oct 27, 2008 7:00:36 PM
       8.  
    */
       
    9public class ValueLabelBean implements Serializable {
      
    10.     private String value;
      
    11.     private String label;
      
    12.
      
    13.     public String getValue() {
      
    14.         return value;
      
    15.     }
      
    16.
      
    17.     public void setValue(String value) {
      
    18.         this.value = value;
      
    19.     }
      
    20.
      
    21.     public String getLabel() {
      
    22.         return label;
      
    23.     }
      
    24.
      
    25.     public void setLabel(String label) {
      
    26.         this.label = label;
      
    27.     }
      
    28. }

       下面就是寫tag了,暫時設置了三個屬性 tagId,serviceBean和title,
    tagId:select 的 id 屬性值。
    serviceBean:對應于spring容器中service的id。
    title:select的默認選中項。
       1package com.ssh.tag;
       
    2.
       
    3import java.io.IOException;
       
    4import java.lang.reflect.Method;
       
    5import java.util.List;
       
    6.
       
    7import javax.servlet.jsp.JspException;
       
    8import javax.servlet.jsp.tagext.TagSupport;
       
    9.
      
    10import org.springframework.context.support.AbstractApplicationContext;
      
    11import org.springframework.util.StringUtils;
      
    12import org.springframework.web.context.WebApplicationContext;
      
    13import org.springframework.web.context.support.WebApplicationContextUtils;
      
    14import org.springframework.web.util.JavaScriptUtils;
      
    15import com.ssh.common.util.*;
      
    16import com.ssh.entity.board.service.IBoardService;
      
    17import com.sun.org.apache.xml.internal.utils.ObjectPool;
      
    18import com.ssh.common.vo.*;
      
    19import com.ssh.tag.*;
      
    20/**
      21.  * 
      22.  * 
    @author 孫程亮 E-mail:sclsch@188.com
      23.  * 
    @version 創建時間:Oct 25, 2008 10:22:18 AM
      24.  
    */
      
    25public class SelectorTag extends TagSupport {
      
    26.     
      
    27.     private String tagId;      //select's id
      28.     private String serviceBean;//service
      29.     private String title;      //select's title
      30.     
      
    31.     public int doEndTag() throws JspException {
      
    32.       WebApplicationContext applicationContext =  WebApplicationContextUtils.getWebApplicationContext(pageContext.getServletContext());
      
    33.       SelectorInterface selectorInterface = (SelectorInterface)applicationContext.getBean(serviceBean);
      
    34.       List list1 = selectorInterface.getVableValueList();
      
    35.       //List list = ServiceLocator.getSelectorService(serviceBean).getVableValueList();
      36.       StringBuffer sBuffer = new StringBuffer();
      
    37.       sBuffer.append("<select id='"+this.tagId);
      
    38.
      
    39.       sBuffer.append("'>");
      
    40.       if(!StringUtil.isBlank(title)){
      
    41.           sBuffer.append("<option value='-1' selected>"+title+"</option>");
      
    42.       }
      
    43.       for(int i=0;i<list1.size();i++){
      
    44.         ValueLabelBean vlb =  (ValueLabelBean)list1.get(i);
      
    45.         sBuffer.append("<option value='"+vlb.getValue()+"'>"+vlb.getLabel()+"</option>");
      
    46.       }
      
    47.       sBuffer.append("</select>");
      
    48.       try {
      
    49.         pageContext.getOut().println(sBuffer.toString());
      
    50.     } catch (IOException e) {
      
    51.         // TODO Auto-generated catch block
      52.         e.printStackTrace();
      
    53.     }
      
    54.       return EVAL_PAGE;
      
    55.     }
      
    56.     public void setTagId(String tagId) {
      
    57.         this.tagId = tagId;
      
    58.     }
      
    59.     public void setServiceBean(String serviceBean) {
      
    60.         this.serviceBean = serviceBean;
      
    61.     }
      
    62.     public void setTitle(String title) {
      
    63.         this.title = title;
      
    64.     }
      
    65. }

    在標簽中可以用WebApplicationContextUtils來得到context,曾一度起了彎路,想到用一個工具類加載容器,倒也能實現,也想到用反射,但是行不通的。 看來變通一下,可能會少走很多彎路。
       下面是tld文件:
    <?xml version="1.0" encoding="UTF-8" ?>
     <!DOCTYPE taglib PUBLIC
         "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
         "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

     <taglib>

         <tlib-version>1.0</tlib-version>
         <jsp-version>1.0</jsp-version>
         <short-name>sclschTag</short-name>
         <description>sclschTag</description>

         <tag>
             <name>selectorTag</name>
             <tag-class>com.ssh.tag.SelectorTag</tag-class>
             <body-content>JSP</body-content>
             <description>
             </description>
             <attribute>
                 <name>tagId</name>
                 <required>true</required>
                 <rtexprvalue>true</rtexprvalue>
             </attribute>

             <attribute>
                 <name>serviceBean</name>
                 <required>true</required>
                 <rtexprvalue>true</rtexprvalue>
             </attribute>
             <attribute>
                 <name>title</name>
                 <required>false</required>
                 <rtexprvalue>true</rtexprvalue>
             </attribute>
         </tag>

     </taglib>
    最后就剩頁面了:
      <%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding
    ="UTF-8"%>
     
    <%@ taglib uri="/WEB-INF/tld/selectorTag.tld" prefix="sclsch"%>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
     
    <head>
     
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     
    <title>mytag(sclsch@188.com)</title>
     
    </head>
     
    <body>
     
    <sclsch:selectorTag tagId='myid' title="--請選擇--" serviceBean="boardService" />
     
    </body>
     
    </html>

        好了,盡管這個tag很簡陋,但為以后省了不少工,只要在業務層實現一個SelectorInterface接口,在頁面上擺個標簽就可以了。我剛學標簽的編寫,有什么不足請指正,如果有更好的設計一定告訴我額。


    posted @ 2008-10-28 20:57 sclsch 閱讀(741) | 評論 (0)編輯 收藏

    我是css初學者,自己做了一個工字型的布局,但整個頁面不居中。請指點,代碼如下:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     
    <HEAD>
      
    <style type="text/css">

          * 
    {
        margin
    : 0px;
        padding
    : 0px;
        
    }
         body 
    {
        font-family
    : Arial, Helvetica, sans-serif;
        font-size
    : 12px;
        margin
    : 0px auto;
        height
    : auto;
        width
    : 760px;
        border
    :1px #66CCFF solid;
       
        
    }
        .header 
    {
        height
    : 100px;
        width
    : 760px;
        background-image
    : url(header.jpg);
        background-repeat
    : no-repeat;
        margin
    :0px 0px 3px 0px;
        border
    :1px #66CCFF solid;
         
        
    }

        .contentleft 
    {
        height
    : 250px;
        width
    : 150px;
        font-size
    : 14px;
        list-style-type
    : none;
        float
    :left;
        border
    :1px #66CCFF solid;

        
    }
        .contentleft li 
    {
        float
    :left;
        
    }
        .contentleft li a
    {
        color
    :#000000;
        text-decoration
    :none;
        padding-top
    :4px;
        display
    :block;
        width
    :97px;
        height
    :22px;
        text-align
    :center;
        background-color
    : #009966;
        margin-left
    :2px;
        
    }
        .contentleft li a:hover
    {
        border
    :1px #66CCFF solid;
        color
    :#FFFFFF;
        
    }
        .content 
    {
        height
    :auto;
        width
    : 760px;
        line-height
    : 1.5em;
        padding
    : 10px;
        border
    :1px #66CCFF solid;
        
    }
        .content p 
    {
        text-indent
    : 2em;
        
    }
        .content h3 
    {
        font-size
    : 16px;
        margin
    : 10px;
        
    }

        .footer 
    {
        height
    : 50px;
        width
    : 760px;
        line-height
    : 2em;
        text-align
    : center;
        background-color
    : #009966;
        padding
    : 10px;
        border
    :1px #66CCFF solid;
        
    }
        .contentright
    {
            height
    : 250px;
            width
    : 580px;
            font-size
    : 14px;
            list-style-type
    : none;
            border
    :1px #66CCFF solid;
            float
    :right;
        
    }
        .logo
    {
          background-image
    : url(scltemp.jpg);
          height
    : 100px;
          width
    : 75px;

        
    }

      
    </style>
       
      
    <TITLE> New Document </TITLE>
      
    <META NAME="Generator" CONTENT="EditPlus">
      
    <META NAME="Author" CONTENT="">
      
    <META NAME="Keywords" CONTENT="">
      
    <META NAME="Description" CONTENT="">
     
    </HEAD>

     
    <BODY>
    <div class="header">
      
    <div class="logo"></div>
    </div>

    <div class="content">
        
    <div class="contentleft">
        
    <li><href="#">首 頁</a></li>
        
    <li><href="#">文 章</a></li>
        
    <li><href="#">相冊</a></li>
        
    <li><href="#">Blog</a></li>
        
    <li><href="#">論 壇</a></li>
        
    <li><href="#">幫助</a></li>
        
    </div>
        
    <div class="contentright">
        
    <h3>前言</h3>
        
    <p>第一段內容</p>
        
    <h3>理解CSS盒子模式</h3>
        
    <p>第二段內容</p>
        
    </div>
    </div>

    <div class="footer">
    <p>關于華升 | 廣告服務 | 華升招聘 | 客服中心 | Q Q留言 | 網站管理 | 會員登錄 | 購物車</p><p>Copyright &copy;2006 - 2008 Tang
    Guohui. All Rights Reserved
    </p>
    </div>
     
    </BODY>
    </HTML>
    另外,還有很多不完美的地方,請指點一下!

    posted @ 2008-10-05 21:00 sclsch 閱讀(748) | 評論 (3)編輯 收藏

        最近要做一個樹型下拉框,參考網上的資料,也沒有找到合適的,于是自己實現了一個,原理是先順序加載根節點,在加載每個根節點后,再遍歷每個數組,看有沒有以這個根節點為父 節點的數組,如果有,就加載到下拉框,然后再遞歸看有沒有以這個節點為父結點的數組,如果有,再加載到下拉框,以此類推...
    代碼如下:(如果有更好的方法,請留言,有待改進)
       
     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2   <html xmlns="http://www.w3.org/1999/xhtml">
     3    <head>
     4     <title> javascript樹型菜單 author:sclsch@188.com</title>
     5     <meta name="generator" content="editplus" />
     6     <meta name="author" content="" />
     7     <meta name="keywords" content="" />
     8     <meta name="description" content="" />
     9     <script type="text/javascript">
    10       var data =new Array();
    11      
    12       data[0]= {id:'0',pid:'1',text:'河北'};
    13       data[1]= {id:'1',pid:'-1',text:'中國'};
    14       data[2]= {id:'2',pid:'6',text:'莫斯科'};
    15       data[3]= {id:'3',pid:'0',text:'邯鄲'};
    16       data[4]= {id:'4',pid:'0',text:'石家莊'};
    17       data[5]= {id:'5',pid:'3',text:'邯鄲縣'};
    18       data[6]= {id:'6',pid:'-1',text:'俄羅斯'};
    19       data[7]= {id:'7',pid:'5',text:'孫程亮 sclsch@188.com'};
    20 
    21      function TreeSelector(item,data,rootId){
    22         this._data = data;
    23         this._item = item;
    24         this._rootId = rootId;
    25 
    26      }
    27      TreeSelector.prototype.createTree = function(){
    28          var  len =this._data.length;
    29          forvar i= 0;i<len;i++){
    30            if ( this._data[i].pid == this._rootId){
    31               this._item.options.add(new Option(".."+this._data[i].text,this._data[i].id));
    32                   for(var j=0;j<len;j++){
    33                     this.createSubOption(len,this._data[i],this._data[j]);
    34                   
    35                   }  
    36            }
    37         }
    38      }
    39       
    40      TreeSelector.prototype.createSubOption = function(len,current,next){
    41             var blank = "..";
    42             if ( next.pid == current.id){
    43                  intLevel =0;
    44                  var intlvl =this.getLevel(this._data,this._rootId,current);
    45                  for(a=0;a<intlvl;a++)
    46                     blank += "..";
    47                  blank += "├-";
    48                  this._item.options.add(new Option(blank + next.text,next.id));
    49                   
    50                  for(var j=0;j<len;j++){
    51                    this.createSubOption(len,next,this._data[j]);
    52                  
    53                  }   
    54                  
    55             }
    56      }
    57 
    58      TreeSelector.prototype.getLevel = function(datasources,topId,currentitem){
    59          
    60          var pid =currentitem.pid;
    61          if( pid !=topId)
    62          {
    63            for(var i =0 ;i<datasources.length;i++)
    64            {
    65               if( datasources[i].id == pid)
    66               {
    67                  intLevel ++;
    68                  this.getLevel(datasources,topId,datasources[i]);
    69               }
    70            }  
    71          }
    72          return intLevel;
    73     }
    74 
    75     </script>
    76    </head>
    77 
    78    <body>
    79     <select id="myselect">
    80   </select>
    81   <script language=javascript type="text/javascript">
    82     var ts = new TreeSelector(document.getElementById("myselect"),data,-1);
    83     ts.createTree();
    84   </script>
    85    </body>
    86   </html>

    posted @ 2008-09-28 11:20 sclsch 閱讀(2332) | 評論 (0)編輯 收藏

         摘要:           勘誤<input name="error" id="error" <c:if test="${question.state==4}">checked</c:if> <c:if test...  閱讀全文
    posted @ 2007-10-25 14:28 sclsch 閱讀(1083) | 評論 (0)編輯 收藏


    date.js:
     function writeDateInfo(){
            var day
    ="";
            var month
    ="";
            var ampm
    ="";
            var ampmhour
    ="";
            var myweekday
    ="";
            var year
    ="";
            mydate
    =new Date();
            myweekday
    =mydate.getDay();
            mymonth
    =mydate.getMonth()+1;
            myday
    = mydate.getDate();
            myyear
    = mydate.getYear();
            year
    =(myyear > 200? myyear : 1900 + myyear;
            
    if(myweekday == 0)
            weekday
    =" 星期日";
            
    else if(myweekday == 1)
            weekday
    =" 星期一";
            
    else if(myweekday == 2)
            weekday
    =" 星期二";
            
    else if(myweekday == 3)
            weekday
    =" 星期三";
            
    else if(myweekday == 4)
            weekday
    =" 星期四";
            
    else if(myweekday == 5)
            weekday
    =" 星期五";
            
    else if(myweekday == 6)
            weekday
    =" 星期六";
            document.write(year
    +""+mymonth+""+myday+""+weekday);
        }
      


    頁面:
    <c:set var="ctx" value="${pageContext.request.contextPath}"/>
    <script type="text/javascript" src="${ctx}/scripts/date.js"></script>

    <div id="date"><script>writeDateInfo();</script></div>
    posted @ 2007-09-12 22:51 sclsch 閱讀(1567) | 評論 (0)編輯 收藏

         摘要: 種類Sort與勘誤Errata是一對多的關系.Sort.java package com.daacc.dao.sort;import java.util.HashSet;import java.util.Set;import com.daacc.dao.teacher.Teacher;/** * Sort generated&...  閱讀全文
    posted @ 2007-07-10 20:04 sclsch 閱讀(3087) | 評論 (1)編輯 收藏

    這個是js

     1   <script type="text/javascript">
     2     function checkForm(){
     3        var section =  document.getElementById('section').value;
     4        var page =  document.getElementById('page').value;
     5           if (section==""){
     6             alert("請輸入章節");
     7             return false;
     8             }
     9           else if(page==""){
    10             alert("請輸入頁碼");
    11             return false;
    12             }
    13           myform.submit();
    14     }
    15   </script>
    這個是表單
     1             <form name="myform" action="searchBySectionAndPage.do" mothd="post">
     2                 <table>
     3                     <tr>
     4                         <td>
     5                             章節
     6                         </td>
     7                         <td>
     8                             <input type="text" name="section">
     9                         </td>
    10                     </tr>
    11                     <tr>
    12                         <td>
    13                             頁碼
    14                         </td>
    15                         <td>
    16                             <input type="text" name="page">
    17                         </td>
    18                     </tr>
    19                     <tr>
    20                         <td>
    21                             <input type="reset" value="重置">
    22                         </td>
    23                         <td>
    24                             <input type="button" value="確定" onclick="return checkForm();">
    25                         </td>
    26                     </tr>
    27                 </table>
    28             </form>

    js很讓我頭痛,備注一下.

    posted @ 2007-07-10 16:29 sclsch 閱讀(242) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 亚洲色欲或者高潮影院| 人人揉揉香蕉大免费不卡| 亚洲视频中文字幕在线| 亚洲真人日本在线| 日本一道高清不卡免费| 91免费在线播放| 成人久久免费网站| 日日躁狠狠躁狠狠爱免费视频| 亚洲色www永久网站| 亚洲视频在线观看地址| 日韩亚洲人成在线综合日本| 亚洲成a人片在线观看久| 在线免费观看国产视频| 69成人免费视频无码专区| 3344免费播放观看视频| 亚洲一区免费观看| 国产免费AV片在线观看| a级毛片免费在线观看| 国产精品1024在线永久免费| 四虎影视在线看免费观看| 在线91精品亚洲网站精品成人| 亚洲色偷偷综合亚洲AV伊人蜜桃| 亚洲一线产区二线产区精华| 老色鬼久久亚洲AV综合| 亚洲最大的成网4438| 亚洲人成电影在线天堂| 亚洲欧洲第一a在线观看| 亚洲AV无一区二区三区久久| 国产亚洲精久久久久久无码| 亚洲中文字幕久久精品无码喷水| 亚洲一级特黄大片在线观看| 精品国产亚洲一区二区在线观看| 免费在线观看黄网| 亚洲成aⅴ人片久青草影院| 亚洲国产成人精品女人久久久 | 免费观看午夜在线欧差毛片 | 亚洲国产精品无码久久九九大片 | 国产高清在线免费| 国产成人免费全部网站 | 国产亚洲日韩在线a不卡| 婷婷国产偷v国产偷v亚洲|