欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 基于jsp+servlet實現的簡單博客系統實例(附源碼)

基于jsp+servlet實現的簡單博客系統實例(附源碼)

熱門標簽:電銷機器人是有一些什么技術 四川保險智能外呼系統商家 杭州ai語音電銷機器人功能 電銷機器人好賣么 杭州語音電銷機器人軟件 北票市地圖標注 地圖標注線上教程 高德地圖標注樣式 商洛電銷

本文實例講述了基于jsp+servlet實現的簡單博客系統。分享給大家供大家參考。具體如下:

沒有用框架寫的 小博客, 代碼大量重復。

個人感覺重復代碼對于新手還是有好處的,我也是新手,見諒。

完整實例代碼點擊此處本站下載。

1. servlet

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Servlet;
import blog.BlogBean;
import blog.BlogRepositoryJDBC;
import blog.PagerUtil;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;
import java.util.List;
import javax.enterprise.context.RequestScoped;
import javax.enterprise.context.SessionScoped;
import javax.inject.Inject;
import javax.inject.Named;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name = "PageListServlet", urlPatterns = {"/page/*", ""})
public class ListAllServlet extends HttpServlet {
  @Inject
  private BlogRepositoryJDBC blogdao;
  @Inject
  private PagerUtil pagerUtil;
  protected void processRequest(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    int pg;
    String s = request.getRequestURI();
    String searchContent = request.getParameter("search");
    if (s.matches(request.getContextPath() + "/page/" + "\\d")) {
      String pgnum = s.replaceAll(request.getContextPath() + "/page/", "");
      pg = Integer.parseInt(pgnum);
    } else if (s.matches(request.getContextPath() + "/")) {
      pg = 1;
    } else {
      getServletContext().getRequestDispatcher("/errorpage.jsp").forward(request, response);
      return;
    }
    ListBlogBean> bloglist;
    boolean isNullRequest = (searchContent == null || "".equals(searchContent));
    if (isNullRequest) {
      bloglist = blogdao.getBloglist();
    } else {
      bloglist = blogdao.listBlogByKey(searchContent);
    }
    if (!pagerUtil.isValidPg(bloglist, pg)) {
      getServletContext().getRequestDispatcher("/errorpage.jsp").forward(request, response);
      return;
    }
    pagerUtil.fillValue(bloglist, pg);
    String pageURLBase = getServletContext().getContextPath();
    String pageURLparam = isNullRequest ? "" : "?search=" + searchContent;
    request.setAttribute("pageURLBase", pageURLBase);
    request.setAttribute("pageURLparam", pageURLparam);
    request.setAttribute("bloglist", bloglist);
    getServletContext().getRequestDispatcher("/blog.jsp").forward(request, response);
  }
  @Override
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    processRequest(request, response);
  }
  @Override
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    processRequest(request, response);
  }
  @Override
  public String getServletInfo() {
    return "Short description";
  }// /editor-fold>
}

2. dao

