99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

Java Web育兒助手系統(tǒng):JSP+MySQL+Tomcat畢設(shè)實(shí)戰(zhàn)項(xiàng)目

Java Web育兒助手系統(tǒng):JSP+MySQL+Tomcat畢設(shè)實(shí)戰(zhàn)項(xiàng)目 簡(jiǎn)介本資源是一份面向計(jì)算機(jī)專(zhuān)業(yè)本科生的Java Web畢業(yè)設(shè)計(jì)項(xiàng)目文檔聚焦現(xiàn)代育兒場(chǎng)景下的信息化服務(wù)需求為初學(xué)者提供可運(yùn)行、易理解的完整系統(tǒng)實(shí)現(xiàn)方案。文檔詳細(xì)闡述了基于JSPJavaMySQL技術(shù)棧構(gòu)建的育兒助手系統(tǒng)涵蓋用戶端育兒知識(shí)瀏覽、資訊獲取、論壇互動(dòng)、智能問(wèn)答、個(gè)人中心與管理端資訊/輪播/用戶/知識(shí)/論壇/問(wèn)答等全維度后臺(tái)管理雙模塊設(shè)計(jì)邏輯與功能實(shí)現(xiàn)要點(diǎn)。資源為1個(gè)3.82MB的Word文檔.doc格式內(nèi)容包含開(kāi)題背景、系統(tǒng)分析、數(shù)據(jù)庫(kù)設(shè)計(jì)、核心代碼說(shuō)明、界面截圖及中英文摘要等典型畢設(shè)要素結(jié)構(gòu)規(guī)范、排版清晰適合作為課程設(shè)計(jì)參考、答辯材料模板或二次開(kāi)發(fā)基礎(chǔ)。目前已有200人學(xué)習(xí)下載對(duì)掌握J(rèn)SP動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)、MySQL數(shù)據(jù)建模及Java后端業(yè)務(wù)整合具有較強(qiáng)實(shí)踐指導(dǎo)價(jià)值。1. 基于Web育兒助手系統(tǒng)一個(gè)能跑通、能部署、能答辯的Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)項(xiàng)目這不是一個(gè)“概念演示”或“PPT系統(tǒng)”。它是一套真實(shí)可運(yùn)行、帶完整前后端交互、含管理員后臺(tái)與用戶前臺(tái)、數(shù)據(jù)庫(kù)表結(jié)構(gòu)清晰、JSP頁(yè)面邏輯閉環(huán)、連Tomcat啟動(dòng)報(bào)錯(cuò)都能定位到具體行號(hào)的本科級(jí)Java Web畢業(yè)設(shè)計(jì)落地包。我去年幫3個(gè)同學(xué)調(diào)試過(guò)這個(gè)項(xiàng)目——有人卡在MySQL中文亂碼有人死在JSP EL表達(dá)式語(yǔ)法錯(cuò)誤還有人把web.xml里servlet-mapping路徑寫(xiě)成/login.jsp而不是/login導(dǎo)致404刷屏。它解決的不是“有沒(méi)有”而是“能不能上線”首頁(yè)輪播圖能換、育兒知識(shí)能增刪、論壇帖子能發(fā)、智能問(wèn)答能查庫(kù)返回、投訴建議能存進(jìn)MySQL并被管理員看到。技術(shù)棧干凈利落JSP非Servlet裸寫(xiě)有MVC雛形、JavaJDBC直連無(wú)Spring Boot遮掩適合答辯講清流程、MySQL 5.7建表含外鍵、索引、中文字段、B/S架構(gòu)Chrome/Firefox直輸http://localhost:8080/baby/即進(jìn)首頁(yè)。適合兩類(lèi)人一是大四趕畢設(shè) deadline 的同學(xué)需要一份不踩坑、不翻車(chē)、能本地跑通、能導(dǎo)出war包、能應(yīng)對(duì)老師現(xiàn)場(chǎng)提問(wèn)的實(shí)操資源二是剛學(xué)完JDBC和JSP想練手的初學(xué)者它比“學(xué)生選課系統(tǒng)”更貼近生活場(chǎng)景比“圖書(shū)管理系統(tǒng)”多出論壇、問(wèn)答、輪播等真實(shí)模塊代碼量適中核心JSP頁(yè)28個(gè)Java類(lèi)19個(gè)SQL腳本1份改起來(lái)不暈講起來(lái)有料。2. 技術(shù)選型與環(huán)境搭建為什么是JSPMySQLTomcat而不是Spring Boot2.1 JSP不是過(guò)時(shí)技術(shù)而是畢業(yè)設(shè)計(jì)的“可控性錨點(diǎn)”很多人看到JSP第一反應(yīng)是“淘汰了”。但對(duì)本科畢設(shè)而言JSP恰恰是最可控的技術(shù)選擇。原因有三調(diào)試鏈路極短JSP修改 → 保存 → 刷新瀏覽器錯(cuò)誤直接打在頁(yè)面上如org.apache.jasper.JasperException: Unable to compile class for JSP你能立刻看到哪行EL表達(dá)式寫(xiě)錯(cuò)、哪個(gè)JavaBean沒(méi)import而Spring Boot改個(gè)Controller要重啟、看日志、查端口沖突新手容易陷入“改了但沒(méi)生效”的玄學(xué)狀態(tài)。MVC邊界清晰本項(xiàng)目雖未用Struts但已自然分層——JSP負(fù)責(zé)展示% %取值、c:forEach遍歷、JavaBean封裝數(shù)據(jù)User.java,Post.java、Servlet處理請(qǐng)求LoginServlet.java,AddPostServlet.java、DAO操作數(shù)據(jù)庫(kù)UserDAO.java。答辯時(shí)老師問(wèn)“怎么實(shí)現(xiàn)登錄驗(yàn)證”你指著LoginServlet.doPost()里userDAO.findByUsernameAndPassword()這行代碼再講JDBC連接池配置邏輯扎實(shí)不空洞。教學(xué)資源豐富Eclipse Tomcat MySQL組合B站搜“JSP學(xué)生管理系統(tǒng)”有上千個(gè)帶語(yǔ)音的實(shí)操視頻遇到ClassNotFoundException: com.mysql.cj.jdbc.Driver你知道該去WEB-INF/lib下放mysql-connector-java-8.0.33.jar而Spring Boot的application.yml配錯(cuò)新手常卡在YAML縮進(jìn)或spring.datasource.url里時(shí)區(qū)參數(shù)漏寫(xiě)。提示本項(xiàng)目JSP使用JSTL 1.2c:if、c:forEach需在WEB-INF/lib中放入jstl-1.2.jar和standard-1.1.2.jar。若用Tomcat 9注意JSTL版本兼容性——Tomcat 9默認(rèn)支持JSP 2.3JSTL 1.2完全可用無(wú)需升級(jí)到JSTL 1.3。2.2 MySQL 5.7選它不是因?yàn)椤靶隆倍且驗(yàn)椤胺€(wěn)”和“好教”項(xiàng)目摘要里寫(xiě)“MySQL數(shù)據(jù)庫(kù)”但沒(méi)指定版本。實(shí)測(cè)發(fā)現(xiàn)MySQL 5.7.44 是本項(xiàng)目的黃金版本。原因如下字符集開(kāi)箱即用安裝時(shí)勾選utf8mb4而非舊版utf8建庫(kù)語(yǔ)句CREATE DATABASE baby CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;后續(xù)所有表自動(dòng)繼承徹底規(guī)避“育兒知識(shí)”四個(gè)字存進(jìn)數(shù)據(jù)庫(kù)變????的血淚問(wèn)題。權(quán)限管理夠用不復(fù)雜畢設(shè)只需一個(gè)baby_user賬號(hào)賦予baby.*庫(kù)的SELECT,INSERT,UPDATE,DELETE權(quán)限即可。命令就一行CREATE USER baby_userlocalhost IDENTIFIED BY baby123; GRANT SELECT,INSERT,UPDATE,DELETE ON baby.* TO baby_userlocalhost; FLUSH PRIVILEGES;不像MySQL 8.0強(qiáng)制caching_sha2_password插件新手配JDBC URL時(shí)得加?serverTimezoneAsia/ShanghaiuseSSLfalseallowPublicKeyRetrievaltrue一長(zhǎng)串參數(shù)極易出錯(cuò)。工具鏈成熟Navicat for MySQL 15、MySQL Workbench 8.0、甚至DOS下的mysql -u root -p都能無(wú)縫連接。導(dǎo)入SQL腳本時(shí)Navicat右鍵“運(yùn)行SQL文件”比命令行source baby.sql更直觀適合答辯前快速重裝數(shù)據(jù)庫(kù)。2.3 Tomcat 8.5畢業(yè)設(shè)計(jì)的“安全區(qū)”服務(wù)器為什么不用Tomcat 10因?yàn)門(mén)omcat 10全面轉(zhuǎn)向Jakarta EE 9所有javax.*包名改為jakarta.*如javax.servlet.http.HttpServlet→jakarta.servlet.http.HttpServlet而本項(xiàng)目所有Servlet仍用javax——這是JSP規(guī)范在Java EE 8時(shí)代的標(biāo)準(zhǔn)寫(xiě)法。Tomcat 8.5.94最新8.5.x版完美兼容支持JSP 2.3、Servlet 3.1、EL 3.0覆蓋項(xiàng)目全部語(yǔ)法內(nèi)存占用低Win10下啟動(dòng)僅占300MB內(nèi)存老筆記本也能跑conf/server.xml里Connector port8080直接暴露端口無(wú)需反向代理本地測(cè)試零配置。部署時(shí)將項(xiàng)目根目錄含WEB-INF文件夾整個(gè)拖進(jìn)webapps/下重命名為baby啟動(dòng)Tomcat后訪問(wèn)http://localhost:8080/baby/index.jsp即進(jìn)首頁(yè)。若遇404先檢查webapps/baby/WEB-INF/web.xml是否存在再確認(rèn)welcome-file-list里是否為welcome-fileindex.jsp/welcome-file。2.4 B/S架構(gòu)不是“為了用而用”而是解決真實(shí)部署痛點(diǎn)本項(xiàng)目堅(jiān)持B/SBrowser/Server而非C/SClient/Server核心動(dòng)因是降低交付與演示門(mén)檻學(xué)生交畢設(shè)老師不想裝客戶端答辯現(xiàn)場(chǎng)換電腦只要瀏覽器就能打開(kāi)管理員后臺(tái)/admin/路徑無(wú)需額外登錄態(tài)維護(hù)全靠Sessionrequest.getSession().setAttribute(admin, admin)關(guān)瀏覽器即退出安全又省事所有靜態(tài)資源CSS/JS/圖片放在webapps/baby/static/下路徑硬編碼為/baby/static/css/style.css避免相對(duì)路徑../css/style.css在不同層級(jí)JSP中失效。注意B/S意味著所有業(yè)務(wù)邏輯在服務(wù)端。例如“智能問(wèn)答”模塊用戶輸入關(guān)鍵詞JSP提交到SearchServletServlet調(diào)KnowledgeDAO.searchByKeyword(keyword)查MySQL再把結(jié)果List傳回JSP用c:forEach展示——沒(méi)有前端JavaScript發(fā)AJAX沒(méi)有Vue響應(yīng)式純服務(wù)端渲染。這正是答辯時(shí)老師想聽(tīng)的“數(shù)據(jù)從哪來(lái)怎么查怎么傳怎么顯”3. 核心功能實(shí)現(xiàn)從注冊(cè)登錄到智能問(wèn)答每一步都附可運(yùn)行代碼3.1 用戶注冊(cè)與登錄Session JDBC 密碼MD5三步閉環(huán)注冊(cè)流程不是簡(jiǎn)單存表而是包含數(shù)據(jù)校驗(yàn)、密碼加密、唯一性約束三重保障。關(guān)鍵代碼在RegisterServlet.java// RegisterServlet.java protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username request.getParameter(username).trim(); String password request.getParameter(password); String email request.getParameter(email).trim(); // 1. 前端校驗(yàn)JSP中已有onsubmitreturn validateForm()此處二次校驗(yàn) if (username.length() 3 || username.length() 16) { request.setAttribute(error, 用戶名長(zhǎng)度3-16位); request.getRequestDispatcher(register.jsp).forward(request, response); return; } if (!email.matches(^[a-zA-Z0-9._%-][a-zA-Z0-9.-]\\.[a-zA-Z]{2,}$)) { request.setAttribute(error, 郵箱格式不正確); request.getRequestDispatcher(register.jsp).forward(request, response); return; } // 2. 密碼MD5加密使用commons-codec-1.15.jar String encryptedPassword DigestUtils.md5Hex(password); // 3. 調(diào)用DAO檢查用戶名是否已存在 UserDAO userDAO new UserDAO(); if (userDAO.findByUsername(username) ! null) { request.setAttribute(error, 用戶名已被注冊(cè)); request.getRequestDispatcher(register.jsp).forward(request, response); return; } // 4. 創(chuàng)建User對(duì)象并插入 User user new User(); user.setUsername(username); user.setPassword(encryptedPassword); user.setEmail(email); user.setRegTime(new Date()); userDAO.insert(user); // 執(zhí)行INSERT INTO user VALUES(...) request.setAttribute(msg, 注冊(cè)成功請(qǐng)登錄); request.getRequestDispatcher(login.jsp).forward(request, response); }邏輯說(shuō)明與參數(shù)說(shuō)明DigestUtils.md5Hex(password)使用Apache Commons Codec庫(kù)比手寫(xiě)MessageDigest簡(jiǎn)潔且commons-codec-1.15.jar已放入WEB-INF/libuserDAO.findByUsername(username)DAO層執(zhí)行SELECT * FROM user WHERE username ?查到記錄即返回User對(duì)象否則返回nullrequest.getRequestDispatcher(xxx.jsp).forward()服務(wù)端跳轉(zhuǎn)URL不變r(jià)equest域中屬性如error、msg可被目標(biāo)JSP獲取關(guān)鍵避坑點(diǎn)username.trim()防止用戶輸空格注冊(cè)email.matches(...)正則確保郵箱基礎(chǔ)格式數(shù)據(jù)庫(kù)user.username字段設(shè)為UNIQUE索引雙重防重。登錄邏輯在LoginServlet.java核心是比對(duì)MD5密碼// LoginServlet.java User user userDAO.findByUsernameAndPassword(username, DigestUtils.md5Hex(password)); if (user ! null) { // 登錄成功存入Session HttpSession session request.getSession(); session.setAttribute(user, user); // 后續(xù)所有頁(yè)面可通過(guò)${sessionScope.user.username}取值 response.sendRedirect(index.jsp); // 重定向避免F5刷新重復(fù)提交 } else { request.setAttribute(error, 用戶名或密碼錯(cuò)誤); request.getRequestDispatcher(login.jsp).forward(request, response); }提示response.sendRedirect()是重定向URL變?yōu)?baby/index.jsprequest.getRequestDispatcher().forward()是轉(zhuǎn)發(fā)URL保持/baby/login。登錄成功必須用重定向否則用戶刷新login.jsp會(huì)再次提交表單。3.2 育兒知識(shí)管理CRUD全鏈路含分頁(yè)與分類(lèi)管理員后臺(tái)的“育兒知識(shí)管理”是典型CRUD模塊但增加了按分類(lèi)篩選、按發(fā)布時(shí)間倒序、分頁(yè)顯示三個(gè)實(shí)用功能。KnowledgeListServlet.java負(fù)責(zé)列表頁(yè)// KnowledgeListServlet.java protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int page 1; int pageSize 10; String currentPage request.getParameter(page); if (currentPage ! null !currentPage.isEmpty()) { page Integer.parseInt(currentPage); } String category request.getParameter(category); // 分類(lèi)篩選如新生兒 KnowledgeDAO knowledgeDAO new KnowledgeDAO(); // 1. 查詢總記錄數(shù)用于分頁(yè)計(jì)算 int totalCount knowledgeDAO.getTotalCount(category); // 2. 查詢當(dāng)前頁(yè)數(shù)據(jù) ListKnowledge knowledgeList knowledgeDAO.findByPage(category, (page-1)*pageSize, pageSize); // 3. 計(jì)算總頁(yè)數(shù) int totalPage (int) Math.ceil((double) totalCount / pageSize); // 4. 將數(shù)據(jù)存入request域 request.setAttribute(knowledgeList, knowledgeList); request.setAttribute(page, page); request.setAttribute(totalPage, totalPage); request.setAttribute(totalCount, totalCount); request.setAttribute(category, category); request.getRequestDispatcher(/admin/knowledge_list.jsp).forward(request, response); }DAO層關(guān)鍵SQLKnowledgeDAO.java// 查詢總數(shù)帶分類(lèi)條件 public int getTotalCount(String category) { String sql SELECT COUNT(*) FROM knowledge WHERE 11; if (category ! null !category.isEmpty()) { sql AND category ?; } try (Connection conn DBUtil.getConnection(); PreparedStatement ps conn.prepareStatement(sql)) { if (category ! null !category.isEmpty()) { ps.setString(1, category); } ResultSet rs ps.executeQuery(); if (rs.next()) { return rs.getInt(1); } } catch (SQLException e) { e.printStackTrace(); } return 0; } // 分頁(yè)查詢MySQL寫(xiě)法 public ListKnowledge findByPage(String category, int offset, int limit) { String sql SELECT * FROM knowledge WHERE 11 ORDER BY create_time DESC LIMIT ?, ?; if (category ! null !category.isEmpty()) { sql SELECT * FROM knowledge WHERE category ? ORDER BY create_time DESC LIMIT ?, ?; } // ... 執(zhí)行查詢封裝為L(zhǎng)istKnowledge }JSP分頁(yè)HTMLknowledge_list.jsp!-- 分頁(yè)導(dǎo)航 -- div classpagination c:if test${page 1} a hrefknowledge_list?page${page-1}${empty param.category ? : categoryparam.category}laquo; 上一頁(yè)/a /c:if c:forEach begin1 end${totalPage} vari c:choose c:when test${i page} span classcurrent${i}/span /c:when c:otherwise a hrefknowledge_list?page${i}${empty param.category ? : categoryparam.category}${i}/a /c:otherwise /c:choose /c:forEach c:if test${page totalPage} a hrefknowledge_list?page${page1}${empty param.category ? : categoryparam.category}下一頁(yè) raquo;/a /c:if /div參數(shù)說(shuō)明offset (page-1)*pageSizeMySQL分頁(yè)起點(diǎn)第1頁(yè)從0開(kāi)始第2頁(yè)從10開(kāi)始LIMIT ?, ?預(yù)編譯占位符防SQL注入${empty param.category ? : categoryparam.category}JSTL三元運(yùn)算保留分類(lèi)篩選參數(shù)點(diǎn)擊頁(yè)碼不丟失篩選條件classcurrentCSS高亮當(dāng)前頁(yè)提升管理體驗(yàn)。3.3 智能問(wèn)答模塊不是AI而是關(guān)鍵詞模糊匹配的輕量級(jí)實(shí)現(xiàn)標(biāo)題叫“智能問(wèn)答”實(shí)際是基于MySQL全文索引的LIKE模糊搜索符合本科畢設(shè)定位——不吹噓大模型但功能真實(shí)可用。SearchServlet.java核心邏輯// SearchServlet.java String keyword request.getParameter(keyword).trim(); if (keyword.isEmpty()) { request.setAttribute(error, 請(qǐng)輸入搜索關(guān)鍵詞); request.getRequestDispatcher(search.jsp).forward(request, response); return; } // 使用MySQL全文索引需提前在knowledge表title,content字段建FULLTEXT索引 // ALTER TABLE knowledge ADD FULLTEXT(title, content); String sql SELECT * FROM knowledge WHERE MATCH(title, content) AGAINST(? IN NATURAL LANGUAGE MODE) ORDER BY MATCH(title, content) AGAINST(?) DESC; // 若未建全文索引則降級(jí)為L(zhǎng)IKE // String sql SELECT * FROM knowledge WHERE title LIKE ? OR content LIKE ? ORDER BY create_time DESC; ListKnowledge results new ArrayList(); try (Connection conn DBUtil.getConnection(); PreparedStatement ps conn.prepareStatement(sql)) { ps.setString(1, keyword); ps.setString(2, keyword); ResultSet rs ps.executeQuery(); while (rs.next()) { Knowledge k new Knowledge(); k.setId(rs.getInt(id)); k.setTitle(rs.getString(title)); k.setContent(rs.getString(content).substring(0, Math.min(200, rs.getString(content).length())) ...); k.setCategory(rs.getString(category)); results.add(k); } } catch (SQLException e) { // 降級(jí)處理若全文索引報(bào)錯(cuò)改用LIKE sql SELECT * FROM knowledge WHERE title LIKE ? OR content LIKE ? ORDER BY create_time DESC; // ... 重新執(zhí)行 } request.setAttribute(results, results); request.setAttribute(keyword, keyword); request.getRequestDispatcher(search_result.jsp).forward(request, response);建全文索引SQL執(zhí)行一次即可ALTER TABLE knowledge ADD FULLTEXT(title, content); -- 驗(yàn)證是否生效SHOW INDEX FROM knowledge;優(yōu)勢(shì)與邊界MATCH...AGAINST比LIKE %keyword%快10倍以上尤其數(shù)據(jù)量超千條時(shí)IN NATURAL LANGUAGE MODE支持相關(guān)性排序搜索“發(fā)燒”時(shí)“寶寶發(fā)燒怎么辦”排在“兒童發(fā)燒物理降溫”前面不依賴(lài)外部API純數(shù)據(jù)庫(kù)能力答辯時(shí)可演示EXPLAIN SELECT ...證明性能若老師問(wèn)“為什么不是真正AI”可答“本模塊聚焦信息檢索效率全文索引是MySQL原生高性能方案避免引入Python或調(diào)用第三方API帶來(lái)的部署復(fù)雜度符合B/S架構(gòu)輕量級(jí)原則?!?.4 論壇發(fā)帖與回復(fù)一對(duì)多關(guān)系的JSP實(shí)現(xiàn)論壇模塊體現(xiàn)數(shù)據(jù)庫(kù)設(shè)計(jì)功底。post表主貼與reply表回復(fù)是典型一對(duì)多外鍵reply.post_id指向post.id。發(fā)帖JSPadd_post.jsp提交到AddPostServlet// AddPostServlet.java String title request.getParameter(title); String content request.getParameter(content); int userId ((User) request.getSession().getAttribute(user)).getId(); Post post new Post(); post.setTitle(title); post.setContent(content); post.setUserId(userId); post.setCreateTime(new Date()); PostDAO postDAO new PostDAO(); int postId postDAO.insert(post); // 返回自增ID // 發(fā)帖成功后重定向到該貼詳情頁(yè) response.sendRedirect(post_detail.jsp?id postId);post_detail.jsp同時(shí)加載主貼和所有回復(fù)!-- 主貼 -- div classpost-detail h2${post.title}/h2 p classpost-meta作者${post.userName} | 發(fā)布時(shí)間${post.createTime}/p div classpost-content${post.content}/div /div !-- 回復(fù)列表 -- div classreplies h3共 ${fn:length(replies)} 條回復(fù)/h3 c:forEach items${replies} varreply div classreply-item pstrong${reply.userName}/strong${reply.content}/p p classreply-time${reply.createTime}/p /div /c:forEach /div !-- 回復(fù)表單 -- form actionAddReplyServlet methodpost input typehidden namepostId value${param.id} textarea namecontent placeholder寫(xiě)下你的回復(fù)... required/textarea button typesubmit提交回復(fù)/button /formDAO層關(guān)聯(lián)查詢PostDAO.java// 查詢主貼及所有回復(fù)一次SQL避免N1 public Post findWithReplies(int postId) { String sql SELECT p.*, u.username as userName, r.id as reply_id, r.content as reply_content, r.create_time as reply_time, ru.username as reply_user_name FROM post p LEFT JOIN user u ON p.user_id u.id LEFT JOIN reply r ON p.id r.post_id LEFT JOIN user ru ON r.user_id ru.id WHERE p.id ? ORDER BY r.create_time ASC; // ... 執(zhí)行手動(dòng)組裝Post對(duì)象及ListReply }注意LEFT JOIN確保無(wú)回復(fù)的帖子也能顯示ORDER BY r.create_time ASC讓回復(fù)按時(shí)間正序排列最早回復(fù)在最前JSP中${fn:length(replies)}需在頁(yè)面頂部聲明% taglib prefixfn urihttp://java.sun.com/jsp/jstl/functions %。4. 避坑指南那些讓答辯前夜崩潰的12個(gè)真實(shí)問(wèn)題與解法4.1 中文亂碼從數(shù)據(jù)庫(kù)到JSP五層防線全解析現(xiàn)象MySQL里存的是“新生兒護(hù)理”網(wǎng)頁(yè)顯示“?–°?”或表單提交“張三”數(shù)據(jù)庫(kù)存成“?? ??‰”。原因亂碼是字符集傳遞鏈斷裂涉及5個(gè)環(huán)節(jié)MySQL服務(wù)器默認(rèn)字符集character_set_server數(shù)據(jù)庫(kù)/表字符集CREATE DATABASE ... CHARACTER SET utf8mb4JDBC連接URL參數(shù)?characterEncodingutf8mb4Tomcatserver.xmlConnector的URIEncodingUTF-8JSP頁(yè)面編碼聲明% page contentTypetext/html;charsetUTF-8 %解決步驟1MySQL命令行執(zhí)行SHOW VARIABLES LIKE character_set_%;確保character_set_serverutf8mb4步驟2建庫(kù)時(shí)明確指定CREATE DATABASE baby CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;步驟3DBUtil.java中JDBC URL寫(xiě)全private static final String URL jdbc:mysql://localhost:3306/baby?useUnicodetruecharacterEncodingutf8mb4serverTimezoneAsia/Shanghai;步驟4conf/server.xml中Connector標(biāo)簽加屬性Connector port8080 protocolHTTP/1.1 URIEncodingUTF-8 ... /步驟5每個(gè)JSP頂部第一行必須是% page languagejava contentTypetext/html; charsetUTF-8 pageEncodingUTF-8%缺一不可。曾有同學(xué)只改了JSP忘了改server.xml導(dǎo)致GET請(qǐng)求URL參數(shù)仍亂碼。4.2 JSP EL表達(dá)式不解析不是語(yǔ)法錯(cuò)是web.xml版本惹的禍現(xiàn)象JSP里寫(xiě)% user.username %能顯示但c:out value${user.username}/或${user.username}直接原樣輸出字符串。原因EL表達(dá)式默認(rèn)在JSP 2.0啟用但若web.xml頭聲明為Servlet 2.3舊版EL會(huì)被禁用。解決檢查webapps/baby/WEB-INF/web.xml頂部聲明!-- ? 正確Servlet 3.0EL默認(rèn)開(kāi)啟 -- web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaee xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd version3.1若看到version2.3或http://java.sun.com/dtd/web-app_2_3.dtd立即替換為上方3.1版本聲明。Tomcat 8.5完全兼容。4.3 Tomcat啟動(dòng)失敗端口被占、JAR沖突、JDK版本三殺現(xiàn)象雙擊startup.bat無(wú)反應(yīng)或命令行報(bào)Address already in use: JVM_Bind、java.lang.UnsupportedClassVersionError。排查三步法端口沖突netstat -ano | findstr :8080Windows或lsof -i :8080Mac/Linux找到PID后taskkill /PID PID /FJAR沖突WEB-INF/lib下若有多個(gè)mysql-connector-java-*.jar如5.1和8.0混存刪掉舊版只留mysql-connector-java-8.0.33.jarJDK版本錯(cuò)配本項(xiàng)目編譯為Java 8javac -source 1.8 -target 1.8若系統(tǒng)裝了JDK 17Tomcat會(huì)報(bào)UnsupportedClassVersionError。解決方案下載JDK 8u202長(zhǎng)期支持版設(shè)置JAVA_HOME指向JDK 8echo %JAVA_HOME%Windows或echo $JAVA_HOMEMac/Linux確認(rèn)重啟命令行再啟Tomcat。4.4 管理員登錄404路徑大小寫(xiě)與web.xml映射的隱形殺手現(xiàn)象訪問(wèn)http://localhost:8080/baby/admin/提示404但/baby/index.jsp正常。原因文件路徑大小寫(xiě)錯(cuò)誤webapps/baby/admin/文件夾名寫(xiě)成AdminWindows不敏感Linux敏感web.xml中Servlet映射路徑錯(cuò)誤url-pattern/admin/login/url-pattern寫(xiě)成url-pattern/Admin/Login/url-patternJSP中鏈接寫(xiě)死a href/admin/index.jsp應(yīng)為a href${pageContext.request.contextPath}/admin/index.jsp。解決統(tǒng)一用小寫(xiě)命名所有文件夾和JSPweb.xml中url-pattern全部小寫(xiě)所有JSP內(nèi)鏈接用${pageContext.request.contextPath}動(dòng)態(tài)獲取上下文路徑避免硬編碼/baby。4.5 數(shù)據(jù)庫(kù)連接失敗驅(qū)動(dòng)、URL、權(quán)限的鐵三角驗(yàn)證現(xiàn)象java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver或Communications link failure。驗(yàn)證清單項(xiàng)目正確值檢查方式驅(qū)動(dòng)JARmysql-connector-java-8.0.33.jar確認(rèn)在WEB-INF/lib/下且無(wú)其他版本JDBC URLjdbc:mysql://localhost:3306/baby?useUnicodetruecharacterEncodingutf8mb4serverTimezoneAsia/Shanghai復(fù)制到Navicat測(cè)試能否連MySQL賬號(hào)權(quán)限baby_user對(duì)baby庫(kù)有SELECT,INSERT,UPDATE,DELETESHOW GRANTS FOR baby_userlocalhost;MySQL服務(wù)狀態(tài)正在運(yùn)行services.msc中檢查“MySQL80”服務(wù)是否啟動(dòng)血淚經(jīng)驗(yàn)曾有同學(xué)MySQL服務(wù)名為“MySql57”JDBC URL卻寫(xiě)localhost:3306實(shí)際端口是3307。務(wù)必用netstat -ano | findstr :330確認(rèn)MySQL監(jiān)聽(tīng)端口。5. 進(jìn)階技巧讓項(xiàng)目從“能跑”升級(jí)為“值得講”的3個(gè)硬核操作5.1 用Log4j2替代System.out.println讓調(diào)試痕跡變成答辯加分項(xiàng)畢業(yè)設(shè)計(jì)答辯時(shí)老師常問(wèn)“登錄失敗時(shí)你怎么知道是密碼錯(cuò)還是用戶不存在” 如果回答“我看控制臺(tái)打印”顯得粗糙。換成Log4j2就能說(shuō)“我配置了日志級(jí)別ERROR日志記錄異常堆棧WARN日志標(biāo)記業(yè)務(wù)異常INFO日志追蹤關(guān)鍵流程所有日志按日期滾動(dòng)歸檔。”操作步驟下載log4j-api-2.20.0.jar和log4j-core-2.20.0.jar放入WEB-INF/lib/在src/下新建log4j2.xml?xml version1.0 encodingUTF-8? Configuration statusWARN Appenders RollingFile nameFileOut fileNamelogs/baby.log filePatternlogs/baby-%d{yyyy-MM-dd}-%i.log.gz PatternLayout pattern%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n/ Policies TimeBasedTriggeringPolicy / SizeBasedTriggeringPolicy size10 MB/ /Policies DefaultRolloverStrategy max30/ /RollingFile /Appenders Loggers Root levelinfo AppenderRef refFileOut/ /Root /Loggers /Configuration在LoginServlet.java中添加日志private static final Logger logger LogManager.getLogger(LoginServlet.class); // 登錄失敗時(shí) logger.warn(登錄失敗用戶名[{}]不存在或密碼錯(cuò)誤, username); // 登錄成功時(shí) logger.info(用戶[{}]登錄成功IP{}, username, request.getRemoteAddr());效果項(xiàng)目根目錄生成logs/baby.log內(nèi)容如14:22:31.882 [http-nio-8080-exec-2] INFO c.b.s.LoginServlet - 用戶[zhangsan]登錄成功IP127.0.0.1答辯時(shí)打開(kāi)日志文件老師一眼看到“INFO”“WARN”分級(jí)立刻感知工程規(guī)范性。5.2 為首頁(yè)輪播圖增加JSON接口暴露RESTful能力應(yīng)對(duì)“你會(huì)前端嗎”靈魂拷問(wèn)管理員后臺(tái)可上傳輪播圖但前臺(tái)JSP是靜態(tài)寫(xiě)死img srcstatic/img/banner1.jpg。升級(jí)為動(dòng)態(tài)新建BannerServlet.javadoGet()返回JSONprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { BannerDAO bannerDAO new BannerDAO(); ListBanner banners bannerDAO.findAll(); // 查詢status1的輪播圖 response.setContentType(application/json;charsetUTF-8); PrintWriter out response.getWriter(); out.print(new Gson().toJson(banners)); // 用Gson轉(zhuǎn)JSON out.flush(); }index.jsp中用JavaScript調(diào)用script fetch(${pageContext.request.contextPath}/banner) .then(response response.json()) .then(data { const carousel document.getElementById(carousel); data.forEach(banner { const item div classcarousel-itemimg src${banner.imageUrl} alt${banner.title}/div; carousel.innerHTML item; }); }); /script價(jià)值證明你理解前后端分離思想即使沒(méi)用Vue也用fetch調(diào)接口展示JSON數(shù)據(jù)交換能力為未來(lái)學(xué)Ajax打基礎(chǔ)接口URL/banner符合RESTful風(fēng)格比getBannerList.jsp更專(zhuān)業(yè)。5.3 用Druid連接池替換DBUtil從“能連”到“高并發(fā)”的認(rèn)知躍遷DBUtil.getConnection()每次創(chuàng)建新連接高并發(fā)時(shí)會(huì)耗盡MySQL連接數(shù)。換成Druid能監(jiān)控連接池狀態(tài)、自動(dòng)回收泄漏連接、防止SQL注入。操作WEB-INF/lib/加入druid-1.2.16.jarsrc/druid.propertiesdriverClassNamecom.mysql.cj.jdbc.Driver urljdbc:mysql://localhost:3306/baby?useUnicodetruecharacterEncodingutf8mb4 usernamebaby_user passwordbaby123 initialSize5 maxActive20 minIdle5 maxWait60000 timeBetweenEvictionRunsMillis60000 minEvictableIdleTimeMillis300000 validationQuerySELECT 1 testWhileIdletrue testOnBorrowfalse testOnReturnfalse poolPreparedStatementstrue maxPoolPreparedStatementPerConnectionSize20 filtersstat,wallDBUtil.java重構(gòu)為單例Druidpublic class DBUtil { private static DruidDataSource dataSource; static { Properties props new Properties(); props.load(DBUtil.class.getClassLoader().getResourceAsStream(druid.properties)); dataSource (DruidDataSource) DruidDataSourceFactory.createDataSource(props); } public static Connection getConnection() throws SQLException { return dataSource.getConnection(); } }答辯話術(shù)“我用了Druid連接池它能自動(dòng)管理數(shù)據(jù)庫(kù)連接比如設(shè)置maxActive20保證最多20個(gè)并發(fā)查詢超出的請(qǐng)求排隊(duì)等待避免MySQL因連接數(shù)爆滿而拒絕服務(wù)。還開(kāi)啟了wall防火墻過(guò)濾器能攔截SELECT * FROM user WHERE 11 OR 11本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月婷婷在线网站| 色综合色| 天天狠狠插| 国产操逼视频网站| 免费视频WWW在线观看网站| 婷婷五月伦理| Av狠狠色丁香婷| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 一起草av| 色婷婷五月天久久| 五月婷婷伊人久久| 六月激情婷婷色| www.wuyuetian啪啪| 色婷五月天| 精品一区二区三区木瓜| 五月婷婷开心爱| 九九超碰人人| 色色丁香色五月| 丁香六月婷婷综合| 亚洲综合在线视频| 99激情网| 伊人网大香| 色婷亚洲| 99er6热在线观看精品6| 色婷婷成人影片| 欧美日本国产欧美日本韩国99| 丁香性爱在线视频| 一二线视频 另类| 日韩啪啪视频| 996er热| 永久地址 色| 色五月婷婷中文字幕| 亚洲成片在线观看| 色开心五月丁香| 思思久久99热只有频精品66| 欧美色综合天天久久综合精品| 五月天婷综合| 香蕉国产2013| 五月 激情视频| 日韩欧美成人网| 色婷婷久久| 亚洲另类在线观看| 五月丁香亭亭| 九九99九九精品免费| 色色色色综合| 国产伦亲子伦亲子视频观看| 丰满人妻妇伦又伦精品国产 | 久久天堂精品| 色欲影香| 丁香婷婷久久 | 粉嫩AV久久一区二区三区| 97在线视频人妻九色| 免费视频99| 26UUU欧美| 亚州AV超碰人人操| 婷婷日日夜夜| 超碰国产在线观看| 久久婷婷五月天懂色| 超级碰碰91| 激情小说婷婷| 日本色色色| 成人AV在线网站| 丁香婷婷五月色成人网站| 日本九九网| 99热国产免费| 色色丁香| 色香蕉婷婷| 国产精品久久久久久喷浆| www.99视频| 色婷婷丁香五月| AA片在线观看视频在线播放 | 99激情网| 69er小视频| 婷婷六月激情丁香| 五月天色综合| 在线另类| 九九综合网| 五月婷婷色色网址| 精品久久婷婷五月天| 色婷婷色五月另类综合| 日本久久爱| 五月叮香啪| 婷婷五月天堂| 偷拍五月丁香| 亚洲av电影网站| 99久热在线精品99re6热| 丁香六月婷婷社区| 色色色777| 久久婷婷丁香五月一二三| 丁香五月激情性色郤| 综合久久人妻| 天天色天天日| 中文字幕欧美精品久久| 亚洲色婷婷| 丁香五月大片| 97色欧美| 香蕉曰比| 99热99ai| 99久在线精品99re8热| 丁香五月婷婷综合精品素人| 色婷婷在线视频| www.91五月| 日韩av网站在线观看| 99在线热| 啪啪小说五月天| 91大神操美女| 九九九激情网| 丁香激惜男女| 五月婷婷偷拍| 色六月 婷婷| 日本久草福利| 婷婷五月丁香久久| 色丁香五月婷婷| 九七色色六月丁香| 色很很96| 人人播| 婷婷伊人綜合中文字幕| 成年视频免费观看| 亚洲性色XXXXX| 久婷婷婷| 丁香五月婷婷激情中文| 91免费在线视频6| 可以直接看的av| 激情婷婷五月天| 伦乱人妻| 停停五月天激情网| 国产精品a无线| 久色激情| 婷婷久久色| 激情99| 久久色午夜在线导航| 操操操av| www.yw尤物| 久草婷| 涩综合在线| 超碰资源在线| 五月天激情图片网| 噜噜噜久久亚洲精品国产品91| 六月激情婷婷| 啪啪综合网| 狠狠干五月天| 狠狠色噜噜狠狠亚洲A∨| 梁铮版蜘蛛女在线观看| 天天做天天爱| 超碰成人免费| 久久伊人婷婷| 中文字幕日韩成人| 99九九热在线观看| 综合一区二区三区| 色五月五月婷婷| 亚洲AV成人无码精品| 亚洲第一色色色色| 亚洲亚洲人成综合网络 | www.99视频| 国产精产国品一二三在观看 | 无码成人播放器| 成人午夜无码视频| 99热最新| 六月丁香视频网站| 丁香六月婷婷| 99热思思在线观看| 色五月婷婷久久| 激情综合区| 五月天播播| www超碰com| 天天日夜夜夜操操操操| 丁香五月欧美婷婷综合| 无码色色| 九月大香蕉| 婷婷亚洲色| 四季8848精品成人免费网站| 日本在线噜噜| www久久久久久久| www色中色综合| 熟妇无码乱子成人精品| 亚洲天堂爱爱| 免费看欧美成人A片无码| 色 丁香婷婷| 91精品国产99久久久久久天美| 国产中文亚洲欧美日韩性交| 亚洲热久久| 婷婷五月天堂| 另类图片五月天激情| 婷婷免费无马| 激情宗合网激情五月天| 色婷婷亚洲| 九九碰九九爱97超碰| 三日本无码| 大香蕉伊人99| 激情网综合| 久久婷婷91| 99无码精品| 色yeye色综合| 色五月婷婷五月久久| 婷婷五月情| 九九热视频在线观看| 91人妻九色大屁股| 亚洲综合新99视频| 人人九色| 99资源人人| 综合天天综合| 影音先锋一区| 丁香五月色色婷| 级情九色| 五月丁香婷婷色色色| 婷婷色色亚洲| 99热日韩这里只有精品| 九九99九九99九九99视频网| 天天色凹凸| 丁香五月婷婷狠狠色| 色停停五月天| 色欧美一级| 乱码操操| 婷婷五月大香蕉| 亚洲妇女熟BBW| 日韩在线观看亚洲| 色色色色色网站| 五月丁香激情综合网| Caop在线| 色色色图| 亚洲人成播放网站| 婷婷基地五月色| 综合网色| 久久婷婷色综合| 巴基斯坦粉嫩无码视频| 丁香五月婷婷图片综合| 熟女五月天久久综合| 粉嫩av懂色av蜜臀av熟妇| 超碰色碰碰| 五月丁香美女| 狠狠穞A片一區二區三區| 亚洲视频操| 人人人人人人人草| 91久女| 99久久丝| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 九色无码| 亚洲色婷婷| 无语停婷丁香网| 加勒比色色| 777色色色| 老妇操B| 99re这里只有精品在线观看| 婷婷色色综合| 色婷婷五月综合网| 日韩精品VIP| 天天射天天射一道本日本社区| 丁香五月伊人| 激情五月综合网| 久碰婷婷视频| 九月丁香婷婷综合| 久久五月天婷婷| 97色婷婷在线观看| 猫咪伊人久久| 五月丁香六月成人| 亚洲中文字幕AV| 久久精品91视频| 色五月亚洲| 婷婷五月天丁香综合网| 色色射| 婷婷六月久久| 日韩三级高清无码| 91久久五月天| 激情久久久| 黄网免费看| a久久| 成人在线高清| 五月玖玖| 欧美丁香婷婷天天操| 这里只有精品视频99| 丁香五月综合婷婷| 激情五月婷婷| 影音先锋 91工厂| 超碰免费成人网站| 九九热99热| 卡视频1区2区| 亚洲色久| 日 日干 日日做| 婷婷五月花| 亚洲99视频| 97碰精品| 婷婷五月天综合久久| 丁香五月综合婷婷| 亚洲亚洲人成综合网络| 婷婷五月激情五月激情| 人妻久久婷婷| 丁香五月AV| 亚洲激情视频网| 97综合视频在线| 五月婷婷之综合激情| 久久婷婷夜| 五夜丁香| 激情开心五月婷婷| 五月综合激情图片| 中文字幕人妻在线| 精品综合久久久久久五月天| 欧美婷婷综合网| 97婷婷狠狠| 久久之人妻| 人妻丰满精品一区二区A片| 久久视频在线| 9色在线| 中文字幕精品无码一区二区| 人人草人人爱| 五月天婷亚洲天综合网综合| 99精品网址| 亚洲最大在线| 婷婷四色成人综合色视| 久热黄色| 国产,欧美,学生妹,视频| 性生活久久朋友人妻| 五月天丁香欧美激情| 五月婷婷欧美| 国产片色| 色婷婷久久| 这里只有精品96| 欧美激情综合色综合啪啪五月| 97人人操人人爽| 粉嫩AV久久一区二区三区| 人妻VideOssS人妻高清| 色情性爱视频网址| 丁香婷婷五月综合欧美另类| 亚洲色综合| 六月丁香五月激情网| 黄色91在线观看| 精品乱码久久久久| 婷婷狠狠干| 丁香五月天欧美成人| 韩国不卡AC视频| 激情五月天啪啪| 婷婷成人在线| 色婷婷9| 亚洲性爱AV在线| 久9热视频| 亚洲色无码A片一区二区麻豆| 日本 @ va 免费| 色狠狠综合| 99色热综合| 婷婷精品免费久久| 精品丁香五月天在线播放| 99精品视频在线6| www.综合久久| 大香蕉久久伊人网| 欧美日韩成人在线| 99热久草| 吉澤明步Av一區二區| WWW色五月天| 久久激情五月网| 日本一级黄色片。| 九月丁香| 亚洲精品视频在线| 开心五月激情网| 五月婷婷丁香五月亚洲色| 婷婷五月中文字幕| 亚洲免费成人电影AV| 色色激情五月天| 五月婷婷影| 欧美婷婷色五月| 操操操av| 久久99久久久久久| 99九九在线观看免费| 中文AV网站| 国产精品色| 久久久久久9| www激情五月天| 日本五月婷婷久久久六月丁香| 久久停停超碰| 92国产福利| 亚洲视频另类| 色婷婷精| 久久这里只有精品视频15 | 亚洲精品99| 丁香五月激情视频在线| 狠狠色狠狠鲁| 五月社区婷婷激情| 五月丁香va| 亚洲色色色色色色色色色| av在线免费网站| 五月天婷婷网站| 91919191919久久成人视频| 丁香婷婷网| 婷婷五月天AV在线| 五月丁香六月成人| 7777激情基地| 久久丁香五月综合六月激情红杏视频 | 日本欧美成人片AAAA| 婷婷精品在线| 中文无码婷婷| 欧美在线干| 九月婷婷色色| 色综合综合色| 99热这里只有精品2| 超碰在线观看99| 九九热自拍| www.97碰碰com| 婷婷97碰碰| 欧美大道不卡| 91精品久久久久久久| 激情中文在线| 五夜婷婷| 五月天婷婷久久| 人人播| 97福利视频| 超碰人人在线| 婷婷丁香五月综合| 日日干四虎| 国产69久久久欧美黑人A片| 人妻丰满精品一区二区A片| 五月天色色网站| 99色综合| W色综合| 九九婷婷激情综合网| 黄色av高清| 无码AV大香线蕉伊人| 日本熟女啪啪| 成人在线综合| www。五月天激情| 丁香六月婷婷综合激情欧美 | 玖玖综合色区在线观看| 97色视频网| 丁香五月婷婷欧美激情-中文天堂最新版在线观看 | 伊人玖玖网| 丁香五月六月婷婷综合| 亚洲九九夜夜| 少妇AB又爽又紧无码网站| 国精产品一区一区三区免费视频| 99天堂在线观看免费视频| 婷婷激情五月天桃花网| 成人丁香色| 九九久久精品| 五月丁香色婷婷基地| 久久人妻www| 色色色色色色色色色色色色色97| 亚洲综合激情五月久久| 精品一二三区久久AAA片| 碰碰碰97国产| 九色七七| 激情精品久久| 怡红院一二三| 色综合久久888| 九九热在线视频| 五月天丁香久久综合| 综合久久伊人| 性色播| A A色色| 五月天成人网在线观看| 天天干天天插| 亚洲天堂玖玖| 99热超碰| 九九精品视频在线观看| 日本99热| 97碰碰叉| 性一交一乱一交A片久久四色| 五月婷婷激情色情网| 狠狠干夜夜干| 久热超碰| 婷婷五月天丁香社区| 色网站99| 五月天狠狠色| 九九视频在线观看视频6| 欧美99视频| 狠狠干天天日| 综久久久| 亚洲人成网亚洲欧洲无码久久| 婷婷综合伊人丁香| 五月丁香黄色视频| 综合久久首页| 婷婷激情五月天在线视频| 婷婷性爱五月天| 九九这里都是精品| CAoub青青超碰| 99免费热在线精品| 丁香婷婷色情| 久久日婷婷| 久久只有精| 裸体美女丁香五月天。| 国产精品久久久爽爽爽麻豆色哟哟 | 国产成人av在线播放| 婷婷在线播放| 性色av大香综合| 婷婷五月激情丁香激情| 婷婷的99视频网站| 91热在线观看视频| 天天操天天操综合| 国产精品电影| 亚洲熟女乱色综合亚洲网站| 婷婷五月天亚洲综合网| 婷婷综合在线| 日本超碰在线| 干一干xxxx| 久久五月婷综合| 五月激情四射婷婷丁香| 九月激情网| 欧美久久久久久久久中文字幕| 婷婷久久夜| 婷婷久久网| 久久精品五月| 欧美色爱五月天| 激情五月婷婷综合| 99热这里在线精品| 久久五月激情| 亚洲AV无码成人精品区电影网| 激情合网婷婷| 狠狠狠狠狠干| 久久五月丁香| 97久久草草超级碰碰碰| 四季AV综合网| 天天爽,夜夜爽| 青青草大香| 久久久精品99亚洲综合| 九九黄色网| 亚洲xx网| 色五婷婷在线视频| 超碰色人妾| 天天热夜夜操| 操逼五月婷婷| 天天插天天日天天爽| 翔田千里aV中文字幕| AV在线中文| 国产AV不卡福利| 九月丁香五月婷婷| 婷婷丁香红五月91C| 日本va欧美va精品发布视频| 狠狠操天天干| 《战争与艾拉》完整版| 婷婷五月天成人| 婷婷五月丁香综合亚洲 | 婷婷五月av| 久久婷狠狠色| 色呦呦美女| 4399欧美另类视频| 五月丁香久久| 91疯狂操操操操| 99re6久热只有精品6在线直播| 五月婷婷之综合激情在线| 色情五月天A片| 婷婷五月激情欧美大胆视频| va亚洲中文在线| 996re热精品视频| www.99成人视频| 操逼视频网址| 婷婷免费视频| 国产精品色婷婷99久久精品| 99综合在线| 亚洲成人AV在线播放| 超碰免费人妻| 久久久久久久综合狠狠综合| 精品无码久久久久久久久| www.日日日.com| 国产肥白大熟妇BBBB视频| 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 色五月综合在线| 日韩人妻在线播放| 天天舔天天爽| 久月婷婷| 欧美精品XXXXBBBB| 亚洲噜色| 婷婷丁香五月天熟女丝袜| 超碰人人干| 9999三级片| 婷婷五月天色播| 色婷婷婷婷成人网| 亚洲成人AV电影网| 26UUU欧美激情一区二区| 五月丁香婷婷色色| 欧美槡BBBB槡BBB少妇| 天天爱天天做天天爽| 丁香五月天影院| 天天色天天日天天舔| 国产精品色婷婷99久久精品| 99热这里只有精品8| 婷婷综合五月天激情| 日本www免费九九| 日本五月天婷婷丁香| 色呦呦美女| 亚洲五月婷婷| 丁香婷婷色五月合集| 久re在线| 五月花激情| 激情五月婷婷在线区| 丁香五月婷婷激情蜜桃| 五月婷婷影院| 亚洲XX日本| 4399欧美另类视频| 激情丁香五月| 婷婷五月丁香伊人| 丁香婷婷色五月| 日本三级成人秘书精品片| 五月叮香啪| 久久丁香| 亚洲视频码| 热99这就是精品视频| 亭亭五月激情亚洲在线| 色婷婷888| 强辱丰满人妻HD中文字幕| 婷婷基地成人五月天| 99碰网站| 亚洲99手机免费看视频| 久久免费操| 8090在线影视少妇| 久久3p| 五月伊人视频在线看| 六月丁香婷婷色狠狠久久| 99精品在线观看| 激情五月色婷婷| caobi四区| 99九精品| 色五月亚洲| 性一交一乱一交A片久久四色| 婷婷丁香五月天在线| 久久久com| 大鸡巴伊人网| 婷婷久久综合久| 久久久人妻| 人妻在线中文字幕久久| 超碰超碰在线| 九九热99久久99| 九九亚洲| 久久综合激情| 思思久久99| 婷婷大美在线| 免费黄色片子| 大香蕉 伊人夜| 99超超碰| 九九碰九九爱97超碰| 丁香婷婷色情| 岛国AV网站| 婷婷五月 丁香六月| 国产精品操| 日日操夜夜操中国无码| 欧美成人一区二区三区在线视频 | 五婷婷综合网| 色色五月天激情| 超碰99资源站| 天天摸色吧天天摸色吧| 男人综合网| 色综合99| 五月婷婷熟女| 久久久久98| 激情婷婷五月社区| 婷婷色影音天| CHINESE熟女老女人HD视频| 色九月婷婷综合| 色色COm| 五月天久久www| 青青草搞屄视频网站| 91久久1118| 91嫩草久久| 奇米影视在线视频| 1级欧美日韩| 拍真实国产伦偷精品| 99热网站| 婷婷色色五月| 色五月首页| 五月婷婷啪啪啪| 五月天亚洲综合网| 丁香五月婷久久| 五月婷色啪| 婷婷天天综合| 逼逼AV| 激情五月综亚网| 888精品福利地址| 怡红院 久久| 久久ww| 日本片日本片祼观看网站在线看中文版网页在线看 | aaaaaa片| 99热只有精品在线播放| 五月综合亚洲色| 99久视频| 亚洲艹网| 免费日韩99| 色色色99韩| 亚州欧美国产久精国产99综合视频| 另类亚洲2| 碰碰91| 婷婷亚洲天堂| 亚洲国产精品成人免费一区久久久在线观看AAAA | 国产99视频永久免费| 激情开心五月婷婷| 日操五月婷| 久久奄也去色色网站| 99热99免费| 丁香五月天五码婷婷| 色婷婷五月亚洲| 日日肏天天操| 色播五月| 色噜噜狠狠色综无码久久合欧美| 在线观看亚洲视频影院| 秋霞性爱AV| 久热免费| 国精产品一区一区三区免费视频| 久久丁香综合精品综合| 国产4P视频精品五区| 色婷婷a v| 大香网伊人久久综合| 丁香五月网络网络| 日韩按摩二区| 深爱激情综合网| 伊人网碰碰| 天天日夜夜爽| 久久se 综合网 | 超碰在线超碰| 久久这里只有精品8| 丁香六月啪啪| 久热99狠| 大香蕉大香蕉在线影院| 五月天啪啪| 五月青青草综合| 天天天天色天天天天天干| 激情五月综合| 国产在这里只有精品| 少妇性BBB搡BBB爽爽爽视頻| 色婷婷色丁香色欲av| 六月久久婷婷| 精品一区二区三区四区五区六区介绍 | 草榴视频网| 综合色图区| 色狠狠综合网| 婷婷五月色激情欧美激情| 婷婷伊人| 99热亚洲只有色| 久久天堂精品| 丁香五月在线伊人| 噜噜噜久久亚洲精品国产品91| 丁香五月AV| 九九热精品视频在线观看| 最新无码专区| www.91九色| 丁香色啪综合| 久久精品人妻| 五月婷丁香| 欧美婷婷综合网| 永久的网站AAAA | 亚洲视频操| 亚洲婷婷开心五月| 99色综合| 国产婷婷色综合AV蜜臀AV| 欧美婷婷丁香五月| 久久老码第一| 亚洲色五月天| 亚洲精品又粗又大又爽A片| 久久久久久久久久婷婷| 草操AV在线| www.天天干| 久久婷婷五月天| 国产精品18久久久| 五月婷婷导航| 婷婷六月插屄激情| 在线看片av| 国产一区二区av免费| 婷婷五月电影| www国产亚洲色婷婷com| se99视频| 久久大香免费| 日韩av干| 99这里只有| 亚洲欧美日韩另类| 玖玖在线资源视频| 九九精品自拍| 9久操| 丁香六月色情| 欧美一级色| 99在线爽| www.思思99热| 丁香五月欧美| 99热热这里只精品996小说| 思思w99| 婷婷综合五月天| 99久久精品国产色欲| 日本AAAAAAAAAAAAAA片| 99色在线视频| 超碰人人操在线| 久久人妻久久| 亚洲深喉AV| 9九热视频| 男人的天堂五月丁香| 天天肏视奸| 五月丁香六月欧美综合| www.99视频| 日韩av网站在线观看| 狠狠狠狠狠操| 蜜桃人妻无码AV天堂三区| 热久久91| 五月天激情网站| 1024久婷| 天天xxxxxx天天日| 极品人妻VIDEOSSS人妻| 激情五月天婷婷免费观看| AV在线大香蕉| 91久久综合亚洲噜噜成人在线| 国产婷婷色综合AV蜜臀AV| 97很鲁在线视频| 六月丁香啪| 五月婷婷天| 91狠狠色色丁香婷婷综合久久| 丁香五月亚综合图片| 超碰日韩成人| 激情丁香五月激情婷婷| 免费看欧美成人A片无码| 亚洲婷婷视频| 色五月激情婷婷| 五月丁香啪啪激情| 九九九色综合| 五月丁香 啪啪| 在线观看av网站| 夜色综合网| 丁香五月影院| 久久9999| 婷婷色在线视频| 久婷婷五月综合欧美| 天天影院色| 亚洲视频无| 五月婷婷视频在线观看| 欧美日韩国产日本精品四虎网网站物 | 色五月 五月婷婷| 亚洲AV无码成人电影| 五月婷婷开心六月激情小说| 婷婷五月天99综合网站| 天天色天天爱天天爽| 九九热123| 五月天婷婷色小说| 久久44| 激情五月色在线播放| www.韩日视频| 丁香五月乱中文字幕| 伊人喵咪a V| 婷婷.com| 六月激情丁香一道本7777| 成人va视频| 手机旧版看人妻1025| 五月丁香婷婷久久| 色色是色N一| 婷婷五月综合激情| 六月丁香五月激情网| 五月婷婷 婷婷五月 一区二区 久久久 | 色婷婷久久综| 新97人人上人人| 99综合视频| 色婷婷电影| 色青青视频| 十二区无码| 99久久网站| 99视频35精品视频在线观看| 性爱综合网| 丁香六月婷婷一区| 国产偷人爽久久久久久老妇APP | 狠狠干激情五月| 色综合99无码| 婷婷网五月天| 六月丁香啪啪啪| 丁香九月激情| 婷婷五月天成人影片| 五月天大香蕉AV| 狠狠人妻色综合| 思思热闹这里只有精品| 亚洲精品无AMM毛片| 丁香五月欧美激情| 4438成人电影| 人人操AV| 婷婷五月AV| 五月叮香啪| 五月婷婷中文字幕| 天天cha成人综合网| 另类图片五月天激情| 综合视频久久| 婷婷丁香六月影视| 久久久噜噜噜操操操| 99热最新精品| 思思99精品视频在线观看| 久久成人亚洲欧美电影| 五月丁香色综合| 第2色五月婷| 天堂网亚洲色图| 国产操碰| 欧美97p| 久久hd| 99超级碰免费视频| 99热.com| 国产韩日亚洲美州欧亚综合在线| 蜜乳av一级av| 99热精品观看| 人色五月天婷婷| 婷婷久久18| 婷婷五月天成人| 婷婷五月亚洲一本在线丁香| 操人91| 激情98色婷婷五| 丁香蜜臀黄色婷婷五月天| 狠狠色婷婷丁香六月| 玖玖爱导航| 成AV人片一区二区三区久久| www婷婷| 激情综合网五月天天| 美国天天操无码| 色婷婷av在线观看| 能看的av| 99热这里精| 五月婷婷色情| www.夜夜爱.com| 久草热在线视频| 五月天六月色| 国产精品-91JQ就要激情网91JQ6.91JQ27.CASA:16888 | 开心五月婷婷| 五月丁香六月天| 色色婷五月天| 色综合久久88色综合天天99| 五月婷婷香蕉| 亚洲国产精品VA在线看黑人| 五月天激情国产综合婷婷| 婷婷成人在线| 久久五月激情| 五月天丁香看婷婷| 成人综合网站| 伊人激情综合网| 人人爱人人添| 免费精品66| caop在线| HD久久精品视频| 日本精品人妻无码77777| 久久久久婷婷| 婷婷久久色| 五月天婷婷色小说| 人人色人人摸人人看| 日本免费91| 丁香五月婷婷五月基地| 99国产精品久久久久久久久久久| 9|无码久久久久久| 丁香桃色网| 人妻尝试久久久久久久久久久久| 99热99色| 久99热在线观看| 夜色.cnm| 五月婷婷综合在线亚洲视频| 丁香婷婷色五月激情综合| 67194中文字幕| 婷婷六月久久综合导航| 婷婷五月天伊人网在线观看视频| 丁香婷婷久久| 欧美五月婷婷| www.综合久久.com| 99婷婷色| 90色免费视频| 日日影院 | 久久婷婷亚洲| 五月丁香亚洲综合| 91九色丨国产丨爆乳| 一本色道久久综合狠狠躁小说| www.色擼擼.com| wwwxxx五月婷婷小说| 久久亚洲色导航| 无码九九| 婷婷五月色播网| 另类视频综合| 日本不卡中文字幕| 色噜噜狠狠色综合网| 啪色综合| 六月丁香婷婷大香蕉| 亚洲免费成人电影AV| 久久综合婷婷激情| 综合天堂AV久久久久久久| 蜜桃五月天| 欧美成人精品三区综合A片| 九九热精品| 五月激情小说网| 97色色色色色| 丁香色婷婷| 色色色图| 亚洲色另类| 婷婷五月天影院| 97干在线视频| 日日日日日| 51精品国自产在线| 丰满少妇乱A片无码| 八戒青柠影视剧在线观看| 国产精品99久久久久久久女警| 这里只有精品久久| 激情又色又爽又黄的A片 | 少妇AB又爽又紧无码网站| 99热这里有精品| 极品人妻VIDEOSSS人妻| 亚洲偷| AV亚洲在线| 丁香久久激情俄| 黄页免费一级视频懂色| 激情五月天99色| 久久婷网| 天天爽人人综合免费7799| 天天五月丁香五月| 久久6这里只有精品| 亚洲欧洲自拍图片专区五月天| 五月天婷婷丁香蜜桃91| 五月丁香色婷婷综合| 五月丁香六月激情综合欧美| 婷婷五月激情丁香| 伊人玖玖网| 91色久| 91啪啪| 五月天婷婷婷| 久久色吧| 五月综合激情| 久久婷婷成人视频| 中文字幕簧片| 婷婷五月天BBw| 99热这里只有精品中文字幕| 九九re精品视频在线观看 | 色播五月丁香婷婷| 武汉美女啪啪视频免费一级片| 天天干天天色综合| 大香蕉久久久久| 91操人视频| 99色热综合| 色香久久| 天天插天天插天天操| 伊人超碰| 97热这里只有精品| 大香蕉伊人久久| 无码日本精品XXXXXXXXX | 天天操天天干天天射| 在线超碰91| 九九色综合| 甈你aaaaa| 天天操天天插| 在线播放成人网站| 色五月噜噜| 五月婷婷啪啪网| 爱草视频在线| 天天日天天爽| 九九热免费视频| 婷婷五月综合社区在线| 综合网啪啪| 色婷婷伦理| 久久99热这里只频精品6学生| 婷婷五月天av| 婷婷日本在线| 99超级碰免费视频| 一区二区三区四区无码| 91狠狠综合网| www.色五月| 99热在线资源| 深爱激情九九五月天| 99精品综合视频| 天天做天天爱| 高清国产AV| 天天摸天天舔天天爽| 天天精品视频免费观看| 五月天激情婷婷| 色婷婷AV久久| 色五月婷婷中文字幕在线观看 | 啪到高潮激情丁香五月| 婷婷色在线观看| 九一娱乐在线观看视频| 色~性~乱~伦~噜| 伊人深爱综合| 深爱激情丁香| 久久五月天激情婷婷| 五月婷婷伦理| 五月婷婷综合在线| 99噜噜噜在线播放| 婷婷黄色| 丁香五月欧美激情| 亚洲欧美婷婷五月色综合| 久操人| 国产五月天激情小说| 五月天久久综合| 丁香婷婷五月色综合| 久操大香蕉| 婷婷五月亚洲一本在线丁香| 91狠狠色丁香婷婷综合久久精品| 中文久久婷婷| 五月婷六月丁| 久久免费精彩视频| 热热99爱爱| 五月天婷婷伊人| 色综合激情| 99热99在线精品| 六月色五月天天婷婷| 亚洲精品无码久久| 任你搞在线观看视频| 婷婷深爱色五月| 99热亚洲精品| 五月亭亭欧美女人| 深爱激情av| 天天操天天插| 热久国产| 激情五月婷婷五月丁香五月开心五月| 色婷婷成人做爰A片免费看网站| 九洲一级A片| www.com五月天| 国产精产国品一二三在观看| 婷婷六月色| 久久WW| 9久操| 开心五月天激情| 成人做爰高潮A片免费视频| 秋霞成人毛片一级A片| 丁香五月成人av| 婷婷色色网站| 国产精品五月丁香| 开心激情综合| 九月丁香婷婷综合| 六月婷婷综合| 99在线一区| 丁香五月婷婷色| 婷婷D区| 综合久色五月| 色色色网站| 色综合久久天天综合网| 丁香 亚洲 久久| 天天透天天干| 久久人妻视步| 五月久久丁香| 密乳视频| 三人荫蒂添的好舒服A片| 五月天激情综合网站| 婷婷久久五月天| 日本精品99网站| 五月婷婷色播| 久久精品夜色噜噜亚洲a∨| 五月天亭亭俺也| 伊人大香久久| 人人草人| 五月婷综合| 视频色色色色色色| 拍色综合| 丁香五月另类小说| 麻豆123区| 天天干狠狠| 综合网网欲色| 婷婷丁香18| 婷婷丁香五月激情密臀av| 青青草成人网| 久久久久久久久久久44| 九九视频在线观看| 99伊人婷婷在线| 99成人在线观看| 啪色综合| 狠狠狠狠狠狠色| 精品成人在线观看| 91操熟女| 久久99网站| 日日夜夜狠狠| 99er免费在线观看| 白人荫道BBWBBB大荫道| 综合激情五月丁香| 超碰只有精品在线| 精品色色色| 五月婷综合| 六月丁香网| 人人97碰| 色色色热热热| 激情综合网,婷婷| 婷婷色影音天| 99视频只有这里精品| 天天网曰日曰夜夜综合永久免费| 天天骑天天操| 激情婷婷九月| 五月丁香啪啪激情| 精品国产va久久久久| 亚洲精品白浆高清久久久久久| 色五月视频无码播放| 五月婷婷黄网站大全| 欧美这里只有精品| 六月婷婷狠狠做| 亚洲色99| 99九九在线视频| 狠狠干婷婷| 99热 免费| 色九四色| 日日操夜夜撸| 九九香蕉网| 内射爽无广熟女亚洲| 热这里| 99精品网址| 久久多色| 九热在线这里有精品6| 狠狠操狠狠色| 天天操婷婷| 亚洲av网站| 情欲禁地| 99热在线只有精品| 乱码操操| 成 人片 黄 色 大 片| 日本五月天一页| 九九综合色综合| 欧美操人| VfJxEwPH| 色五月激情| 青草视频在线观看视频| 九九热国产| 色色色国产| AA片在线观看视频在线播放| 色婷婷成人| 五夜婷婷| 95精品区一区二| 五月丁香激情综合啪啪| 九九热九九| 91碰操| 色婷婷狠狠| 9999热这里只有精品| 欧洲S级在线观看| 激情五月天网| 久久激情五月婷婷| www。五月天激情| 国内自拍1区| 激情丁香婷婷| 五月天婷婷影院影院| 操九色| 精品亚洲国产成AV人片传媒| 五月天成人免费视频| 伦乱美欧| 色婷亚洲| 国产肥白大熟妇BBBB视频| 五月婷婷六月丁香在线| 就要去操亚洲成人精品五月天丁香婷婷| 五月四色激情| 久久精品99| 五月丁香婷婷激情澎湃四射| 久久久中文| 日本天堂网站99| 99视频只有精品| 26uuu最新地址| 在线区区区| 亚洲一级AV在线免费播放| 99久在线精品99re8| 五月天色丁香| 久久国产性爱A V| 色在线99| 玖玖婷婷色欲| 色色色色色色网站| 日日噜狠狠色| 久热2025无码| 婷婷九月综合| 综合另类激情| 99无码视频| 五月天激情久久| 色婷婷在线视频综合| 久久这里这里有精品免费视频| 无码动漫AV| 777精品久无码人妻蜜桃| 丁香五月婷婷亚洲综合精品| 丁香婷婷五月基地| 99热在线里有精品| 99大香蕉| 天天综合色99| 性生生活大片又黄又| 97人人射| 激情五月婷| 婷婷五月色丁香在线看| 久热这里只有国产| 婷婷狠狠18禁久久| 99久久婷婷国产综合亚洲| 人妻久久久| 丁香五月大香蕉| 亚洲人人操| 久热这里只有精品视频免费观看| 亚洲综合色网站| 久久久999精品| 婷婷五月天综合AV| 欧美日韩一区二区三区四区| 偷偷与邻居做爰完整视频| 亚洲五月婷婷| 久色激情| 日日操日日撸| 欧美草久久五月天91| 激情合网婷婷| 99这里有精品免费|