久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

jsp+servlet+jdbc+mysql后臺(tái)管理系統(tǒng)源碼解析與復(fù)現(xiàn)指南

jsp+servlet+jdbc+mysql后臺(tái)管理系統(tǒng)源碼解析與復(fù)現(xiàn)指南 簡(jiǎn)介一套基于 jspjsservletjdbcmysql 原生界面開(kāi)發(fā)的后臺(tái)管理系統(tǒng)源碼適合 Java Web 初學(xué)者、課程設(shè)計(jì)或畢業(yè)設(shè)計(jì)參考。項(xiàng)目不依賴復(fù)雜前端框架完整實(shí)現(xiàn)登錄、注冊(cè)、用戶/產(chǎn)品增刪改查、分頁(yè)查詢、圖片上傳、退出及未登錄過(guò)濾器攔截等后臺(tái)常見(jiàn)功能可幫助讀者理解 servletjdbc 的請(qǐng)求處理與數(shù)據(jù)庫(kù)交互流程。壓縮包共92個(gè)文件含14個(gè)java與12個(gè)jsp源碼、28個(gè)class編譯文件以及jar依賴、xml配置、數(shù)據(jù)庫(kù)腳本和docx導(dǎo)入步驟說(shuō)明整體僅3.04MB便于快速下載與本地部署。附帶的 mydb.sql 可直接建庫(kù)工程導(dǎo)入步驟與運(yùn)行必讀文檔能減少環(huán)境配置彎路。已有3371人學(xué)習(xí)下載適合需要完整可運(yùn)行后臺(tái)項(xiàng)目或希望逐模塊拆解原生 Java Web 開(kāi)發(fā)的讀者。1. 這套 jspservletjdbcmysql 后臺(tái)管理系統(tǒng)老技術(shù)棧為什么還能救急去年我?guī)У囊粋€(gè)練手小組把課程設(shè)計(jì)題目定為“產(chǎn)品后臺(tái)管理系統(tǒng)”要求不許用 Spring Boot必須用 Java 原生的 jspservletjdbcmysql 把界面和邏輯寫(xiě)出來(lái)。折騰兩周后他們交上來(lái)的東西和這份 xianfengProject 的結(jié)構(gòu)幾乎一樣登錄、注冊(cè)、產(chǎn)品增刪改查、分頁(yè)、圖片上傳、過(guò)濾器攔 session。我當(dāng)時(shí)把這套源碼當(dāng)參考答案發(fā)給組里新人時(shí)說(shuō)了一句話把這幾條鏈路跑通再去碰框架腦子里才有“請(qǐng)求到底是怎么穿過(guò)后端”的那張地圖。現(xiàn)在很多培訓(xùn)項(xiàng)目上來(lái)就是 Spring BootMyBatis-Plus模板一生成servlet 和 jdbc 反而成了黑匣子。這套源碼值錢的地方恰恰是它把黑匣子拆開(kāi)給你看分頁(yè)用 limit 怎么算、圖片上傳怎么落盤、過(guò)濾器怎么攔未登錄用戶。適合三類人剛學(xué)完 JavaWeb 想找完整閉環(huán)案例的在校生準(zhǔn)備 java 面試想復(fù)習(xí) servlet 和 jdbc 底層細(xì)節(jié)的求職者以及需要一套老技術(shù)棧管理系統(tǒng)改改就交差的在職工程師。我照著跑通一次全程沒(méi)遇到玄學(xué)問(wèn)題但確實(shí)有幾個(gè)坑后面單開(kāi)一章說(shuō)。2. 項(xiàng)目功能與原理解剖登錄、產(chǎn)品管理、過(guò)濾器是怎么串起來(lái)的2.1 五個(gè)功能模塊的請(qǐng)求映射關(guān)系這套系統(tǒng)的主入口是 index.jsp上面放了登錄和注冊(cè)兩個(gè)入口。登錄成功之后 session 里會(huì)寫(xiě)入用戶標(biāo)識(shí)然后跳轉(zhuǎn)到產(chǎn)品管理總頁(yè)面。產(chǎn)品管理頁(yè)承載了最重的業(yè)務(wù)查詢某個(gè)產(chǎn)品、添加、修改、批量刪除、查看詳情、分頁(yè)展示。退出功能就是清 session 回主頁(yè)邏輯最簡(jiǎn)單但承載著整個(gè)權(quán)限閉環(huán)。從請(qǐng)求路徑來(lái)看整個(gè)系統(tǒng)的流轉(zhuǎn)關(guān)系大概是這樣一張映射表請(qǐng)求路徑對(duì)應(yīng)處理說(shuō)明/index.jsp主頁(yè)展示未登錄時(shí)的默認(rèn)落地頁(yè)/login.doLoginServlet校驗(yàn)用戶名密碼成功則寫(xiě)入 session/register.doRegisterServlet新增用戶寫(xiě)入 t_user 表/product/list.doProductServlet(list)分頁(yè)查詢產(chǎn)品默認(rèn) pageIndex1/product/add.doProductServlet(add)添加產(chǎn)品涉及圖片上傳/product/update.doProductServlet(update)修改產(chǎn)品/product/batchDelete.doProductServlet(batchDelete)批量刪除/logout.doLogoutServlet清除 session 后 redirect 到 index.jsp我在實(shí)際復(fù)現(xiàn)時(shí)會(huì)先畫(huà)這張表再去對(duì)照源碼里的 servlet 映射。因?yàn)樵?servlet 項(xiàng)目沒(méi)有框架里那種注解路由或者只在 servlet 上用 WebServlet通讀一遍 web.xml 或注解整個(gè)功能邊界就清楚了。2.2 目錄結(jié)構(gòu)里藏著的老工程痕跡壓縮包解開(kāi)后的內(nèi)容很有意思它同時(shí)保留了 .idea 和 .mymetadata、.project、.classpath說(shuō)明這份源碼在 IntelliJ IDEA 和 MyEclipse 里都被打開(kāi)過(guò)。xianfengProject.iml 是 IDEA 的模塊文件out 目錄是 IDEA 編譯輸出目錄WebRoot 是 web 根目錄。這些細(xì)節(jié)對(duì)復(fù)現(xiàn)有用用 IDEA 導(dǎo)入時(shí)直接 Open 這個(gè)目錄IDEA 會(huì)讀取 .iml 恢復(fù)模塊結(jié)構(gòu)用 Eclipse/MyEclipse 導(dǎo)入時(shí)則看 .project 和 .classpath。src 目錄放 Java 源碼servlet、dao、bean、utilWebRoot 目錄放 jsp 頁(yè)面、WEB-INF/web.xml、js、css、上傳圖片目錄壓縮包內(nèi)附帶的 mydb.sql 是初始化腳本工程導(dǎo)入步驟.docx 和運(yùn)行必讀.txt 是作者寫(xiě)的操作說(shuō)明我一般建議先打開(kāi)運(yùn)行必讀.txt 再動(dòng)手因?yàn)檫@種老工程最容易翻車的就是環(huán)境版本不匹配。正文里寫(xiě)了 jdk1.7、tomcat7、mysql5.5/5.6/5.7這三個(gè)版本必須對(duì)齊別腦子一熱裝個(gè) tomcat10servlet 包名都變了代碼直接編譯不過(guò)。2.3 mydb.sql 里的核心表結(jié)構(gòu)設(shè)計(jì)這套系統(tǒng)只需要兩張核心表用戶表 t_user 和產(chǎn)品表 t_product。產(chǎn)品表要存圖片路徑所以單獨(dú)留了一個(gè) image_path 字段價(jià)格用 DECIMAL 而不是 FLOAT避免精度問(wèn)題。下面是按常規(guī)設(shè)計(jì)補(bǔ)全的建表 SQL和源碼里 mydb.sql 的思路一致CREATE DATABASE IF NOT EXISTS xianfeng_db DEFAULT CHARSET utf8mb4; USE xianfeng_db; CREATE TABLE t_user ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(50) NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; CREATE TABLE t_product ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL, price DECIMAL(10,2) NOT NULL DEFAULT 0.00, description TEXT, image_path VARCHAR(255), created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; INSERT INTO t_user(username, password) VALUES(admin, 123456);這里有兩個(gè)細(xì)節(jié)值得注意。第一字符集要 utf8mb4 而不是 utf8否則插入 emoji 或生僻字時(shí) jdbc 連接 mysql 會(huì)直接報(bào) Incorrect string value。第二密碼字段設(shè)計(jì)成 VARCHAR(50) 是課程設(shè)計(jì)常見(jiàn)做法生產(chǎn)環(huán)境絕不這么干至少得加鹽哈希。我復(fù)現(xiàn)時(shí)只是為了跑通流程所以沿用原設(shè)計(jì)的明文存儲(chǔ)但如果你要拿這套資源改造成真正的工程密碼存儲(chǔ)是第一件必須改的事。3. 從壓縮包到跑通環(huán)境、導(dǎo)入、建庫(kù)、部署四步走3.1 環(huán)境版本對(duì)齊少一步后期就是玄學(xué)現(xiàn)場(chǎng)老工程最怕的就是版本漂移。項(xiàng)目說(shuō)明明確寫(xiě)了 jdk1.7、tomcat7、mysql5.5/5.6/5.7。我本地用的組合是 jdk1.7 tomcat7.0.94 mysql5.7.44一次跑通。如果你電腦上已經(jīng)裝了高版本 JDK比如 JDK8 或 JDK11編譯目標(biāo)可以調(diào)成 1.7 來(lái)兼容但 tomcat 建議老老實(shí)實(shí)用 7.x。tomcat8.5 以上對(duì)老式 jsp 的隱式對(duì)象處理有細(xì)微差異雖說(shuō)大概率沒(méi)問(wèn)題但沒(méi)必要為了一個(gè)復(fù)現(xiàn)去賭兼容性。還有 jdbc 驅(qū)動(dòng)版本mysql5.7 用 mysql-connector-java-5.1.49.jar 最常見(jiàn)驅(qū)動(dòng)類名是 com.mysql.jdbc.Driver。如果你手頭是 8.x 的驅(qū)動(dòng)包驅(qū)動(dòng)類名要換成 com.mysql.cj.jdbc.Driver連接串還要額外加 serverTimezone 參數(shù)。這一步是 jdbc 連接 mysql 的經(jīng)典坑后面避坑章細(xì)說(shuō)。3.2 用 IDEA 導(dǎo)入工程源碼自帶 .idea 目錄和 iml 文件所以用 IntelliJ IDEA 打開(kāi)最省事。不是新建工程而是 File - Open 直接選中 xianfengProject 目錄IDEA 會(huì)根據(jù) iml 恢復(fù)模塊配置。打開(kāi)后第一件事是檢查 Project StructureProject SDK: 選 1.7 或按需調(diào)成 1.8編譯級(jí)別 Level 7 Project language level: 7 - Diamonds, ARM, multi-catch 等 Modules - Dependencies: 確認(rèn) lib 下的 mysql-connector 等 jar 已加入之后配置 TomcatRun - Edit Configurations - 左上角 - Tomcat Server - Local在 Deployment 頁(yè)簽里添加 ArtifactApplication context 填 /xianfengProject。這個(gè) context path 決定了你訪問(wèn)地址是 http://localhost:8080/xianfengProject/index.jsp。邏輯說(shuō)明老式 web 工程在 IDEA 里的部署方式是 Exploded解壓目錄不是 war 包。這樣做的好處是 jsp 修改后刷新頁(yè)面就能看到不用重新打包。你在 Deployment 里看到的 artifact 類型應(yīng)該是 Web Application: Exploded。3.3 初始化數(shù)據(jù)庫(kù)與賬號(hào)配置打開(kāi)命令行進(jìn)入 mysql 的 bin 目錄執(zhí)行mysql -u root -p mydb.sqlmydb.sql 在壓縮包根目錄建議先用記事本打開(kāi)看一眼確認(rèn)里面的庫(kù)名和表名。如果腳本里沒(méi)有 CREATE DATABASE你需要手動(dòng)先建庫(kù)再使用。導(dǎo)入成功后在 mysql 命令行執(zhí)行 SHOW TABLES; 能看到 t_user 和 t_product 就說(shuō)明數(shù)據(jù)庫(kù)這邊齊活了。然后打開(kāi)源碼里的 jdbc 配置文件一般是 src 下名為 db.properties 或 jdbc.properties 的文件改成你本地的賬號(hào)密碼jdbc.drivercom.mysql.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/xianfeng_db?useUnicodetruecharacterEncodingutf8 jdbc.usernameroot jdbc.password你的數(shù)據(jù)庫(kù)密碼參數(shù)說(shuō)明useUnicodetrue 和 characterEncodingutf8 這兩個(gè)參數(shù)建議保留否則從 mysql 讀中文再寫(xiě)進(jìn) jsp 顯示時(shí)容易出現(xiàn)亂碼。端口 3306 如果你本地改過(guò)也要同步換。這條連接串是 jdbc 連接 mysql 最經(jīng)典的寫(xiě)法很多框架的底層數(shù)據(jù)源本質(zhì)上也在拼這么一串。3.4 啟動(dòng) Tomcat 并跑通第一個(gè)用例啟動(dòng)前先確認(rèn)四件事tomcat 端口沒(méi)被占、jdk 版本匹配、artifact 已經(jīng)部署、mysql 服務(wù)是啟動(dòng)狀態(tài)。然后點(diǎn) IDEA 里的 Run 啟動(dòng) Tomcat控制臺(tái)出現(xiàn) Server startup 日志后瀏覽器訪問(wèn)http://localhost:8080/xianfengProject/index.jsp首次訪問(wèn)能看到主頁(yè)說(shuō)明 web 應(yīng)用沒(méi)問(wèn)題。然后用 admin/123456 登錄如果能進(jìn)產(chǎn)品管理頁(yè)這就算跑通了。接下來(lái)建議立刻做兩件事驗(yàn)證功能完整性隨便添加一個(gè)帶圖片的產(chǎn)品然后在前臺(tái)翻幾頁(yè)看分頁(yè)是否正常。第一輪復(fù)現(xiàn)只要這兩條鏈路通了這套源碼的核心功能就全部驗(yàn)證到位了。4. 源碼里值得一行行讀的三個(gè)實(shí)現(xiàn)分頁(yè)、圖片上傳、過(guò)濾器4.1 分頁(yè)查詢limit 參數(shù)與頁(yè)腳邏輯原生 jdbc 做分頁(yè)思路比 MyBatis-Plus 的 IPage 要直接得多。核心就是 SQL 拼 limit前端把當(dāng)前頁(yè)碼傳給 servletservlet 通過(guò) request.getParameter 拿參數(shù)dao 層計(jì)算偏移量后執(zhí)行查詢。下面是 ProductDao 分頁(yè)方法的核心代碼public ListProduct findByPage(int pageIndex, int pageSize) { ListProduct list new ArrayListProduct(); String sql SELECT id, name, price, description, image_path FROM t_product ORDER BY id DESC LIMIT ?, ?; int start (pageIndex - 1) * pageSize; try (Connection conn DBUtil.getConnection(); PreparedStatement ps conn.prepareStatement(sql)) { ps.setInt(1, start); ps.setInt(2, pageSize); try (ResultSet rs ps.executeQuery()) { while (rs.next()) { Product p new Product(); p.setId(rs.getInt(id)); p.setName(rs.getString(name)); p.setPrice(rs.getBigDecimal(price)); p.setDescription(rs.getString(description)); p.setImagePath(rs.getString(image_path)); list.add(p); } } } catch (SQLException e) { e.printStackTrace(); } return list; }代碼邏輯start 計(jì)算的是跳過(guò)的記錄數(shù)pageIndex 從 1 開(kāi)始第一頁(yè)就是 limit 0, 10。ORDER BY id DESC 表示新品在前后來(lái)我在改造時(shí)加了“默認(rèn)按添加時(shí)間倒序”的需求邏輯同理。參數(shù)說(shuō)明pageSize 是每頁(yè)行數(shù)一般在 servlet 里寫(xiě)死成常量或者從前端下拉框傳入這里用 PreparedStatement 預(yù)編譯也順便防了 SQL 注入是原生 jdbc 寫(xiě)法的標(biāo)準(zhǔn)姿勢(shì)。配套的還要有查詢總記錄數(shù)的 count 方法頁(yè)腳才能顯示共 X 頁(yè)public int count() { String sql SELECT COUNT(*) FROM t_product; try (Connection conn DBUtil.getConnection(); PreparedStatement ps conn.prepareStatement(sql); ResultSet rs ps.executeQuery()) { if (rs.next()) { return rs.getInt(1); } } catch (SQLException e) { e.printStackTrace(); } return 0; }前端頁(yè)腳計(jì)算總頁(yè)數(shù)時(shí)用 (total pageSize - 1) / pageSize 代替除法向上取整避免浮點(diǎn)誤差。這是原生分頁(yè)里最后一步很多新手在這里翻車。4.2 圖片上傳servlet3.0 的 Part 接口圖片上傳是整套系統(tǒng)里最有技術(shù)含量的環(huán)節(jié)。摘要里寫(xiě)了圖片上傳功能實(shí)現(xiàn)上在 tomcat7 環(huán)境可以直接用 servlet3.0 的 Part 接口不需要 commons-fileupload。product 表單里 input 標(biāo)簽要加 enctypemultipart/form-data這是第一個(gè)必須注意的點(diǎn)。WebServlet(/product/add.do) public class ProductAddServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding(utf-8); String name request.getParameter(name); Part part request.getPart(image); String fileName getFileName(part); String uploadPath getServletContext().getRealPath(/) upload; File dir new File(uploadPath); if (!dir.exists()) { dir.mkdirs(); } part.write(uploadPath File.separator fileName); String price request.getParameter(price); String desc request.getParameter(description); // 組裝 Product 對(duì)象調(diào)用 dao 層插入 t_product // image_path 字段存 upload/文件名方便頁(yè)面拼接展示 response.sendRedirect(list.do?pageIndex1); } private String getFileName(Part part) { String header part.getHeader(content-disposition); String[] arr header.split(;); for (String s : arr) { if (s.trim().startsWith(filename)) { return s.substring(s.indexOf() 2, s.length() - 1); } } return default.png; } }這段代碼有幾個(gè)關(guān)鍵細(xì)節(jié)。getRealPath(/) 返回的是 webapp 部署后的磁盤絕對(duì)路徑upload 目錄要在第一次上傳前創(chuàng)建否則 part.write 會(huì)報(bào) FileNotFoundException。getFileName 這個(gè)方法不能省Part 對(duì)象沒(méi)有直接提供原文件名方法只能從 content-disposition 頭里截取。圖片存儲(chǔ)路徑建議存相對(duì)路徑 upload/文件名頁(yè)面 標(biāo)簽直接寫(xiě) srcupload/xxx.png 就能展示這也是摘要里提到“jsp 圖片如何定位”的常見(jiàn)解法。4.3 過(guò)濾器session 驗(yàn)證與放行路徑過(guò)濾器是這套系統(tǒng)安全機(jī)制的核心。如果用戶沒(méi)登錄直接訪問(wèn)產(chǎn)品管理頁(yè)面必須被攔回 index.jsp。實(shí)現(xiàn)就是實(shí)現(xiàn) javax.servlet.Filter 接口在 doFilter 里檢查 sessionWebFilter(/*) public class LoginFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletRequest request (HttpServletRequest) req; HttpServletResponse response (HttpServletResponse) resp; String uri request.getRequestURI(); String ctx request.getContextPath(); String path uri.substring(ctx.length()); boolean isStatic path.startsWith(/js/) || path.startsWith(/css/) || path.startsWith(/upload/) || path.endsWith(.js) || path.endsWith(.css); boolean isPublic path.equals(/index.jsp) || path.equals(/login.do) || path.equals(/register.do) || path.equals(/logout.do); HttpSession session request.getSession(false); boolean loggedIn session ! null session.getAttribute(user) ! null; if (loggedIn || isStatic || isPublic) { chain.doFilter(req, resp); } else { response.sendRedirect(ctx /index.jsp); } } }這個(gè)過(guò)濾器的邏輯要仔細(xì)理解放行三類請(qǐng)求——已登錄用戶的請(qǐng)求、靜態(tài)資源、公開(kāi)頁(yè)面。沒(méi)有登錄且不滿足放行條件的重定向回 index.jsp。我見(jiàn)過(guò)很多新手寫(xiě)的過(guò)濾器只判斷了 session結(jié)果把登錄頁(yè)面和靜態(tài) JS 全都攔了頁(yè)面樣式全丟或者死循環(huán)重定向。注意 getSession(false) 不要寫(xiě)成 getSession()帶參 false 不會(huì)自動(dòng)創(chuàng)建 session避免未登錄用戶每次訪問(wèn)都被強(qiáng)制生成 session這是個(gè)資源浪費(fèi)的隱形坑。5. 避坑指南復(fù)現(xiàn)這套源碼最容易翻車的五個(gè)位置5.1 環(huán)境部署與啟動(dòng)過(guò)程中的典型問(wèn)題現(xiàn)象一執(zhí)行 net start mysql 時(shí)提示服務(wù)名無(wú)效或者服務(wù)正在啟動(dòng)后立刻停止。我遇到這臺(tái)機(jī)器裝的是 mysql5.7.44之前用安裝版裝過(guò)一次后來(lái)又解壓了一份免安裝版注冊(cè)表里的服務(wù)名根本沒(méi)對(duì)上。原因服務(wù)名不是默認(rèn)的 mysql而是你安裝時(shí)指定的名稱可能是 MySQL57 或自定義的名字。解決用管理員身份打開(kāi) CMD執(zhí)行 sc query 或直接到服務(wù)管理器里看服務(wù)名再執(zhí)行 net start 服務(wù)名如果服務(wù)列表里沒(méi)有就用 mysqld --install 先注冊(cè)服務(wù)再啟動(dòng)?,F(xiàn)象二本地裝了 JDK8但源碼在編譯時(shí)報(bào)錯(cuò)看不到 API 或語(yǔ)法級(jí)別不對(duì)。這套工程注釋里寫(xiě)的是 jdk1.7如果直接用 IDEA 默認(rèn) SDK 打開(kāi)編譯級(jí)別可能帶著 1.8 語(yǔ)法servlet 代碼沒(méi)問(wèn)題但某些老 lib 會(huì)和 JDK8 產(chǎn)生 bytecode 版本沖突。解決Project Structure 里把 Project SDK 定義為 1.7沒(méi)有就先裝一個(gè)Language level 選 7Modules 里的 SDK 也同步改。如果你機(jī)器上只有 JDK8 不想再裝舊的把編譯 target 調(diào)成 1.7 也能緩解大部分問(wèn)題?,F(xiàn)象三Tomcat 啟動(dòng)時(shí)端口被占用報(bào) SEVERE 級(jí)別的 Socket bind 失敗。原因多半是上次 IDEA 非正常關(guān)閉java.exe 進(jìn)程還占著 8080。解決CMD 執(zhí)行 netstat -ano | findstr :8080 查到 PID再 taskkill /PID 你的PID /F殺完重啟就好。血淚經(jīng)驗(yàn)不要一上來(lái)就把 tomcat 的 server.xml 端口改成 8081治標(biāo)不治本而且 session 里的回跳地址不會(huì)自動(dòng)適配新端口?,F(xiàn)象四頁(yè)面訪問(wèn) 404顯示源服務(wù)器未能找到目標(biāo)資源的表示。原因一般是 artifact 沒(méi)部署成功或者 context path 不是 /xianfengProject。Tomcat 的部署機(jī)制里war 或 exploded artifact 要掛在指定 context 下訪問(wèn)路徑是 ip:port/context/資源路徑少一層或多一層都會(huì) 404。解決檢查 Run Configuration 的 Deployment 頁(yè)簽確認(rèn) artifact 已經(jīng)添加且 Application context 寫(xiě)的 /xianfengProject然后重啟 Tomcat 重新部署?,F(xiàn)象五數(shù)據(jù)庫(kù)連接報(bào) java.sql.SQLException: Unknown database。使用 mysql -u root -p mydb.sql 導(dǎo)入前如果 mydb.sql 里沒(méi)有 CREATE DATABASE或者當(dāng)前用戶沒(méi)權(quán)限建庫(kù)表就落在系統(tǒng)庫(kù)里甚至沒(méi)落進(jìn)去但 JDBC URL 里卻寫(xiě)了 xianfeng_db結(jié)果就是連接報(bào) Unknown database。解決先手動(dòng)執(zhí)行 CREATE DATABASE xianfeng_db DEFAULT CHARSET utf8mb4再進(jìn)入該庫(kù)導(dǎo)入腳本或者直接在 mysql 命令行用 source 方式導(dǎo)入 mydb.sql。5.2 代碼運(yùn)行與數(shù)據(jù)層面的常見(jiàn)踩坑點(diǎn)現(xiàn)象一前端中文亂碼界面顯示“錕斤拷”。原因有三個(gè)位置必須同時(shí)設(shè)置 UTF-8JSP 頁(yè)面頂部的 pageEncoding、servlet 里 request.setCharacterEncoding(utf-8)、jdbc 連接串里的 characterEncodingutf8。少一個(gè)就亂這是老項(xiàng)目的連環(huán)坑。解決三個(gè)位置全部補(bǔ)齊product 添加頁(yè)面和注冊(cè)頁(yè)面的表單都過(guò)一遍?,F(xiàn)象二圖片上傳后 標(biāo)簽顯示裂圖刷新后圖片丟失。原因開(kāi)發(fā)環(huán)境用 getRealPath 把圖片寫(xiě)到 tomcat 部署目錄下的 upload 里但 IDEA 重啟或 clean 后整個(gè)部署目錄被重建上傳的文件隨之被刪除。這是 tomcat explode 部署的經(jīng)典副作用。解決把上傳路徑改成工程外目錄比如 D:/upload然后通過(guò)映射或單獨(dú) servlet 提供圖片訪問(wèn)。如果只是跑課程設(shè)計(jì)接受重啟丟圖片的現(xiàn)實(shí)也行但心里要清楚這個(gè)邊界。現(xiàn)象三過(guò)濾器把登錄頁(yè)的 css/js 也攔截了頁(yè)面雖然能打開(kāi)但是光禿禿的沒(méi)有樣式。原因WebFilter(/*) 匹配所有請(qǐng)求css 和 js 也在攔截范圍內(nèi)session 為空時(shí)全部重定向到 index.jsp最終瀏覽器加載靜態(tài)資源時(shí)循環(huán)重定向。我在 4.3 節(jié)里已經(jīng)寫(xiě)了放行邏輯的完整代碼把路徑判斷提前到 session 判斷之前問(wèn)題就解決了?,F(xiàn)象四分頁(yè)點(diǎn)下一頁(yè)時(shí)說(shuō) pageIndex 為 null 的 NumberFormatException或者總頁(yè)數(shù)算出來(lái)是 1 但數(shù)據(jù)有 50 條。原因servlet 里直接 Integer.parseInt(request.getParameter(pageIndex))第一頁(yè)時(shí)鏈接沒(méi)帶參數(shù)就報(bào)空指針總頁(yè)數(shù)用除法直接取整10 條數(shù)據(jù) pageSize10 時(shí)總頁(yè)數(shù)算成 1恰好第 11 條就消失了。解決parseInt 前先判空并給默認(rèn)值 1總頁(yè)數(shù)用 (total pageSize - 1) / pageSize 計(jì)算。6. 進(jìn)階改造把 jdbc 直連換成 Druid 連接池順便解決連接資源釋放問(wèn)題如果你準(zhǔn)備把這份源碼改造成能拿去實(shí)習(xí)面試?yán)镏v的工程第一個(gè)要?jiǎng)拥兜牡胤浇^對(duì)不是界面美化而是數(shù)據(jù)源。原生 jdbc 最尷尬的場(chǎng)景就是每次請(qǐng)求都 DriverManager.getConnection用 complete 關(guān) Connection、Statement、ResultSet代碼丑且容易漏關(guān)。我的習(xí)慣是引入 Druid把數(shù)據(jù)源初始化擠到 static 塊里讓整個(gè) webapp 只維護(hù)一個(gè)連接池。先在 lib 目錄放 druid-1.1.24.jar然后在 src 下加一個(gè) DBUtil 改造版import com.alibaba.druid.pool.DruidDataSource; public class DBUtil { private static DruidDataSource dataSource; static { dataSource new DruidDataSource(); dataSource.setDriverClassName(com.mysql.jdbc.Driver); dataSource.setUrl(jdbc:mysql://localhost:3306/xianfeng_db?useUnicodetruecharacterEncodingutf8); dataSource.setUsername(root); dataSource.setPassword(123456); dataSource.setInitialSize(3); dataSource.setMaxActive(10); dataSource.setMaxWait(3000); } public static Connection getConnection() throws SQLException { return dataSource.getConnection(); } }邏輯說(shuō)明Druid 的 setInitialSize 是啟動(dòng)時(shí)預(yù)建的連接數(shù)setMaxActive 是池中最多同時(shí)活躍的連接數(shù)setMaxWait 是拿不到連接時(shí)最長(zhǎng)等待毫秒數(shù)。這樣就省去了每個(gè) dao 方法里 DriverManager.getConnection 的重復(fù)代碼連接獲取速度也快了一個(gè)數(shù)量級(jí)。原有 dao 層的 try-with-resources 不用動(dòng)因?yàn)?Druid 的 getConnection 返回的是代理連接調(diào)用 close 只是歸還池子不會(huì)真的斷開(kāi)。dao 層代碼里所有 Class.forName 加載驅(qū)動(dòng)的語(yǔ)句都可以刪掉了數(shù)據(jù)源初始化時(shí)已經(jīng)完成。接下來(lái)把這段改動(dòng)跑一遍回歸登錄、添加產(chǎn)品、上傳圖片、分頁(yè)瀏覽、退出五個(gè)鏈路全部過(guò)一遍重點(diǎn)觀察 Tomcat 控制臺(tái)有沒(méi)有連接泄漏提示。改完你會(huì)發(fā)現(xiàn)兩件事第一頁(yè)面響應(yīng)速度在連續(xù)點(diǎn)擊分頁(yè)時(shí)明顯變快因?yàn)檫B接復(fù)用而不是每次新建第二Tomcat 重啟時(shí)再也不會(huì)因?yàn)檫B接未釋放報(bào)警。從那以后我每次拿到這種課程設(shè)計(jì)源碼都會(huì)強(qiáng)制先做一遍數(shù)據(jù)源改造再談功能順手也會(huì)把過(guò)濾器放行路徑完整走查一遍。這套方法希望你也能用上幫你少走彎路。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美日韩性爱操大逼| 丁香五月成人| 亚洲,欧美,综合网| 一区=区三区视频| 男女激情黄色网址| 84YTCOM性无码| 日韩无码服务区| 欧美熟女激情| 9热9热综合网| 鲁鲁色综合网| 欧美色婷婷| jizzjizz欧美| 女人被添高潮免费视频| 7777奇米影视久久| 免费看片黄| 日1区2区3区2020| 亚洲色悠悠久久88| 91九九九小逼| 激情图片伦理国产一区二区日韩| 91超级碰碰碰| 国产67194| 香蕉久久AⅤ...| 香蕉人欧美综合| 蜜臀99久久精品久久久久| 超碰 国产熟女精品一区| 久久久久七视频| caopeng97| 人妻熟女午夜精品在线| 日韩影片中文字幕一区二区三区| 久久婷婷国产一区二区色| 国产成人久久久精品免费AV| 99爱爱| ..日韩av毛片精品久久久| 男女无套 免费网站| 免费精品AB| 久久久一区二区| 97视频620| 亚洲中文字幕日产无码久久| 91艹逼精品| 精品176精品2| 一二三四视频在线社区中文字幕| 天天综合网1| 激情综合av| 天天超级碰碰碰| 欧美日韩亚洲五月天婷婷| 亚洲日韩av一区二区三区百合| 大胆91| 麻豆国产av网| 久久久久9999妇女| 78m成人视线| 超碰在线在公开超碰在线在公开| 国产精品福利视频| 中文字幕人妻资源在线| 熟女精品va中文字幕| 国产自产自拍| 337p大胆噜噜噜噜噜91Av| 人妻日日干| 蜜乳av首页| 色婷婷六月| 天天干天天日天天射黄色| 岛国AV一区二区电影| 蜜臀AV成人精品蜜臀AV久久| 99精品无码| 丝袜足交视频| 成视频在线观看免费看| 青青草原狼av| 成人久久久精品| 91制服丝袜| 天天日天天干天天操| 亚洲AV成人无码一二三久久| 五月婷婷六月天| 啊啊啊在线观看免费视频| 欧美国产一区二区三区麻豆传媒 | 久湿久久| 欧美亚洲今日在线| 欧美亚洲中文字幕| 日韩78m视频| 日韩日韩日韩-国产乱码精品一区二区| 欧美色老汉| 久久性爱视频免费看| 色噜噜精品一区二区三| 艳美熟妇先锋一二三区| 久久久一区二区三区麻豆| 精品久久久av无码免费| 亚洲精品视频在线播放| 亚洲在高跟鞋自慰久久在色线| 曰本道人妻久久久在线不卡色视频| 精品人妻一区二区三区免费视频| 91香蕉视频在线观看免费| 亚洲图片欧美在线视频| 久久午夜神马| 欧美操逼熟女| 久草婷婷| 色视频蜜乳| 色色色色综合网| 中文幕97| 欧美性爱无码一区二区三区| 久久天天性久久伊人| 99草精| 亚洲中文国际强奸字幕| 百度百度日本操逼| 婷婷综合久久| 亚州综合网| 狠狠色综合网| 天天操妹子| 久久东京伊人一本到鬼色| 少妇蜜汁| 国产91影院| 婷婷五月天福利| 97精品国产精品免费观看| 少妇综合| 91久久国产综合久久| 人妻91少妇| 亚洲精品久久久久久久蜜桃臀| 久久99手机免费视频| 97干在线| 91老司机在线视频免费观看| 国产9区| 五月婷婷色| 亚洲玖玖爱| 国产日韩在线播放| 9 1超碰九色| 中文字幕交换人妻| 97一区二区三区视频| 91视频伊人| 国产精品久久发布| 国产一区二区三区视频在线看| 色五月69夫妻| 亚洲AV成人无码久久精品播放| 搡老女人老91妇女熟女| 99这里有精品视频| 国产女人视频三四五区| 夜夜嗷嗷一区二区| 丰满人妻一区二区三区大胸懂色| 97国产综合欧美| 91黑人无码激情在线| 超碰 欧美| 屌妞视频久久久久久久久久久久 | 大奶啊啊好爽| 人妻另类 专区 欧美 制服| 一道本东京热加勒比一区二区三区| yiqicaoav| 熟妇人妻一区二区三区| 免费1级a做爰片观看| 99精品久久久久久| 丝袜制服字幕在线| 午夜120视频在线观看| 亭亭在线资源| 婷婷亚洲中文字幕在线| 免费啪啪av| 天堂综合| 欧美日韩情色一区二区| xxxx网站亚洲精品| 熟女少妇一区二区三区| yy少妇精品久久| 美女自卫慰黄网站免费| 精品78| 国产91精品久久久久久久网曝门| 人妻精品一区二区在线| 18禁在线视频| 97ai亚洲| 亚洲久久东京热一二三四五区视频| 日韩成人精品中文字幕| 国产麻豆福利av在线播放| 偷拍亚洲视频一区二区三区四区| 性感女人网页在线观看视频| 色五月丁香五月| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 天美av在线观看| 亚洲三区视频| 女人综合网| 97超碰久久色| 日韩伦理久 久久 清纯| 99热综合| 欧美顶级黄色大片免费| 超清福利精品视频在线| 97超碰碰| 三级日韩一区二区三区| 国产91美女视频| 日韩操呦呦影院在线观看| 色五月婷婷久久| 国产超碰AV在线精品| 久久亚洲日韩熟女精品| 影音资源男人日韩| 亚洲AV在线资源| 中文乱码99| 日本人体九九九九九九| 久久99网站| 午夜福利免费福利视频| 一区二区三区视频国产免费| 亚洲精品一二牛牛| 日韩性爱长视频免费| 色区97| 欧美激情黑人| 骚逼自拍99| 久插综合| 美女淫穴| 国产传媒美日韩av| 久久9亚洲| 日韩午夜啪啪视频| 激情啪啪拍91| 婷婷五月综合激情| 亚洲色人妻综合| 丁香五月天视频| 色婷婷香蕉| 黄aaaaaaaaaaaaaaaaaa色网站| 亚洲无线码欧洲精品区别| 性色AV网站| 69精品| 亚洲国产97| 屁股久久久久久| 国产精品播放| 国产精品96| 啪啪自拍九九综合| 亚洲综合另类| 国内亚洲高清无码| 麻豆国产精品午夜视频| 乱伦一二三区| 一区在线观看中文字幕| 亚洲欧美精品一区天堂久久 | 亚洲Av诱惑| 夜夜黄| 99久在线精品99re8蜜桃| 超碰吊日色| 久久久久久久久999| 国产一区二区二区按摩精品啪视频| 狠狠躁伊人中文字幕| 日本熟妇浓毛hdsex| 亚洲成人激情小说视频| 这里只有精品视频在线观看麻豆| 欧美成人黄网色网站| 人妻少妇久久久| 人澡逼| 中文字幕熟女人妻丝袜丝| 欧美黑人与女人91| 秋霞Av理论一级在线| 欧美精品精品一区二区| 日本激情免费大片| 天天插天天干| 嗯嗯,好大,好爽,好骚| 久久少妇人妻| 起碰97| 日韩性爱毛片操骚逼| 无码日韩网站| 打av高清| 亚洲狠狠入| 国产91影院| 精品人体无圣光凹凸| 久久亚洲婷婷| 欧美精品双插| 九九九999久久久网站| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 大香网站| 麻豆乱码久久精| 亚洲色图欧美色图制服诱惑| 成人久久久| 亚洲av影院在线观看| 宅男91视频在线播放| 欧美日韩亚洲五月天婷婷| 69久久| 26uuu成人影片| 国产精品三级视频网站| 大屁股国产在线视频| 五十路熟女人妻一区二区在线观看 | 国产精品无码论坛| 老熟女熟妇| 日韩BBN| 日本一区二区三区免费观看| www.天天干| 日韩中文字幕精品一二三事国产精品| 女欧美一区二三区| 乱精品一区字幕二区| 日韩大香蕉精品在线视频| 免费视频97| av婷婷色婷婷色六月| 国产大片精久久久久久| 91成人18| 男人天堂久久精品| 啊啊啊啊啊啊在线| 亚洲性爱高潮影院| 啊啊啊啊啊啊在线| 91九久| 男人天堂东京热| 中文字幕日本久久| 欧美日韩亚洲国产中文永久天天看| 激情小说图片亚洲首页| 99国产精品人妻人伦| 人妻少妇精品久久久久久| 久久‘黄片视频| 男人的天堂2000| 黑人美精品 A片| 色综合加勒比四四季| 极品国产内射| 91色综合激情| 巨爆乳一区二区爆乳区| 屌妞视频久久久久久久久久久久| 欧美岛国精品在线观看| 久艹伊人精品综合在线| 免费中文综合精品| 久久只有精品一区二区三区| 国产一区二区三区久久久精品| 欧美熟妇乱码在线一区| 一区AV| 69精品人人人人| www.91人妻.com| 97操在线| 日本一级黄色电影| 久久中出| 亚洲和欧美裸体美女双飞视频| 国产日韩欧美中文在线播放| 亚洲色图自拍| 日本三级中国三级99人妇网站| 99热这里都是精品| 国产欧美精品日韩区二区麻豆天美| 欧美日韩久久精品爱爱| 亚洲AV资源| 欧美国产精品| 18精品一二区| 亚洲码和欧洲精品激情系列| 日韩精品黄片免费观看| 600国产精品视频| 九九久久一区二区三区| 日日噜噜夜夜狠狠视频无| 欧美线天码中字| 国产超碰在线| 国产一区二区三区免费视频在性观看 | 操九九九九九九| 大香蕉乱级| 天堂亚洲精品久久老牛| 人人天天欧洲| 九色精品视频导航1| 视频黄站| 毛片中心9视频99| 密乳AV免费观看| 日本不卡免费二区| 亚洲少妇激情视频| 天天添天天干电影| 99久久久er直播网址| 神马午夜久久| 亚洲资源一区| 性交一区二区在线播放| www.狠狠干.coom| 国产69精品久久久久99尤物| 亚洲国产综合图区中文字幕 | 久操视频资源站公开| 九九九九九精品| 色婷婷久久综合超碰| 国产精品亚洲免费| 中文字幕人成乱码熟女香港| 欧美加勒比| 青青草久草AV| 97天天综合网| 亚洲网自拍| 97视频620| 开心激情婷婷| 欧美精品三级黄片| 九九综合网| 亚洲人在线成线成人| 91快色色色色色| 黄视频免费| 久久久精精精| 色偷偷综合91久久噜噜| 91色伦综合| 在线天堂999| 日本大片日本一区二区免费高清| 色久桃花影院在线观看| 亚洲一区中文精品| 明星性猛交ⅹxxx乱大交| 精品免费成人久久| 久久人妻少妇| julia中文字幕在线观看| 色女综合| 一区二区精品更新提醒| 按摩中文字幕| 国产欧美一区二区| 欧美激情总合网| 激情五月婷婷| 亚洲精品男人的天堂| 国产AV超爽| 粉嫩av久久一区二区三区| 亚洲 暴爽 AV人人爽日日碰| 亚洲久久久久| 在线播放成人高清免费视频| 在线播放成人高清免费视频| 伊人黄色片| 中文字幕日韩专区精品系列| 综合国产影视三级| 中文字幕123| 强歼乱伦资源网| 亚洲欧美国产成人综合不卡| 亚洲国产欧美中日韩成人综合视频| 午夜无码精品免费看性色| 色官网色综合| a级理论午夜日本| 日本福利二区视频| 日日夜夜干| 久操九九九九| 91艹逼精品| 精品中文日韩字幕视频| 中文熟女五十乱码在线| 九九九九一区| 岛国1区2区3区在线观看| 狠狠色噜噜狠狠狠狠2018| 伊人久久综合影院| 日本99久久| 天天摸天天插天天日| 国产夜夜操| 黄色片G G G| 夜夜嗨一区二区三区三州加勒比| 天美传媒AV在线播放| 欧洲在线性爱视频| 免费亚洲黄色视频在线观看| 婷婷激情四射| 操逼精品视频| 日本久久久久久久久久| 亚洲自拍偷拍视频在线| 国产精品自拍欧美在线| 操我啊啊啊啊啊| 天天综合麻豆视频| 日本精品999| 2019久久久久久久久福利| 思思热免费视频观看| 东京热激情视频一二三区| 欧亚日韩三区| 欧美色图色综合| 日本免费中文字幕在线| 理论久久婷婷网 8| 午夜精品久久999热蜜桃介男人用| 91精品91久久久久77777| 日本成a人v网站在线观看| 可以在线观看AV的网站| 密臀在线免费观看| 2017天天操天天日| 51一区二区三区| 人妻天天爽夜夜爽爽| 综合大香蕉美。| 9国产超碰| 97色干| 97在线无精品| 香蕉黄色一级视频| 久久免费老司机精品| 91熟女视频网| 天天色黄色影院天天操| 精品v1区| 久久91| 国产无马av| 熟女精品一区二区在线观看| 操逼逼一区视频| 精品一区二区三区蜜桃臀赵总 | 久久婷婷热| 啊啊啊啊啊在线视频| 好吊色青靑草| 国产亚洲在线| 人妻丰满熟妇av无码区蜜桃| 国产成人手机视频激情| 久久 亚洲 日韩 人妻| 免费精品无码一级毛片牛牛影视 | 一起草av| 久久久999国产精品| 伦伦成年午夜免费视频| 天天天天天天天天综合| 操婢日韩| 国产美女精品| 不卡av在线中文字幕| 美日韩一卡二卡三卡免费人妻精品| 国产激情在线| 丁香六月综合激情| 加勒比综合88| 欧美黑人猛交春色影视大全| 四虎在线观看视频| 午夜呻吟欧美| 亚洲国产欧美另类自拍| 亚洲熟女乱综合一区二区三区| 日韩免费三级黄片电影| 精品国产91久久久久久一区黄无| 被窝影院午夜看片无码| 日韩99神马视频片| 人妻中文字幕精品无码| 老熟妇一区二区三区啪啪| 国产精品无套内谢| 精品少妇高潮久久| 日本高清电影欧美色图| 国产精品直播在线观看直播| 校园春色亚洲无码| 日本日皮视频逼| 久久久久国色αv免费观看| 五月婷婷综合在线| 午夜视频黄| 国产精品视频在线播放| 日韩欧美俄罗斯A片| 美女爽到高潮91| 人妻天天夜夜爽一区二区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 狠狠爱综合| 九九九国产| 99热超碰| 人妻乱仑一区二区三区| 欧洲亚洲少妇| 99国产精品免费| 亚洲成a人片在线观看中文!!!| 中文字幕一二三av| 4141514逼喷水三级片| 八戒无码国产午夜福利| 久久久久久久久女黄| 欧美极品女人的天堂| 中文字幕日韩人妻视频| 亚洲女人91| 国产精品网站www| 探花激情视频| 天天躁日日躁成人字幕aⅴ| 精品妇操一区二区三区| 97精品国产97久久久| 狠狠色狠狠色狠狠五月| 国产女人视频三四五区| 天天碰久久入| 使劲用力艹少妇视频一区二区| 国模精品娜娜一二三区 | 97天天摸天天碰| 伊人久久在线视频观看| 91综合网站| 在线观看午夜婷婷久久久久清性观看| 国产av尤物| 久操凹凸视频| 91操操操操| 高清无码学生妹高潮| 一牛一区二区三区久久| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 激情一区二区三区在线观看| 在线A日本| 天天噜| 久久风骚城市人| 97超碰逼| 伊人久久国产免费观看视频| 久久超碰爱| 日本韩欧美在线播放a| 熟妇xxxxx性春色| 诱惑网综合| 91综合天天| 久9久9久9久9久9久9| 中国黑人三级片网站上区| 日韩欧美视频青青| 久久香蕉网| 国产乱伦一二三区| 最近2019中文字幕国语免费版| 国产婷婷综合在线观看| 国产精品九九九| 色妇综合网| 夜夜夜夜久久久久| 亚洲丝袜少妇在线| …亚洲黄色厕厕女女在线播…| 天美传媒精品久久视频| 职场同事知名国产国产精品久久欧美日韩| 亚州 综合 色图| 欧洲与亚洲欧美精品中文字幕| 97干在线看| 亚洲国产一区二区三区在线 | 白丝AV| 资源新线在线天堂| 中文字幕制服诱惑| 九九九九热| 日韩av在线精品观看| 粉嫩av在线| 丁香色狠狠色综合久久小说| 91综合在线| 亚洲精品一区二区日本| 蜜乳视频网站| 99色热国产视频精品| 色欲蜜臀AV| 大伊香蕉在线视频免费| 国产在线精品偷| 婷婷丁香六月天| 亚洲欧美校园另类春色| 99国产精品在线观看| 东京热一区二区三区四区五区六区| 91+欧美| 久久久久久久国产| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 国产成人www免费人成看片| 一区二区三区精品视频| 五月综合视频| 日韩内射视频| 国桃视频产巨乳精品一区二区在线| 97在线资源| 日韩91网| 欧美日韩另类在线播放| 欧美疯狂做爰xxxx| 九九玖玖精品| 超碰这里有精品| 蜜臀99久久国产| 国产91av在线播放| 国产欧美亚洲精品a第2页| 丁香六月婷婷| 亚洲的天堂网| 欧美日韩在线小说| 女人被男人桶爽视频网站| 高清国产av无码| 久久久久久久九九九九九九| 天天操熟妇| 欧美组图日韩亚洲中文字幕| 永久免费发布性爱网| 亚洲欧美精品一区天堂久久| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 欧美日本久久精品一区 | 日本人妻伦在线中文字幕| 国产午夜无码片在线观看影视| 五月天色五月| 9 9无尺码天堂网| 97色亚洲| 免费一级欧美片片线观看| 久久综合精品一区二区三区| 亚洲丝袜在线观看| 国产宅男宅女在线观看| 91n美女视频| 久久精品国产97欧美精品亚洲| 综合伊人网12色| 日韩av乱伦| 龙兴卡官方查询| 在线午夜成人无码视频| 丁香啪啪| 午夜九九| 国产美女mm131爽爽爽爽| 中文字幕日产av人| 美女91在线| 午夜一区| 自拍第一页| 99国产精品视频尤物| www.操| 日韩无限资源| 天天干,夜夜爽| 久久久久久99999国产精品| 被男人吃奶很爽的毛片| 女色视频社区| 中文字幕乱码在线观看| 国产无马av| 1204人成网站色www| 日韩欧美成人性爱在线| 精品国产72| 手机午夜电影神马久久| 肉丝网站91| 日韩熟女三十乱伦| 91亚洲精品青草| 超碰在线一区二区| 国产不卡精品91| 少妇久久久久久| 久久发布国产伦子伦精品| 国产一级作爱毛片| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 亚洲综合九九| 欧美男女午夜啪啪| 亚洲日韩在线a不卡99精品| 久久久久久久久久久久久9999| 亚洲情欲| 一区,二区,三区网站| 国产91影院| 国产午夜福利视频在线| 亚洲精品白浆高清久久久久久 | 日韩中文字幕精品一区在线| 美女黑人91神马| www.99中文字幕| 四虎影视永久在线观看精品免费网站| 亚欧性爱ab| 一区二区三区一亚洲中文字幕、综合区灬 | 新版天堂中文资源8在线| 亚洲蜜臀精品视频久久| 激情五月天色播| 大肥女高潮bbwbbwhd视频| 日本伦理一区二区| 又大又长又粗又爽又黄| 加勒比性爱成人在线| 亚洲av无码成人精品国产| 亚洲在线a| 91在线色| 欧美一级做a爰片免费视频| 精品999一区二区| 蜜桃中文字日产乱幕4区| 国产一区在线观看无码AV | 国产精品一区二区黄片| 张柏芝国产一区在线观看| 欧美少妇内射| 一区二区三区精品视频| 国产97在线 | 亚洲| 久久久av爱| 欧美自拍偷拍免费观看| 亚洲久久久久| 天综合网欧美| 五月丁香六月婷| 黄片国产精品一区二区| 97ai亚洲| 国产青视频| 欧美在线干| 国模无码人体一区二区三| 欧美色图在线视频少妇| 中文字幕日韩国产传媒欧美精品| 7777奇米影视久久| 99999国产| 久久久久久久久久久久黄色 | 97超碰人妻| 色阁阁AV综合网| 熟妇人妻精品一区二区视频色欲| 91久久精品中文字幕| 欧成人精品H无码| 九九九九一级| 人人摸人人干| 天天操夜夜操| 日本高清一区二区在线| 欧美综合国产精品久久丁香| 丝袜美腿91| 国产精品视频播放| 亚洲天天艹| 精品黑人一区二区| 亚洲精品尤物yw在线影院| 亚洲天堂男人天堂网| 天操天操夜操夜月月年年操操| 人人摸人人干| 欧美制服另类丝袜| 大香蕉啪啪啪| 一区二区三区激情在线观看| 伦激情人妻另类人妻| 97免费视频在线| 97色欧洲| 941超碰| 九九国产| av一区二区三区四区五区久草臀| 蜜臀av中字字幕网站| 久久久久人妻| 色五月综合| 久久AV无码网址| 一起草日韩| 亚洲无码国产精品久久| 国产精品久久久久久亚洲色欲| 久操免费在线| 诱惑网综合| 青娱乐91| 国产福利精品最新在线| 高清国产成人无码| 久久草草亚洲蜜桃臀| 91综合色| 草草电影院| 欧美不卡五十路| 丰满人妻被猛烈进入中| 精品人妻中文字幕高清| 精品无码久久久久久久杏吧| 加勒比海色香蕉婷婷| 夜夜爽夜夜操| 91色图| 国产午夜精品理论片一二三区区| 神马九九| 黄色片A级一区二区三区| 中文字幕日韩专区精品系列| 欧美Aⅴ| 日韩亚洲精品一区二区| 成人八戒网站| 视频分类 国内精品| 天天躁日日躁AAAXX| 九九人人操| 啊啊啊啊一区| 超碰97资源大奶| 亚洲天堂日本| 四虎精品亚洲| 欧美牲| 一个国产在线综合网站| 嗯啊抽插大香蕉网页| 亚欧高清在线| 91视频国品一二三区| 少妇被玩视频二三区| 欧美色图 人妻| 黑人粗大V S日韩女优视频| 熟妇人妻一二三区免费| 国产v亚洲v日韩v欧美v片另类| 中国AAAAAA黄色片| 日韩欧美中文日韩欧美色| 久久精品国产亚洲AV成人直播| 丁香五月激情啪啪| 亚洲AV资源| 熟妇激情| 女人天堂av在线播放| 九月丁香婷婷色| 超碰在线99| 热久久99999| 蜜桃传媒视频第一区入口在线看| 超碰成人人人爽人人爽| 国产精品久久久久中文字幕| 亚洲天堂电影精品一区| 欧美日韩婷婷中文| 亚洲美女精品九九视频| 亚洲图片激情综合另类| 婷婷五月天激情小说| 操人妻逼91| 91美女精品| 熟妇的味道HD中文字幕| 麻豆久久久一区二区| 色大香蕉97N| 精品少妇999| 欧美黑人精品一区二区| 在线 亚洲 网爆 自拍| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 亚州操操穴网| 男人的天堂kva| 欧 美 自 拍 偷 拍| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 亚洲欧美在线丝袜| 日日摸夜夜夜夜爽| 国内黄色精品| 欧美日韩传媒| 欧美日韩性爱视屏免费看了| 欧美日韩国产电影| 亚洲精品久久久久毛片A片拉屎 | 日本天堂网| 鸥美中出| 国产AV高清AV无码| 日本久久999| 东京热视频网| 久久综合久久综合人久久夜精品| 日韩一级二级三级| 人、人、摸,人、人、草| 淫骚熟女一区二区三区| 国产精品久久久吖| 天天看综合网| 东京热双插| 亚洲色五月| 精品丰满熟妇人妻一区| 人妻日日干| Aa东京男人的天堂| 乱伦1色页| 一区| 一本精品日本在线视频精品| 欧美一区二区在线资源| 中文字幕丰满子伦无码专区在线视频最新| 激情综合五月| 奶水 人妻 哺乳 在线| 强奸乱伦αv片| 久久久久国产精品人妻aⅴ天堂| 久久精品日韩| 91麻豆一二三区| 噜噜噜在线视频| 免费超碰97久久| 亚洲日韩美女中文字幕乱| 亚洲日韩欧美一区二区| AV污污污污| 1024午夜激情男人的天堂| 高清成年美女黄网站免费大全| 日本久久综合| 自拍偷拍 高清无码| 激情婷婷丁香| 中文字幕在线高清男人的天堂| 青青草在线视频美女| 婷婷天堂站| 夜夜欢天天干| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 97碰| 欧美激情性爱视频网站| 色呦呦、国产精品| 欧美人人曰人人操人人射射| 欧美亚洲AN| 免费一级特黄特色大片在线观看看| 精品九九九九九九九九九| 无码WWW免费视频网站| 国产精品一级二级在线| 激情久久av一区av二区av| 激情小说激情视频| 97在线免费看| 中文字幕在线观看永久| 国产九九九九九九| 志村玲子视频一区二区| 欧美18老人禁| 91路www| 精品一二三区久久AAA片| 日韩精品 欧美激情| 小草精彩毛片| 中国乱伦一区二区| 熟女91网站| 一区二区三区四区姦女| 久久无码电影| 熟女人妻一区二区三区免费看| 久久av网| 无遮挡猛进视频免费无限观看| 亚洲丝袜综合| 亚洲精品蜜桃久久久久久久| 五月天啪啪| av在线播放国产一区| 欧美久久人体| 动漫片子网站3黄| 精品国产久热在线观看| 97九色| 精品制服美女中文一区二区三区| 蜜臀av一区二区三区免费观看| WWW啪啪的com| 伊人麻豆传媒| 人妻激情在线视频| 精品人妻二区三区| 国产又粗又长又爽又色| 男人女人18禁片免费看网站| 天天操熟妇| 97天天综合网| 91oumei| 日韩不卡a级视频专区| 永久电影三级在线观看| 熟女少妇一区二区三区| 欧美视频激情久久久久久| 亚洲熟妇自偷自拍另欧美| 國產尤物AV尤物在線觀看| 国产精品爆乳懂色蜜乳| 日本欧美不卡| 久久禁| 啊啊啊好大好湿| 国产suv精品一区二区四区999 | 天天操天天日青青草超碰av| 国产精品小视频一区二区三区| 亚洲第一在线视频| 操逼国产免费| 狠狠色伊人亚洲综合网站色| 在线不欧美| 精品国产乱码久久久久久久久久毛片 | 国产女人9999| 欧美白嫩女HD| 日韩欧美成人大香蕉| 色婷婷电影网| 久久久久9| 日本色色色视频| 亚洲欧洲综合成人av一区| 永久电影三级在线观看| 丝袜AV一区二区三区| 国产精品97超碰| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 亚洲麻豆精品二区三区| 天天色播亚洲综合网站| 国产精品久久久久久久黄无码 | 亚洲第91页| 天美精品一区二区三区四区在线观看| 国产精品女同| 久久女人视频| a男人的天堂| 香蕉一区二区三区在线视频| 偷拍 精品 另类 四区| 后X久久| 91在线免费观看处女| 天天综合亚在线| 99re这里只有精品中心播放| 久久婷婷一区二| 天无日色综合| 高清不卡视频| 日韩中文字幕av在线播放| 91成人在线| 超碰精品| 天天操天天日天天干| 日本不卡一区二区三区| 91精品少妇搡搡搡| 日韩欧美三级| 亚洲在线a| 一级片视频啪啪| 狠狠操官网| 中文一区在线视频| 探花精品视频| 中文字幕老熟妇黄色视频| 国产欧美一区二区| 丝袜视频一区二区在线播放国产中文| 午夜精品久久久久| 国产99999久久精品| 日本2020一区二区| 欧美精品宗合| 乱伦a片视频| 久久久久国产一区二| 理论久久婷婷网 8| 欧美高潮在线| 亚洲日本大香蕉1| 亚洲超碰97| 美国精品国产精品| av凤凰久久久| 欧美少妇大量自拍视频在线观看| 啊啊啊啊啊好大好舒服想要| 日本不卡一区二区三区| 精品999一区二区| 伊人专区一区二区三区| 人人射人人操人人摸| 婷婷五月天补不补| 超碰人妻中文在线| 少妇大屁屁| 亚洲无码国产探花在线观看| 九九探花视频在线观看| 欧美一区91大爱| 东北女人操比视频| 淫淫综合网| 久久av一级av少妇av高潮| 丁香五月激情五月| 999综合色| 久久这里只有精品9| 二男一女成人A片| 男人的天堂2010| 强奸熟女一区二区三区| 老熟女综合| 可以免费观看的日韩av毛片| 精品妇女一区二区三区| 校园春色欧美| 伊人网青青| 国产精品色色| 97视频在线观看网站| 九九九九热| 91欧美长吊| 亚洲国产成人精品999| 久久精品毛片免费不卡| 日本五区不卡| 国产精品女久久久久av爽| 亚洲精品国产精品乱码不卡| av中亚| 欧美日韩夜夜| 97色97干| 熟妇高潮一区二| 日本国产亚洲一区在线观看| 日韩中字av一区| 人妻天天爽天天爽三区| 欧美亚洲AN| 99日韩| 97爱综合| 久久精品中文字幕女同| 综合在线导航一区| 91在线欧色| 久久久久元码视频| 秋霞怕怕片| 99激情视频| 国产夫妻性生活视频| 污污汅18禁网站在线永久免费观看 | 襙一襙| 久久久久13| 91 综合网| 麻豆国产免费影片| 无卡一区=区| 久久精品国产亚洲AV无码做| 欧美97日韩| 麻豆国产97在线| 另类综合另类| 91网站18| 99热97| 亚洲综合影院| 蜜色网色哟哟| 91香蕉国产尤物视频| 伊色综合天堂色97| 欧美97超碰| 男人的天堂网免费| 欧美性色网| 六六久久日韩不卡| 亚洲精品九九九| 91狠婷| 秋霞Av理论一级在线| 91老司机在线视频免费观看 | 久久欧美1卡2卡3| 欧美国产精品久久九九| 日本一二区免费| 自拍偷拍 日韩欧美| 大吊色| 亚洲中文一区二区三区| 内射黑丝袜| 操屄不卡视频| 精品国产乱码久久久| 91熟女熟妇视频网站| 啊啊啊在线观看| 麻豆乱码久久精| 欧美日韩日产免费网站看| 欧亚揄拍偷拍精品视频| 日本一级性爱| 中欧人妻丝袜中文字幕| 超碰99热| 九九无码视频| 精品一级| 日韩一区二区熟女| 久久无码成人| 久久成人东京热人妻| 男人的天堂啪啪| 精品国产Av无码久久久亚洲| 性性欧美| 91丨九色丨国产打屁股| 九九九九国产| av72网| 大香蕉黄色一区| 九色黄站| 国产精品高潮久久AV| 全免费a敌肛交毛片免费| 亚洲精品电影| 成人综合网 欧美| 欧美日韩性爱操大逼| 伊人操| 蜜臀一二三| 亚洲日本成人动漫| 台湾成人无码AV| 欧美写真视频一区| 又摸又舔在线观看网站| 久久人人爽人人爽人人片Ⅴ| 欧美成人一级麻豆| 97久久天天综合色天天综合色电影| 99熟女| 午夜福利无毒不卡| 操久久久久| 欧美日本天堂| 天天综合网站| 中文字幕精品日韩中文字幕| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 手机在线人成免费视频| 伊人加勒比| 91网站18+| 中文字幕在在线观看网站| 精品性爱一区二区| 欧美自拍偷拍综合图片| 中文字幕黄色一起草| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 2020中文字幕在线| wwe 天天干.com| 日本在线一二 | 中文字幕 人妻不满 在线视频| 日韩在线一区二区| 午夜美女福利视频| 久久97视频| 天天操天天日天天干| 校园春色综合色| 成人熟女区| 婷婷激情啪啪| 人人透人人操| a级成人毛片免费视频高清| 少妇熟女1区2区3区| 加勒比海人人操超碰在线| 亚洲在钱| 啊嗯嗯啊好大好爽| 影音先锋一区二区在线资源| 国产久久久9999| 成人资源中文字幕在线观看天天| 小情侣高清国产在线视频| 再深点灬舒服灬太大了添视频| 98人妻精品一区二区色欲| 超碰2017| 777超碰| 性色综合网| 久久老熟女| 欧美激情亚洲| 亚洲中文sv| 伊人网在线点播| 久久精品无码熟妇一区二区三区视频导航 | 怡红院视频在线| www.夜夜| 吻戏激情性巴克| 少妇超碰在线| 久久亚洲不卡| 久久国产三区| 日韩在线视频1234| 青青草在线成人视频| 青青草日本无码| 亚洲另类久操网| 成人熟女视频一区二区三区| 日本一二区免费| 91撸色网 玖玖网 欧美| 日日干夜夜操视频h| 第45页一区二区| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 男人午夜天堂| 性无码专区2020| 啪啪啪精品| 手机在线播放国产福利| 亚洲欧综合另类无码一区| 亚洲午夜福利在线影院| 第一高清av中文字幕| 人妻久久久久久| 91丨国产丨白浆| 五十路熟女工口 |