package blog;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import javax.inject.Named;
import javax.sql.DataSource;
@ApplicationScoped
@Named
public class BlogRepositoryJDBC implements BlogRepository {
  @Resource(lookup = "jdbc/sample")
  private DataSource ds;
  private ArrayListBlogBean> bloglist;
  private SetString> tagSet;
  private SetString> categorySet;
  private MapString,Integer> dateMap;
  @PostConstruct
  private void init() {
    refreshCache();
  }
  @Override
  public int addBlog(BlogBean blogi) {
    String sql = "INSERT INTO POSTS VALUES (?,?,?,?,?)";
    Connection conn = null;
    PreparedStatement ps = null;
    int out = 0;
    try {
      conn = ds.getConnection();
      ps = conn.prepareStatement(sql);
      ps.setString(1, blogi.getBlogTitle());
      ps.setString(2, blogi.getCategory());
      ps.setString(3, blogi.getTag());
      ps.setDate(4, new java.sql.Date(blogi.getPostDate().getTime()));
      ps.setString(5, blogi.getContent());
      out = ps.executeUpdate();
    } catch (SQLException ex) {
      Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
      closeEverything(conn, ps, null);
    }
    refreshCache();
    return out;
  }
  @Override
  public int deleteBlog(String blogName) {
    String sql = "DELETE FROM POSTS WHERE HEAD = ?";
    Connection conn = null;
    PreparedStatement ps = null;
    int out = 0;
    try {
      conn = ds.getConnection();
      ps = conn.prepareStatement(sql);
      ps.setString(1, blogName);
      out = ps.executeUpdate();
    } catch (SQLException ex) {
      Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
      closeEverything(conn, ps, null);
    }
    refreshCache();
    return out;
  }
  @Override
  public int updateBlog(BlogBean blog, String oldhead) {
    String sql = "UPDATE POSTS SET HEAD=?,CATEGORY=?,TAG=?,POSTDATE=?,CONTENT=? WHERE HEAD=?";
    PreparedStatement ps = null;
    Connection conn = null;
    int out = 0;
    try {
      conn = ds.getConnection();
      ps = conn.prepareStatement(sql);
      ps.setString(1, blog.getBlogTitle());
      ps.setString(2, blog.getCategory());
      ps.setString(3, blog.getTag());
      ps.setDate(4, new java.sql.Date(blog.getPostDate().getTime()));
      ps.setString(5, blog.getContent());
      ps.setString(6, oldhead);
      out = ps.executeUpdate();
    } catch (SQLException ex) {
      Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
      closeEverything(conn, ps, null);
    }
    refreshCache();
    return out;
  }
  @Override
  public ListBlogBean> ListAllBlog() {
    bloglist = new ArrayListBlogBean>();
    BlogBean blog;
    String sql = "SELECT * FROM POSTS ORDER BY POSTDATE DESC";
    Connection conn = null;
    Statement ss = null;
    ResultSet rs = null;
    int out = 0;
    try {
      conn = ds.getConnection();
      ss = conn.createStatement();
      rs = ss.executeQuery(sql);
      while (rs.next()) {
        blog = new BlogBean();
        blog.setBlogTitle(rs.getString(1));
        blog.setCategory(rs.getString(2));
        blog.setTag(rs.getString(3));
        blog.setPostDate(rs.getDate(4));
        blog.setContent(rs.getString(5));
        bloglist.add(blog);
      }
    } catch (SQLException ex) {
      Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
      closeEverything(conn, ss, rs);
    }
    return bloglist;
  }
  @Override
  public List listBlogByKey(String keyword) {
    ListBlogBean> list = new ArrayListBlogBean>();
    BlogBean blog;
    String sql = "SELECT * FROM POSTS WHERE HEAD LIKE ? ORDER BY POSTDATE DESC";
    Connection conn = null;
    PreparedStatement ps = null;
    ResultSet rs = null;
    int out = 0;
    try {
      conn = ds.getConnection();
      ps = conn.prepareStatement(sql);
      ps.setString(1, "%" + keyword + "%");
      rs = ps.executeQuery();
      while (rs.next()) {
        blog = new BlogBean();
        blog.setBlogTitle(rs.getString(1));
        blog.setCategory(rs.getString(2));
        blog.setTag(rs.getString(3));
        blog.setPostDate(rs.getDate(4));
        blog.setContent(rs.getString(5));
        list.add(blog);
      }
    } catch (SQLException ex) {
      Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
      closeEverything(conn, ps, rs);
    }
    return list;
  }
  @Override
  public List listBlogByContent(String keyword) {
    ListBlogBean> list = new ArrayListBlogBean>();
    BlogBean blog;
    String sql = "SELECT * FROM POSTS WHERE CONTENT LIKE ? ORDER BY POSTDATE DESC";
    PreparedStatement ps = null;
    ResultSet rs = null;
    Connection conn = null;
    int out = 0;
    try {
      conn = ds.getConnection();
      ps = conn.prepareStatement(sql);
      ps.setString(1, "%" + keyword + "%");
      rs = ps.executeQuery();
      while (rs.next()) {
        blog = new BlogBean();
        blog.setBlogTitle(rs.getString(1));
        blog.setCategory(rs.getString(2));
        blog.setTag(rs.getString(3));
        blog.setPostDate(rs.getDate(4));
        blog.setContent(rs.getString(5));
        list.add(blog);
      }
    } catch (SQLException ex) {
      Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
      closeEverything(conn, ps, rs);
    }
    return list;
  }
  public Set listAllTags() {
    tagSet = new HashSetString>();
    String sql = "SELECT TAG FROM POSTS ";
    Connection conn = null;
    Statement ss = null;
    ResultSet rs = null;
    try {
      conn = ds.getConnection();
      ss = conn.createStatement();
      rs = ss.executeQuery(sql);
      while (rs.next()) {
        String tags = rs.getString(1);
        String[] Arraytags = tags.split(",");
        tagSet.addAll(Arrays.asList(Arraytags));
      }
    } catch (SQLException ex) {
      Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
      closeEverything(conn, ss, rs);
    }
    return tagSet;
  }
  public List listBlogByTag(String keyword) {
    ListBlogBean> list = new ArrayListBlogBean>();
    BlogBean blog;
    String sql = "SELECT * FROM POSTS WHERE TAG LIKE ? ORDER BY POSTDATE DESC";
    Connection conn = null;
    PreparedStatement ps = null;
    ResultSet rs = null;
    int out = 0;
    try {
      conn = ds.getConnection();
      ps = conn.prepareStatement(sql);
      ps.setString(1, "%" + keyword + "%");
      rs = ps.executeQuery();
      while (rs.next()) {
        blog = new BlogBean();
        blog.setBlogTitle(rs.getString(1));
        blog.setCategory(rs.getString(2));
        blog.setTag(rs.getString(3));
        blog.setPostDate(rs.getDate(4));
        blog.setContent(rs.getString(5));
        list.add(blog);
      }
    } catch (SQLException ex) {
      Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
      closeEverything(conn, ps, rs);
    }
    return list;
  }
    public List listBlogByDate(String keyword) {
    ListBlogBean> list = new ArrayListBlogBean>();
    BlogBean blog;
    String sql = "SELECT * FROM POSTS WHERE POSTDATE = ? ORDER BY POSTDATE DESC";
    Connection conn = null;
    PreparedStatement ps = null;
    ResultSet rs = null;
    int out = 0;
    try {
      conn = ds.getConnection();
      ps = conn.prepareStatement(sql);
      ps.setString(1, keyword );
      rs = ps.executeQuery();
      while (rs.next()) {
        blog = new BlogBean();
        blog.setBlogTitle(rs.getString(1));
        blog.setCategory(rs.getString(2));
        blog.setTag(rs.getString(3));
        blog.setPostDate(rs.getDate(4));
        blog.setContent(rs.getString(5));
        list.add(blog);
      }
    } catch (SQLException ex) {
      Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
      closeEverything(conn, ps, rs);
    }
    return list;
  }
  public Set listAllCategory() {
    categorySet = new HashSetString>();
    String sql = "SELECT CATEGORY FROM POSTS";
    Connection conn = null;
    Statement ss = null;
    ResultSet rs = null;
    try {
      conn = ds.getConnection();
      ss = conn.createStatement();
      rs = ss.executeQuery(sql);
      while (rs.next()) {
        String category = rs.getString(1);
        categorySet.add(category);
      }
    } catch (SQLException ex) {
      Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
      closeEverything(conn, ss, rs);
    }
    return categorySet;
  }
  public List listBlogByCategory(String keyword) {
    ListBlogBean> list = new ArrayListBlogBean>();
    BlogBean blog;
    String sql = "SELECT * FROM POSTS WHERE CATEGORY LIKE ?";
    Connection conn = null;
    PreparedStatement ps = null;
    ResultSet rs = null;
    int out = 0;
    try {
      conn = ds.getConnection();
      ps = conn.prepareStatement(sql);
      ps.setString(1, "%" + keyword + "%");
      rs = ps.executeQuery();
      while (rs.next()) {
        blog = new BlogBean();
        blog.setBlogTitle(rs.getString(1));
        blog.setCategory(rs.getString(2));
        blog.setTag(rs.getString(3));
        blog.setPostDate(rs.getDate(4));
        blog.setContent(rs.getString(5));
        list.add(blog);
      }
    } catch (SQLException ex) {
      Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
      closeEverything(conn, ps, rs);
    }
    return list;
  }
  private void fillDateMap(){
    String sql = "SELECT POSTDATE,COUNT(POSTDATE) FROM POSTS GROUP BY POSTDATE";
     Connection conn = null;
    Statement ss = null;
    ResultSet rs = null;
    dateMap = new HashMapString,Integer>();
    try {
      conn = ds.getConnection();
      ss = conn.createStatement();
       rs=ss.executeQuery(sql);  
      while (rs.next()) {
        dateMap.put(rs.getString(1), rs.getInt(2));
      }
    } catch (SQLException ex) {
      Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
      closeEverything(conn, ss, rs);
    }
  }
  public void test(){
        for(Map.EntryString,Integer> dd: dateMap.entrySet()){
           dd.getKey();
           dd.getValue();
        }
  }
  public void refreshCache() {
    ListAllBlog();
    listAllTags();
    listAllCategory();
    fillDateMap();
  }
  public ArrayListBlogBean> getBloglist() {
    return bloglist;
  }
  public SetString> getTagSet() {
    return tagSet;
  }
  public SetString> getCategorySet() {
    return categorySet;
  }
  public MapString, Integer> getDateMap() {
    return dateMap;
  }
  private void closeEverything(Connection conn, Statement ps, ResultSet rs) {
    if (rs != null) {
      try {
        rs.close();
      } catch (SQLException ex) {
      }
    }
    if (ps != null) {
      try {
        ps.close();
      } catch (SQLException ex) {
      }
    }
    if (conn != null) {
      try {
        conn.close();
      } catch (SQLException ex) {
      }
    }
  }
}

3. 運行效果截圖:

希望本文所述對大家的JSP程序設計有所幫助。

您可能感興趣的文章:
  • jsp頁面中獲取servlet請求中的參數的辦法詳解
  • JavaWeb實現用戶登錄注冊功能實例代碼(基于Servlet+JSP+JavaBean模式)
  • Servlet+Jsp實現圖片或文件的上傳功能具體思路及代碼
  • JSP+Servlet制作Java Web登錄功能的全流程解析
  • JSP與Servlet的介紹說明
  • Servlet與JSP間的兩種傳值情況
  • jsp和servlet中實現頁面跳轉的方式實例總結
  • JSP+Servlet+JavaBean實現登錄網頁實例詳解
  • 基于JSP HttpServlet的詳細介紹
  • JSP、Servlet中get請求和post請求的區別總結
  • Servlet+JavaBean+JSP打造Java Web注冊與登錄功能
  • jsp+servlet+javabean實現數據分頁方法完整實例
  • jsp+servlet+jdbc實現對數據庫的增刪改查
  • 在jsp中用bean和servlet聯合實現用戶注冊、登錄
  • jsp和servlet操作mysql中文亂碼問題的解決辦法
  • JSP使用Servlet作為控制器實現MVC模式實例詳解
  • 訪問JSP文件或者Servlet文件時提示下載的解決方法
  • jsp引用servlet生成的驗證碼代碼演示
  • javascript與jsp發送請求到servlet的幾種方式實例

標簽:青島 紅河 西藏 宿州 云浮 貴州 江西 丹東

巨人網絡通訊聲明:本文標題《基于jsp+servlet實現的簡單博客系統實例(附源碼)》,本文關鍵詞  基于,jsp+servlet,實現,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《基于jsp+servlet實現的簡單博客系統實例(附源碼)》相關的同類信息!
  • 本頁收集關于基于jsp+servlet實現的簡單博客系統實例(附源碼)的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    jjzz黄色片| 欧美日韩免费高清一区色橹橹 | 国产又粗又硬又长又爽| 精品免费国产一区二区三区四区| 亚洲bt欧美bt精品777| 91麻豆免费观看| 色欧美日韩亚洲| 中文字幕一区三区| 成人一区二区三区中文字幕| 九九这里只有精品视频| 国产亚洲一二三区| 国产乱人伦偷精品视频不卡 | 午夜精品久久久久久久99樱桃 | 杨幂一区二区国产精品| 日本精品裸体写真集在线观看 | 综合 欧美 亚洲日本| www亚洲一区| 国产一区欧美一区| 天堂网av2018| 亚洲欧洲日韩综合一区二区| aaa亚洲精品一二三区| 色素色在线综合| 亚洲综合无码一区二区| 精品国产乱码久久久久夜深人妻| 欧美男同性恋视频网站| 五月天欧美精品| 日韩中文字幕电影| 久久午夜电影网| 国产成人精品综合在线观看| 中文字幕在线观看成人| 亚洲精品乱码久久久久久黑人| 中文字幕在线播放一区二区| 777色狠狠一区二区三区| 日韩二区三区四区| 在线小视频你懂的| 国产精品久久久久影院亚瑟| 91亚洲精品久久久蜜桃| 这里只有精品99re| 久久99最新地址| 亚洲国产美女视频| 一区二区三区四区av| jlzzjizz在线播放观看| 久久奇米777| 99视频热这里只有精品免费| 欧美精品丝袜久久久中文字幕| 日本午夜精品视频在线观看 | 欧美色爱综合网| 日本少妇一区二区| 懂色av蜜臀av粉嫩av永久| 亚洲欧美日韩国产另类专区| 在线视频 日韩| 国产日韩欧美不卡| 久久久国产精品久久久| 精品美女在线播放| 成人精品国产一区二区4080| 制服丝袜中文字幕一区| 国产一区二区久久| 福利所第一导航| 日韩国产在线观看一区| 亚洲精品久久久久久国| 亚洲高清免费观看| 懂色av粉嫩av浪潮av| 一区二区三区美女视频| 国产成人h网站| 欧美精品第一页| 国产专区欧美精品| 欧美色中文字幕| 激情欧美一区二区三区在线观看| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 国产乱人伦偷精品视频不卡| 欧美三级三级三级| 国模套图日韩精品一区二区 | 精品久久99ma| 97精品久久久久中文字幕| 精品区一区二区| 91免费看`日韩一区二区| 久久婷婷国产综合精品青草 | 夫妻av一区二区| 精品视频一区三区九区| 国产激情视频一区二区在线观看 | 第四色在线视频| 中文字幕在线一区| 成人手机在线免费视频| 中文字幕一区二区三区在线播放| 极品白嫩丰满美女无套| 亚洲免费毛片网站| 99久久99久久精品免费| 日韩精品一二三区| 91精品办公室少妇高潮对白| 精品一区二区在线看| 欧美伦理电影网| www.亚洲激情.com| 久久久久久**毛片大全| 91精品啪在线观看国产| 亚洲色图视频免费播放| 亚洲av成人无码久久精品| 亚洲午夜激情网页| 午夜激情福利网| 国模娜娜一区二区三区| 日韩欧美在线观看一区二区三区| 99re免费视频精品全部| 中文字幕免费不卡在线| 性少妇bbw张开| 亚洲国产三级在线| 色婷婷国产精品综合在线观看| 国产一区二区成人久久免费影院 | 奇米精品一区二区三区四区| 欧美日韩大陆在线| gogo大胆日本视频一区| 欧美激情一区二区三区蜜桃视频| 波多野结衣福利| 偷偷要91色婷婷| 欧美视频中文字幕| 99热在这里有精品免费| 国产精品网友自拍| 1024在线看片| 国产精品一区免费视频| 久久网站最新地址| 国产肥白大熟妇bbbb视频| 热久久国产精品| 91精品国产品国语在线不卡| 亚洲视频 中文字幕| 亚洲午夜av在线| 欧美午夜精品久久久久久孕妇| 99综合电影在线视频| 中文字幕一区二区三区四区| 性色av无码久久一区二区三区| 国产成人啪午夜精品网站男同| 国产日韩精品视频一区| 亚洲精品卡一卡二| 国产成人无遮挡在线视频| 中文子幕无线码一区tr| 国产性生活大片| av中文字幕在线不卡| 亚洲品质自拍视频| 欧美影院一区二区| 亚洲AV无码久久精品国产一区| 亚洲愉拍自拍另类高清精品| 欧美在线观看视频在线| 日韩高清一二三区| 午夜免费久久看| 日韩欧美一区二区久久婷婷| 女~淫辱の触手3d动漫| 久久精品国产第一区二区三区| 亚洲最大免费视频| 日本vs亚洲vs韩国一区三区二区| 日韩午夜中文字幕| 90岁老太婆乱淫| 国产一区二区三区精品欧美日韩一区二区三区 | 国产精品天天摸av网| 老妇女50岁三级| 91女厕偷拍女厕偷拍高清| 亚洲综合激情网| 91精品国产全国免费观看| 一本色道久久综合亚洲精品图片| 蜜桃久久av一区| 日本一区二区三区视频视频| 国产在线一卡二卡| 古装做爰无遮挡三级聊斋艳谭| 亚洲成人av一区二区| 精品少妇一区二区三区视频免付费 | 精品一区在线观看视频| 午夜一区二区三区视频| 日韩精品一区二区三区四区 | 少妇被狂c下部羞羞漫画| 免费国产亚洲视频| 中日韩av电影| 欧美中文字幕亚洲一区二区va在线 | 中日韩av电影| 欧美日韩国产综合一区二区三区| 一本加勒比波多野结衣| 国产精品自在在线| 亚洲猫色日本管| 日韩一区二区免费高清| 老司机福利在线观看| 久久精品无码一区二区三区毛片| 全国精品久久少妇| 国产精品麻豆久久久| 欧美日韩精品欧美日韩精品| 亚洲天堂久久新| av激情综合网| 另类调教123区| 亚洲色图.com| 欧美成人精精品一区二区频| 精品少妇一区二区三区密爱| 美女被爆操网站| 国内不卡的二区三区中文字幕 | 欧美一级日韩一级| 看免费黄色录像| 91黄色免费视频| 高潮精品一区videoshd| 日韩和的一区二区| 综合色中文字幕| 日韩免费看的电影| 91国偷自产一区二区使用方法| 91精品国产自产| 99久久婷婷国产综合精品电影 | 久久久精品日韩欧美| 欧美午夜精品免费| 国产小视频你懂的|