亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

基于JSP+Servlet+MySQL的智能小區(qū)物業(yè)管理系統(tǒng)實(shí)戰(zhàn)解析

基于JSP+Servlet+MySQL的智能小區(qū)物業(yè)管理系統(tǒng)實(shí)戰(zhàn)解析 很多人做JavaWeb課程設(shè)計(jì)或畢業(yè)設(shè)計(jì)時(shí)第一反應(yīng)就是去網(wǎng)上找個(gè)Spring Boot Vue的模板改改數(shù)據(jù)庫(kù)交差完事。但真到了答辯或復(fù)試一問(wèn)事務(wù)怎么控制的一問(wèn)Servlet生命周期直接卡殼。我前陣子帶著一個(gè)學(xué)弟把這個(gè)“基于JavaWeb和MySQL的JSPServlet智能小區(qū)物業(yè)管理系統(tǒng)”從頭到尾完整擼了一遍用的就是最傳統(tǒng)的JSP Servlet Bootstrap JavaScript MySQL那套組合。做完之后我最大的感受是這個(gè)項(xiàng)目看起來(lái)“老”但它恰恰是理解JavaWeb底層運(yùn)行邏輯的最佳載體。這套系統(tǒng)不是那種花里胡哨的演示項(xiàng)目它覆蓋了小區(qū)物業(yè)管理的真實(shí)業(yè)務(wù)場(chǎng)景業(yè)主信息維護(hù)、房屋信息綁定、物業(yè)費(fèi)賬單生成與繳費(fèi)、報(bào)修工單流轉(zhuǎn)、投訴建議處理、公告發(fā)布以及最關(guān)鍵的登錄認(rèn)證和權(quán)限控制。技術(shù)棧雖然基礎(chǔ)但五臟俱全。如果你是正在準(zhǔn)備JavaWeb期末項(xiàng)目、畢業(yè)設(shè)計(jì)或者想徹底搞懂Servlet JSP MySQL之間到底怎么協(xié)作的這篇內(nèi)容會(huì)從需求拆解、數(shù)據(jù)庫(kù)設(shè)計(jì)、功能實(shí)現(xiàn)到部署踩坑按我實(shí)際動(dòng)手的思路給你完整過(guò)一遍。很多細(xì)節(jié)是網(wǎng)上教程不會(huì)寫的。1. 需求拆解與整體功能設(shè)計(jì)1.1 角色權(quán)限是這類系統(tǒng)的樞紐我以為最開(kāi)始考慮的不應(yīng)該是“要建幾張表”而是系統(tǒng)給誰(shuí)用。小區(qū)物業(yè)系統(tǒng)表面上功能很多但剝開(kāi)看其實(shí)只有三類人拿著鑰匙的業(yè)主、干活的物業(yè)人員、管全局的超級(jí)管理員。業(yè)主端注冊(cè)登錄、綁定房屋、查看自己的賬單、在線繳費(fèi)、提交報(bào)修、投訴、看公告。物業(yè)端處理業(yè)主提交的報(bào)修單、回復(fù)投訴、發(fā)布公告、維護(hù)業(yè)主和房屋信息。管理員端人員管理、角色分配、查看全局?jǐn)?shù)據(jù)比如繳費(fèi)率、報(bào)修量、系統(tǒng)參數(shù)配置。權(quán)限控制如果從一開(kāi)始沒(méi)想清楚后面寫Servlet過(guò)濾器的時(shí)候會(huì)非常痛苦。這套系統(tǒng)我采用的是基于“角色標(biāo)識(shí)”的Session控制方案用戶登錄成功后把 user 對(duì)象和 roleId 塞進(jìn) Session后續(xù)每個(gè)需要權(quán)限的Servlet或JSP頁(yè)面都先過(guò)一遍過(guò)濾器。權(quán)限控制的核心不是“頁(yè)面隱藏”而是“后端攔截”。很多新手以為只要在頁(yè)面上根據(jù)角色隱藏按鈕就夠了實(shí)際上直接訪問(wèn)Servlet URL是完全繞開(kāi)頁(yè)面的。所以我在項(xiàng)目里寫了一個(gè)全局Filter專門攔截所有 /admin/* 和 /property/* 路徑校驗(yàn)Session里有沒(méi)有對(duì)應(yīng)角色的標(biāo)記。1.2 功能模塊劃分要有邊界按業(yè)務(wù)邊界把功能切成四塊后面寫代碼、分工才不亂基礎(chǔ)信息管理樓棟、單元、房屋、業(yè)主檔案這是整個(gè)系統(tǒng)運(yùn)行的地基。收費(fèi)管理賬單生成、繳費(fèi)登記、欠費(fèi)查詢、收費(fèi)統(tǒng)計(jì)這個(gè)模塊最容易暴露SQL和事務(wù)設(shè)計(jì)問(wèn)題。工單管理報(bào)修單創(chuàng)建、派單、處理進(jìn)度回填、投訴建議處理。運(yùn)營(yíng)支撐系統(tǒng)公告、管理員賬號(hào)管理、登錄日志。邊界劃分的意義在于它是一個(gè)小程序轉(zhuǎn)型為大系統(tǒng)必經(jīng)之路。如果在JSPServlet階段你就有了模塊化意識(shí)以后理解微服務(wù)里的服務(wù)劃分會(huì)自然得多。2. 技術(shù)選型為什么還是JSP Servlet2.1 不是非要守舊而是“裸奔”一次才能理解框架現(xiàn)在做JavaWeb項(xiàng)目絕大多數(shù)教程開(kāi)場(chǎng)就上Spring Boot。Spring Boot太方便了一個(gè)注解搞定請(qǐng)求映射一個(gè)注解搞定依賴注入。但代價(jià)是你幾乎看不到HTTP請(qǐng)求從Tomcat進(jìn)來(lái)之后是如何一步一步走到數(shù)據(jù)庫(kù)再返回頁(yè)面的。這套系統(tǒng)堅(jiān)持用JSP Servlet目的就是把這個(gè)鏈路完完整整暴露出來(lái)。我讓學(xué)弟自己寫Servlet類自己配置 web.xml自己封裝request.setAttribute和請(qǐng)求轉(zhuǎn)發(fā)。他做完之后說(shuō)了一句讓我印象很深的話“原來(lái)Spring MVC里那些Controller本質(zhì)上就是一個(gè)Servlet殼子?!边@個(gè)理解很值錢。你面試時(shí)如果能把 Servlet 生命周期init - service - destroy、請(qǐng)求到響應(yīng)的流轉(zhuǎn)、JSP本質(zhì)是Servlet這三個(gè)點(diǎn)接上就已經(jīng)碾壓了一堆只會(huì)背框架注解的候選人。2.2 前端增強(qiáng)Bootstrap負(fù)責(zé)“能看”JavaScript負(fù)責(zé)“好用”這套系統(tǒng)的頁(yè)面層我采用的是JSP負(fù)責(zé)動(dòng)態(tài)渲染后端數(shù)據(jù)Bootstrap負(fù)責(zé)布柵格和響應(yīng)式布局JavaScript負(fù)責(zé)交互校驗(yàn)和異步請(qǐng)求。Bootstrap在2024年之后雖然熱度不如Tailwind CSS但在課程設(shè)計(jì)、后臺(tái)管理系統(tǒng)這種傳統(tǒng)場(chǎng)景下它依然是最穩(wěn)的選擇。因?yàn)樗幸惶壮墒斓慕M件庫(kù)和柵格系統(tǒng)你不用自己寫CSS只需要把骨架搭好抄Bootstrap官方文檔里的組件結(jié)構(gòu)頁(yè)面就不會(huì)丑到哪里去。JavaScript在這套里的角色遠(yuǎn)不止是表單校驗(yàn)。重點(diǎn)用在了以下幾個(gè)地方前后端聯(lián)調(diào)的Ajax請(qǐng)求特別是繳費(fèi)模塊和報(bào)修狀態(tài)輪詢。前端二次校驗(yàn)比如手機(jī)號(hào)格式、金額合法性、必填項(xiàng)控制。操作確認(rèn)彈窗比如刪除業(yè)主前的二次確認(rèn)。動(dòng)態(tài)渲染聯(lián)動(dòng)下拉框比如選擇了樓棟之后單元下拉框要自動(dòng)刷新。值得多說(shuō)一句JavaScript 判斷數(shù)據(jù)類型是這門基本功在寫表單校驗(yàn)時(shí)天天用。你可以用 typeof 判斷原始類型用 Object.prototype.toString.call() 判斷引用類型。例如判斷某個(gè)值到底是不是數(shù)組Array.isArray 在部分兼容場(chǎng)景下不夠保險(xiǎn)最穩(wěn)妥的寫法是function isArray(value) { return Object.prototype.toString.call(value) [object Array]; }2.3 JDK Tomcat MySQL版本組合我建議的版本組合是組件版本推薦理由JDK1.8 或 8u202兼容性最廣教程多Tomcat99%適配Tomcat9.xServlet 4.0規(guī)范支持Java EE 8MySQL5.7 或 8.05.7部署簡(jiǎn)單8.0功能新IDEA2023.3及以上內(nèi)置Tomcat集成配置順手如果你在Windows 10上折騰MySQL安裝最忌諱的是下載8.x解壓版卻忘了初始化data目錄。8.x解壓版必須執(zhí)行 mysqld --initialize-insecure 才能生成root空密碼實(shí)例5.7用msi安裝包會(huì)更省心。我個(gè)人建議初學(xué)做課程設(shè)計(jì)直接用5.7的msi版一路Next設(shè)置好root密碼就行少踩很多坑。3. 數(shù)據(jù)庫(kù)設(shè)計(jì)表結(jié)構(gòu)決定系統(tǒng)上限3.1 核心表清單及關(guān)系物業(yè)系統(tǒng)的數(shù)據(jù)模型并不復(fù)雜關(guān)鍵是理清幾個(gè)核心實(shí)體的外鍵關(guān)系。我設(shè)計(jì)的核心表如下我知道你急但你先別急著建表先看關(guān)系設(shè)計(jì)表名用途核心字段tb_user所有登錄賬號(hào)id, username, password, role_id, phonetb_owner業(yè)主信息id, user_id, name, id_card, phone, building_id, house_idtb_building樓棟id, name, address, areatb_house房屋id, building_id, unit, floor, room_num, area, statustb_fee_item收費(fèi)標(biāo)準(zhǔn)id, name, unit_price, fee_typetb_fee_bill物業(yè)繳費(fèi)賬單id, owner_id, item_id, amount, status, deadlinetb_repair報(bào)修工單id, owner_id, repair_type, detail, img, status, create_timetb_complaint投訴建議id, owner_id, content, reply, status, create_timetb_notice公告id, title, content, admin_id, publish_time外鍵關(guān)系說(shuō)白了就是一句話業(yè)主指向用戶和房屋賬單和工單都指向業(yè)主公告指向管理員。3.2 關(guān)鍵設(shè)計(jì)細(xì)節(jié)賬單生成邏輯物業(yè)繳費(fèi)不能是手動(dòng)一條一條錄的那樣會(huì)累死。我的做法是做一個(gè)“自動(dòng)生成月度賬單”的定時(shí)任務(wù)思路每月1號(hào)掃描 tb_owner 表的房屋面積結(jié)合收費(fèi)標(biāo)準(zhǔn)表里的單價(jià)自動(dòng)計(jì)算物業(yè)費(fèi)并插入 tb_fee_bill 表。對(duì)應(yīng)的核心SQL邏輯大致如下-- 把關(guān)聯(lián)查詢出來(lái)的結(jié)果插入賬單表這是典型的INSERT ... SELECT寫法 INSERT INTO tb_fee_bill (owner_id, item_id, amount, status, deadline, create_time) SELECT o.id, fi.id, ROUND(h.area * fi.unit_price, 2), unpaid, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), NOW() FROM tb_owner o JOIN tb_house h ON o.house_id h.id JOIN tb_fee_item fi ON fi.fee_type property WHERE o.status active;這種寫法的好處是把業(yè)務(wù)規(guī)則下沉到SQL層而不是在Java代碼里循環(huán)幾百次再一條條insert那性能會(huì)很差。這張賬單表的值班就是“對(duì)賬依據(jù)”業(yè)主繳費(fèi)后狀態(tài)改為 paid同時(shí)記錄繳費(fèi)時(shí)間。3.3 事務(wù)處理不能忘繳費(fèi)不是單純update一條賬單狀態(tài)它往往伴隨資金流水表的插入。這兩條SQL必須在一個(gè)事務(wù)里。自己在Servlet里控制事務(wù)的寫法比較裸但能讓你看清本質(zhì)Connection conn null; try { conn DBUtils.getConnection(); conn.setAutoCommit(false); // 關(guān)閉自動(dòng)提交開(kāi)啟事務(wù) // 更新賬單狀態(tài)為已繳 String sql1 UPDATE tb_fee_bill SET statuspaid, pay_timeNOW() WHERE id?; PreparedStatement ps1 conn.prepareStatement(sql1); ps1.setInt(1, billId); ps1.executeUpdate(); // 插入收支流水 String sql2 INSERT INTO tb_pay_log (bill_id, amount, pay_type, create_time) VALUES (?, ?, alipay, NOW()); PreparedStatement ps2 conn.prepareStatement(sql2); ps2.setInt(1, billId); ps2.setBigDecimal(2, amount); ps2.executeUpdate(); conn.commit(); // 都成功才提交 } catch (Exception e) { conn.rollback(); // 任何異常整體回滾 e.printStackTrace(); } finally { if (conn ! null) conn.close(); }MySQL默認(rèn)存儲(chǔ)引擎在5.5之后就是InnoDB支持事務(wù)。但如果你在建表的時(shí)候沒(méi)注意把表定義成了MyISAM那事務(wù)是不生效的。建表語(yǔ)句一定要帶 ENGINEInnoDB這是排查“為什么回滾無(wú)效”的第一根線。4. 項(xiàng)目骨架搭建從零擼一個(gè)JavaWeb工程的步驟4.1 IDEA創(chuàng)建Web工程的正確姿勢(shì)如果你用IDEA 2023不要選錯(cuò)項(xiàng)目類型。正確路徑是File - New Project - Jakarta EE然后勾選 Web ApplicationApplication Server 選你已經(jīng)配置好的Tomcat。如果你建出來(lái)發(fā)現(xiàn)沒(méi)有WEB-INF目錄直接右鍵項(xiàng)目 - Add Framework Support - 勾選 Web Application。這個(gè)步驟很基礎(chǔ)但我見(jiàn)過(guò)太多人在這里翻車。翻車表現(xiàn)是明明建了項(xiàng)目運(yùn)行的時(shí)候卻提示“Artifact未部署”或“404”。原因就是IDEA只在項(xiàng)目文件里生成了一個(gè)空殼沒(méi)有生成Web目錄結(jié)構(gòu)。你需要在 web/WEB-INF 下自己補(bǔ) web.xmlTomcat 9 不強(qiáng)制要web.xml但學(xué)了Servlet規(guī)范手動(dòng)配置一次對(duì)理解URL映射會(huì)非常直觀。4.2 web.xml與Servlet注解的取舍當(dāng)前Servlet 3.0 支持用 WebServlet 注解代替 web.xml 配置更簡(jiǎn)潔。但作為學(xué)習(xí)向的項(xiàng)目我還是建議兩個(gè)都用一用。注解方式寫起來(lái)是這樣WebServlet(/login) public class LoginServlet extends HttpServlet { Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 處理登錄邏輯 } }用web.xml配置的方式更傳統(tǒng)但是能把“Servlet類 URL映射”這層關(guān)系展示得極為清楚。其實(shí)項(xiàng)目里真正要注意的是一個(gè)Servlet只負(fù)責(zé)一類請(qǐng)求不要寫一個(gè)超級(jí)Servlet然后url-pattern配成 /*那樣后期維護(hù)會(huì)非常痛苦。4.3 分層思想即使沒(méi)有框架代碼也要分包這套系統(tǒng)即便沒(méi)有用到Spring我也強(qiáng)行把它分成四個(gè)包entity實(shí)體類對(duì)應(yīng)數(shù)據(jù)庫(kù)表。dao數(shù)據(jù)訪問(wèn)層只負(fù)責(zé)SQL增刪改查。service業(yè)務(wù)邏輯層處理事務(wù)、判斷、計(jì)算。servlet控制層接收請(qǐng)求調(diào)用service轉(zhuǎn)發(fā)結(jié)果。分層的目的不是多余而是讓你在項(xiàng)目里面對(duì)一個(gè)“修改報(bào)修狀態(tài)”的功能時(shí)知道應(yīng)該去哪一層改代碼。如果所有JDBC代碼全寫在Servlet里面兩千行代碼的Servlet會(huì)讓你懷疑人生。5. 核心功能模塊的實(shí)現(xiàn)解析5.1 登錄鑒權(quán)與過(guò)濾器登錄邏輯是每一套管理系統(tǒng)的門神。用戶輸入用戶名密碼后Servlet調(diào)用service層的 login 方法查詢用戶表校驗(yàn)密碼同時(shí)查出角色id存Session。登錄成功之后下一步就是做“已登錄保護(hù)”。寫一個(gè)過(guò)濾器攔截未登錄用戶訪問(wèn)受保護(hù)資源。WebFilter(/auth/*) public class AuthFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletRequest request (HttpServletRequest) req; HttpServletResponse response (HttpServletResponse) resp; HttpSession session request.getSession(false); if (session null || session.getAttribute(user) null) { response.sendRedirect(request.getContextPath() /login.jsp); return; } chain.doFilter(req, resp); } }注意這里用的是 request.getSession(false)而不是 getSession()。前者拿不到Session就返回null后者拿不到會(huì)強(qiáng)行創(chuàng)建一個(gè)新Session這會(huì)導(dǎo)致“明明未登錄卻因?yàn)樾聞?chuàng)建的Session繞過(guò)了校驗(yàn)”的嚴(yán)重安全漏洞。5.2 報(bào)修工單核心狀態(tài)機(jī)報(bào)修模塊是系統(tǒng)中業(yè)務(wù)狀態(tài)最多的地方。它的狀態(tài)流轉(zhuǎn)是業(yè)主提交工單 - 狀態(tài)為“待分配”物業(yè)主管受理 - 狀態(tài)變?yōu)椤疤幚碇小蓖瑫r(shí)指定維修人員維修人員回填結(jié)果 - 狀態(tài)變?yōu)椤耙淹瓿伞睒I(yè)主確認(rèn)/超時(shí)自動(dòng)確認(rèn) - 狀態(tài)變?yōu)椤耙呀Y(jié)束”狀態(tài)用代碼里定義常量表示千萬(wàn)不要在數(shù)據(jù)庫(kù)里存中文狀態(tài)值。數(shù)據(jù)庫(kù)只存狀態(tài)碼比如 0:待分配, 1:處理中, 2:已完成, 3:已結(jié)束頁(yè)面顯示時(shí)再映射成中文。這樣后期如果要擴(kuò)展?fàn)顟B(tài)不需要改數(shù)據(jù)庫(kù)字典表還能在業(yè)務(wù)代碼里做狀態(tài)合法性校驗(yàn)避免出現(xiàn)“直接從待分配跳轉(zhuǎn)到已結(jié)束”的非法流轉(zhuǎn)。5.3 Bootstrap頁(yè)面布局實(shí)戰(zhàn)使用Bootstrap最忌諱的是把整個(gè)頁(yè)面代碼全塞在一個(gè)JSP里。我的做法是做一個(gè)公共的 header.jsp 和 sidebar.jsp用 include 動(dòng)作引入。% page contentTypetext/html;charsetUTF-8 languagejava % div classcontainer-fluid div classrow div classcol-md-3 bg-dark text-white p-3 !-- 側(cè)邊欄菜單項(xiàng)根據(jù)角色動(dòng)態(tài)顯示 -- /div div classcol-md-9 p-4 jsp:include pagecontent.jsp / /div /div /divBootstrap的柵格系統(tǒng)本質(zhì)上是12列布局你只要記住 col-md-3 占四分之一的寬度col-md-9 占四分之三搭配起來(lái)就能做出一個(gè)經(jīng)典的后臺(tái)管理布局。表格直接套 table table-bordered table-hover表單套 form-control整體效果就已經(jīng)像模像樣了。5.4 JavaScript聯(lián)動(dòng)與數(shù)據(jù)校驗(yàn)頁(yè)面交互最常用到的場(chǎng)景是選擇樓棟后單元下拉框自動(dòng)加載該樓棟下的單元列表。這個(gè)必須用Ajax異步請(qǐng)求后端Servlet拿到數(shù)據(jù)再動(dòng)態(tài)渲染下拉項(xiàng)。// 樓棟下拉框change事件 $(#buildingId).change(function () { var bid $(this).val(); $.ajax({ url: /property/loadUnits, type: GET, data: { buildingId: bid }, dataType: json, success: function (res) { var unitSelect $(#unitId); unitSelect.empty(); unitSelect.append(option value請(qǐng)選擇單元/option); res.forEach(function (item) { unitSelect.append(option value item.id item.name /option); }); } }); });這里有個(gè)很容易忽略的細(xì)節(jié)返回JSON之前Servlet一定設(shè)了 response.setContentType(application/json;charsetutf-8)否則前端拿到的漢字會(huì)是亂碼。這就是瀏覽器頁(yè)面編碼和后端響應(yīng)編碼不一致導(dǎo)致的經(jīng)典坑放以前你可能會(huì)懷疑是數(shù)據(jù)源亂碼其實(shí)根源就是HTTP響應(yīng)頭沒(méi)設(shè)置對(duì)。6. 環(huán)境配置三步走JDK Tomcat MySQL6.1 Tomcat配置的關(guān)鍵不是配了就能跑很多人以為IDEA里集成了Tomcat就沒(méi)問(wèn)題了。實(shí)際上你還需要在Project Structure里加一個(gè) ArtifactWeb構(gòu)建產(chǎn)物然后把這個(gè)Artifact部署到Tomcat的運(yùn)行配置里。如果沒(méi)加Artifact啟動(dòng)Tomcat會(huì)直接報(bào)錯(cuò)找不到要部署的包。IDEA 2023版本的配置路徑是Run - Edit Configurations - Tomcat Server - Local - Deployment - Add - 選擇你的項(xiàng)目 exploded。注意 artifact 名字里如果帶 .war 和后面的 exploded 是兩個(gè)東西exploded是解壓目錄方式開(kāi)發(fā)期調(diào)試用這個(gè)即可。6.2 MySQL連接三大“神坑”我把這個(gè)項(xiàng)目里最常踩到的MySQL連接問(wèn)題列成了排查速查表?,F(xiàn)象根本原因解決方案Could not create connection to database serverMySQL服務(wù)未啟動(dòng)以管理員身份打開(kāi)服務(wù)面板啟動(dòng)MySQL服務(wù)Access denied for user root密碼不對(duì)或權(quán)限為空用命令行登錄重置密碼Unknown database數(shù)據(jù)庫(kù)名不一致確保連接串里dbName和實(shí)際庫(kù)名一致Public Key Retrieval is not allowedMySQL8.0安全沙箱限制JDBC連接串加 allowPublicKeyRetrievaltrueSSL連接錯(cuò)誤證書校驗(yàn)失敗5.7可以忽略8.0改useSSLfalse并關(guān)掉requireSSL如果你是MySQL 8.0連接串盡量這樣寫jdbc:mysql://localhost:3306/property_db?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/ShanghaiallowPublicKeyRetrievaltrueserverTimezone是必須的不然IDEA會(huì)報(bào)服務(wù)器時(shí)區(qū)不一致的異常。characterEncodingutf8 是必須的不然JSP往MySQL插中文必現(xiàn)亂碼。6.3 數(shù)據(jù)庫(kù)初始化腳本我強(qiáng)烈建議不要用手工敲表的方式去建庫(kù)太容易缺字段。把建表腳本和初始化數(shù)據(jù)寫進(jìn)一個(gè) init.sql 文件用Navicat或命令行一次性執(zhí)行。腳本開(kāi)頭加一句DROP DATABASE IF EXISTS property_db; CREATE DATABASE property_db DEFAULT CHARACTER SET utf8mb4; USE property_db;字符集用 utf8mb4 而不是 utf8因?yàn)镸ySQL的utf8最多只能存三個(gè)字節(jié)遇到生僻字或emoji會(huì)寫入失敗。utf8mb4是MySQL的完整版兼容utf8且支持四個(gè)字節(jié)這是2014年之后做項(xiàng)目的一個(gè)小常識(shí)。7. 常見(jiàn)運(yùn)行錯(cuò)誤與排查技巧實(shí)錄7.1 “Account/read failed during TUI bootstrap”類環(huán)境問(wèn)題在IDEA里配置Tomcat時(shí)如果你恰好使用了一些自動(dòng)配置插件或IDEA引導(dǎo)框架有可能會(huì)在啟動(dòng)階段卡在類似“account/read failed during tui bootstrap”的錯(cuò)誤。這個(gè)錯(cuò)誤本質(zhì)上是IDEA讀取用戶配置或插件狀態(tài)失敗不是項(xiàng)目代碼的問(wèn)題。一個(gè)干凈的做法是File - Invalidate Caches / Restart把IDEA緩存清掉重啟如果還是不行就直接在本地Tomcat的conf/server.xml里面刪掉默認(rèn)的Host下多余Context重新部署。核心思路是讓Tomcat和IDEA的耦合降到最低直接把項(xiàng)目打成war丟進(jìn)Tomcat的webapps目錄里跑繞開(kāi)IDEA自帶的復(fù)雜集成反而更快。7.2 數(shù)據(jù)庫(kù)連接失敗一個(gè)被忽視的MySQL服務(wù)狀態(tài)陷阱MySQL安裝成功不代表服務(wù)已經(jīng)啟動(dòng)。Windows 10下MySQL8.x默認(rèn)不會(huì)自動(dòng)啟動(dòng)服務(wù)。如果你連接數(shù)據(jù)庫(kù)報(bào)錯(cuò)第一個(gè)動(dòng)作是去“服務(wù)”面板看MySQL80到底有沒(méi)有在運(yùn)行而不是去懷疑代碼。命令行手動(dòng)啟動(dòng)的方式net start mysql80裝MySQL 8.0.x時(shí)MSI安裝器會(huì)默認(rèn)把服務(wù)名設(shè)為 MySQL80。如果裝的是5.7服務(wù)名一般叫 MySQL57。記住一點(diǎn)命令行里 services.msc 查到的服務(wù)名必須和 net start 后面寫的一致。7.3 JSP頁(yè)面找不到或404學(xué)生做這個(gè)項(xiàng)目最常報(bào)的錯(cuò)之一就是Tomcat都正常啟動(dòng)了但訪問(wèn) http://localhost:8080/xxx 返回404。排查路徑按順序走看URL有沒(méi)有帶項(xiàng)目訪問(wèn)路徑contextPath如果你的應(yīng)用部署名是 propertyMS那必須訪問(wèn) /propertyMS/login.jsp 而不是 /login.jsp。看WEB-INF里的JSP頁(yè)面能不能被直接訪問(wèn)。WEB-INF是被保護(hù)目錄瀏覽器無(wú)法直接訪問(wèn)其中的資源但你部署的時(shí)候如果把頁(yè)面放到WEB-INF里面了就必須通過(guò)Servlet轉(zhuǎn)發(fā)才能訪問(wèn)不可直接用URL打開(kāi)。看代碼里的路徑加沒(méi)加 request.getContextPath()。在JSP里引用CSS或JS文件路徑必須帶著項(xiàng)目名不然全是404。一個(gè)簡(jiǎn)單的辦法是在JSP頭部寫死% String path request.getContextPath(); String basePath request.getScheme() :// request.getServerName() : request.getServerPort() path /; % base href%basePath%這個(gè)base標(biāo)簽加上后頁(yè)面里所有的相對(duì)路徑都會(huì)自動(dòng)以項(xiàng)目根路徑為基準(zhǔn)從此不再出現(xiàn)“圖片顯示不出、CSS加載不了”的弱智錯(cuò)誤。7.4 中文亂碼問(wèn)題一串到底怎么治中文亂碼在JavaWeb里是個(gè)高發(fā)問(wèn)題但它其實(shí)是一個(gè)長(zhǎng)長(zhǎng)的鏈路只要中間一個(gè)環(huán)節(jié)斷裂必然亂碼。排查順序JSP頁(yè)面第一行是否寫了 % page contentTypetext/html;charsetUTF-8 languagejava %。瀏覽器是否以UTF-8解析沒(méi)有的話JSP里加。POST請(qǐng)求取參之前有沒(méi)有執(zhí)行 request.setCharacterEncoding(UTF-8)。Servlet響應(yīng)時(shí)有沒(méi)有 resp.setContentType(text/html;charsetUTF-8)。數(shù)據(jù)庫(kù)連接串有沒(méi)有帶 characterEncodingutf8。對(duì)POST請(qǐng)求setCharacterEncoding 寫在 getParameter 之前才有效寫在后面等于沒(méi)寫。對(duì)GET請(qǐng)求Tomcat8默認(rèn)字符集是UTF-8Tomcat7及以下要對(duì)get提交參數(shù)做二次解碼最好在Tomcat的server.xml Connector里配 useBodyEncodingForURItrue。7.5 頁(yè)面顯示正常但JavaScript報(bào)錯(cuò)最常見(jiàn)的是JS操作的元素沒(méi)渲染出來(lái)報(bào)錯(cuò)信息是 Uncaught TypeError: Cannot read properties of null。仔細(xì)檢查一下這個(gè)元素到底是不是放在jsp:include里面了如果那個(gè)include里頁(yè)面內(nèi)容為空J(rèn)S在DOM沒(méi)加載完成時(shí)執(zhí)行就會(huì)拿不到元素。穩(wěn)妥的操作是把你寫的JS代碼放到頁(yè)面最底部或包在 $(document).ready() 里。還有一類是前端Ajax請(qǐng)求返回了HTML而不是JSON。這個(gè)大概率是Servlet跳轉(zhuǎn)了頁(yè)面或者異常被Tomcat默認(rèn)錯(cuò)誤頁(yè)捕獲導(dǎo)致dataType為json但實(shí)際拿到的是HTML就會(huì)直接報(bào)parsererror。排查方式很簡(jiǎn)單瀏覽器F12打開(kāi)Network標(biāo)簽看那個(gè)XHR請(qǐng)求的Response原文到底是什么內(nèi)容。8. 從課程設(shè)計(jì)到簡(jiǎn)歷項(xiàng)目的進(jìn)階建議8.1 加一點(diǎn)緩存和日志項(xiàng)目質(zhì)感立刻提升如果項(xiàng)目做完了還有時(shí)間我不建議急著擴(kuò)展新模塊先補(bǔ)兩個(gè)工程化能力一是在查詢繳費(fèi)記錄的地方加一個(gè)簡(jiǎn)單的HashMap緩存以業(yè)主id為key緩存最近10條賬單查詢結(jié)果。哪怕你用最簡(jiǎn)單的ConcurrentHashMap也能體現(xiàn)出緩存意識(shí)面試官問(wèn)到“JSPServlet項(xiàng)目還有什么優(yōu)化點(diǎn)”時(shí)你能答出SQL索引優(yōu)化和緩存手段這比說(shuō)“我是Java后端開(kāi)發(fā)”要有說(shuō)服力得多。二是在關(guān)鍵操作加日志。不用上Log4j直接在Servlet里用JDK自帶的 java.util.logging 或ServletContext.log打印關(guān)鍵參數(shù)。面試問(wèn)“你項(xiàng)目里怎么排查問(wèn)題的”你說(shuō)“我看Tomcat日志”比說(shuō)“我打斷點(diǎn)調(diào)試”更像生產(chǎn)環(huán)境實(shí)戰(zhàn)。8.2 前端功能點(diǎn)上做一點(diǎn)“超綱”小設(shè)計(jì)除了基礎(chǔ)CRUD我強(qiáng)烈建議在任意一個(gè)頁(yè)面用Bootstrap的 Modal 模態(tài)框做新增/編輯操作而不是跳轉(zhuǎn)到另一個(gè)JSP頁(yè)面。這一個(gè)細(xì)節(jié)能讓你的項(xiàng)目在答辯演示時(shí)顯得格外流暢。同時(shí)配合JavaScript的 confirm 彈窗做刪除確認(rèn)或者用 SweetAlert 替換難看的原生alert視覺(jué)上直接提升一個(gè)檔次。記住一個(gè)原則用戶體驗(yàn)的細(xì)節(jié)往往比功能本身更讓老師覺(jué)得“這個(gè)學(xué)生真的有產(chǎn)品思維”。9. 踩坑小結(jié)做完這個(gè)項(xiàng)目最大的體會(huì)這個(gè)JSP Servlet的小區(qū)物業(yè)系統(tǒng)做完后我最大的感受是它像一道“基礎(chǔ)題”但咬合了JavaWeb日常開(kāi)發(fā)的所有關(guān)鍵環(huán)節(jié)。比如你天天在Spring Boot里用Transactional根本不知道事務(wù)底層需要手動(dòng)管conn.commit和conn.rollback你天天用MyBatis自動(dòng)生成SQL根本不知道預(yù)編譯PreparedStatement是防SQL注入的第一道防線你天天說(shuō)前后端分離但對(duì)Bootstrap的柵格布局和Ajax異步加載一知半解。做完這個(gè)項(xiàng)目這些坑基本都趟平了。如果再用這個(gè)項(xiàng)目去面試建議你提前把數(shù)據(jù)庫(kù)建表的幾條核心SQL背熟把過(guò)濾器的重定向路徑熟記把前端Ajax請(qǐng)求的URL和Servlet的映射關(guān)系講清楚。面對(duì)“你項(xiàng)目里遇到的最大困難是什么”這個(gè)問(wèn)題你也不愁沒(méi)素材了。最后再分享一個(gè)我個(gè)人的操作習(xí)慣每次項(xiàng)目快收尾時(shí)在本地備份一份完整的源碼和數(shù)據(jù)庫(kù)腳本然后重新裝一臺(tái)干凈環(huán)境從零開(kāi)始跑一遍部署流程。凡是這個(gè)流程里卡殼的地方就是你項(xiàng)目文檔里最該重點(diǎn)寫清楚的地方。這個(gè)習(xí)慣能讓你的項(xiàng)目交付質(zhì)量明顯高于同期水平。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美系列在线一区二区| 无码精品久久久久久亚洲| 无码少妇精品一区二区60岁老人| 一区二区三区免费视频入口| 国产精品欧美在线观看| 伊人久大| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 91美女视频在线观看| 人妻少妇三级| 亚洲视频,小说| 东京热男人的天堂网| 秋霞影音一区二区三区| 户外裸露刺激视频第一区| 亚洲 欧美 精品专区 极品| 亚洲精品白丝| 九草九九九| 日韩激情视频| 欧美 亚洲 大香| 蜜桃久久一区二区三区| 色色五月天激情| 福利操逼| 五月天婷精品激情| 成人八戒网站| 综合操逼| 欧美,日韩,亚洲视频| 一级片在线观看高清无码| 亚洲欧美另类小说| 亚洲av国产av综合av卡| 人妻日日干| 日韩性爱1级片视频| 亚洲无线观看久久| 欧美日本中字另类在线| 亚洲乱码国产乱码精网站| 久久透逼视频| 最新国产亚洲精品精品国产亚洲综合| 国产色呦呦| 免费操逼视频下载| 日本 欧美 亚中文字幕| 天天干一区二区| 精品国产污一区二区三区| 韩国轻伦国内自拍一区| 狠狠色一区二区中文字幕| 夜夜久久| 视频在线中文字幕| 大香蕉日韩| 久久中文字幕在线观看| 国产成人亚洲精品无码最新在线| 久久久久久久亚洲Av无码| h4610国产人妻| 熟女五十路一区二区三| 91色久| 亚洲欧美经典一区二区| 欧美综合加勒比在线| 中文字幕精品人妻丝袜| 曰本特级特黄特色黄色A级网站高清在线免费看| 91伊人久久在线| 国产97在线播放| 中文字幕成人乱码熟女精品国50| 牛牛AV人人夜夜澡人人爽| 人人操,人人插| 日韩在线一区二区| 99精品在线观看| 国产SV一线| 亚洲在钱| 亚洲一区日韩精品中文字幕| 十八禁啪啦拍视频无遮挡| 欧美日不卡| 亚洲免费日韩在线一区二区| 超碰精品97| 淫荡网址| 人妻中文字幕日韩电影| 97日本超碰综合| 日韩不卡网操逼中文字幕日韩| 这里只有97精品| 国产午夜精品理论片一二三区区 | 亚洲drav色图| 国产在线观看一区二区三区| 亚洲图片偷拍视频区| 丝袜内射| 色爱亚洲| 91狼人| 嗯嗯嗯啊啊啊在线免费观看| 色噜噜狠狠色综无码久久合欧美| 国产精品自拍欧美在线| 欧美日韩国产电影| 日韩欧美亚洲自拍偷拍| 超碰碰碰碰| 蜜臀久久在线视频| 久久这里只精品免费福利| 中文字幕精品三级久久久| 欧洲视频在线| 无码乱人伦中文视频| 96AV久久久| 亚洲高清欧美总合| 亚洲熟女av日韩熟女| 熟妇人妻一区二区三区| 欧美超碰在线| 亚洲天堂人妻一区二区| 人人妻人人爽| www.色婷婷.com| 狠狠躁日日躁夜夜躁A| 国产色图乱伦| 顶级少妇BT天堂| 美欧色综合| 国产精选三级在线观看| 69丨亚洲丨精品丨入口免费播放| 亚洲国产奇米影视久久| 国产午夜视频| 国产成人无码a| 欧美一区二区在线资源| 韩国免费播放一级毛片| 色爱欲亚洲| 草草草视频在线免费看| 极品粉嫩一区二区| 国产一区二区三三视频| 91 亚洲情侣偷拍 久久| 凹凸视频特色日本特黄| 久久中文字幕在线观看| 久久久一区二区三区四曲免费听| 天天爱天天操| 麻豆黄色五月天| av中亚| 麻豆亚洲Av成人无码一区精品| 老熟乱一区二区三区四区| www网站黄| 少妇人妻在线| 超碰精品在线| 欲香欲色综合天天伊人| JULIA人妻风俗店中出电影| 日韩熟女三十乱伦| 伊人aaa| 国产麻豆福利av在线播放| 欧美一级黄色18片免费看| 91在线丝袜视频| 免费观看性欧美一级| 男人干美女| 国内毛片无遮挡国产| 熟女AV一区| 激情丁香婷婷| 国产偷人伦激情在线观看| 亚洲日韩青青草色月| 粉嫩av平台| 日欧毛片久久| av婷婷色婷婷色六月| 夜夜青青无码影院| AV色天香在线| 日本精品无码三级网站| 中文字幕成人乱码熟女精品国50 | 久久精品老司| 亚洲天堂久久| 成 人 A V免费视频在线观看| 亚洲欧洲久久天堂| 曰韩无码777| 亚洲日韩电影| 狠狠色五月亚洲91| 有码人妻系列| 日韩婷婷| 久久美女国产| 国产福利电影| 综合网 欧美| 国产精品视频一区二区三区八戒| 97亚洲欧美| 久久久专区| 成人短视频在线观看| 久久久一区二区三区三州| 美女91av| 欧美亚洲se91| 欧洲Au麻豆| 国产成人自拍视频在线| 国产黄色在线播放观看| 超碰95| 亚洲天堂日本| 熟女自慰久久久| 曰韩精品九九无码| 亚洲精品亚洲人成人网| AV免费在线播放一区| 中日韩一区二区三区欧美| 激情文学小说一区二区| 91欧美美女日韩国产婷婷| 91久久久久免| 亚洲五月婷婷| 国产第25页在线观看| 欧美一区二区三区不卡高清视频| 91男人综合| 蜜桃精品一区二区三区久在线| 旡码电影特区| 无码欧美有限公司| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 精彩国产视频播放1区2区| 91欧| 97神马久久| 97草草| 国产精品密臀网在线观看| 97超碰色五月| 四虎影库国产精品免费| 偷拍 精品另类 凸凹了四区| 99久久婷婷| 极品尤物女神在线观看| 国产性爱乱伦AV| 国产一级高跟丝袜| 久久精品国产亚洲AV高清演员表| 日本人妻最新在线中| 麻豆成人影音在线| 国产精品视频内谢女人| 日韩无码一级黄色av片| 亚洲āv网址在线观看| 人妻一区二区三区熟女| 色欧美亚洲| 欧美日韩传媒| 日本人妻丰满熟妇久久久久久| 97超碰超碰| 99无码| 性色亚洲| 成人自拍三级在线观看| 免费观看的黄色的网站| 国模精品娜娜一二三区| 狠狠躁AV| 色婷婷婷五月天激情四射| 这里只有精品视频在线| www老逼91| 96免费视频在线| 懂色AV中文| 91老熟女老女人国产老太| 老司机午夜福利视频一区二区| 久久偷拍人| 好舒服视频| 青青草中出视频| K8久久久久| 久久少妇| 国产精品一区二区校花| 欧美人人AAA| 综合激情五月丁香| 射欧美综合| 国产久久男人天堂| 婷婷丁香人妻 | 黄片www.| 啊啊啊啊啊操我视频| 97碰碰日本乱偷人妻中文的| 99热这里只有精品1| 色区97| 99久久亚洲精品无码毛片潘甜甜| 亚洲国产成人高清在线| 女人妻一区| 超碰 国产熟女精品一区| 久久久久久久精| 亚洲成人一区二区精品| 人妻天堂综合网| 97精品久久久久久久| 天天操天天7| 久热最新在线杭州| 国产精品无码在线| 亚洲天天影视综合网| 国产精品另类一区大香蕉| 视频不卡中文字幕| 欧美黄片欧美黄片xxx| 天综合网| 美女上床网站| 日本免费中文字幕在线| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 性做久久久久久免费观看软件| 性色avv| 欧美日韩人妻少妇 一区二区三区| 欧美性暴力猛交| 丰满高潮18xxxx| 亚州精品丝袜-不卡成人免费| 大屁股熟女一区二区三区| 国产成人91一区二区三区| 国产 丝袜 欧美中文 另类| 日本三级日本三级三级人妇四虎| 大香蕉日韩| 亚洲女人91| 精品十三区| 日本伦理一区二区| 男人天堂2030| 黄色av一区二区在线| 怡红院怡春院| 电家庭影院午夜69久久夜色精品国产69乱| av日韩在线观看电影| 中文字幕版| 亚洲综合电影| 97视频观看| www亚洲欧美| 在线观看黄色电话| 日本二区不卡| 毛片电影一区二区三区| 久草色在线观看| 秋霞久久亚洲精品成人| 久久国模av| 久思思热视频在线观看| 操b网站亚洲无码| 91久久久亚洲| 91草草草| 911av网站免费观看| 久久免费精品96| 日韩欧美午夜一区二区| 九九九久久久久| AVE乱伦| 国产日本熟女顶级一区二区三区视频| 综合亚洲欧美精品日韩?v| 看日韩美女二区三区免费操逼视频 | 欧美人妻色| 国产在线视频二区| 夜夜嗨免费视频| 欧美国产日韩高清在线| 欧美色97| 无码99| 先锋影音av先锋一区| 欧美在线啊啊啊| 国产高清MV操逼视频| 国产人妻精品一区二区三区秋霞| 国产精品视频精品一二| 亚州综合色| 国产精品对白内射| 日韩午夜精品一区二区三区电影| 亚洲有薄码区久久在线一区| 日韩一区二区精品视频| 国产精品ww久久| 性生活无遮挡纯毛片在线看| 婷婷丁香五月激情啪啪| www.99色| 亚洲色图A| 色五月69夫妻| 激情综合亚洲| 人妻啪| 99久在线精品99re8| 日韩av乱伦| 欧美v日韩v亚洲v最新在线| 亚洲情色图片区| 大香蕉免费乱伦视频| 91国产丝袜白虎| 欧美另类色| 93人人操人人| 91久久久亚洲| 日日AAvv| 青青草精品| 岛国黄色大片网站| 四虎午夜影院| 麻豆熟妇乱妇熟色A片在线看| 中文字幕精品丝袜| 私色综合网| 999亚洲国产视频| 一区二区三区一亚洲中文字幕、综合区灬| 操人妻逼91| 大地资源在线观看中文第二页| 性天堂| 夜夜做夜夜爽精品视频| 高树玛利亚无码流出| 操婷婷逼| 丰满岳乱妇一区二区三区| 九九九九九九九九九国产精品 | 色黄污美女啪啪啪免费网站| 男人天堂网站| 全国男人天堂网| 久热久操| 国产天美传媒精品| 亚洲男人的天堂AV| 99啪| 欧美精品在线观看| 口爆综合网| 精品性爱无码在线播放| 思思热影视| 亚洲精品白浆高清久久久久久 | 超碰资源亚洲97| 探花激情视频| 搡老熟女老女人老熟妇免费视频| 欧美一级国产一级| 777AV电影| 激情黄色片在线观看| 久久久久久加勒比| 东京热综合久久一区二区| 欧美九一精品久久久熟妇| 久草热制服丝袜在线观看| 800zy一区二区| 精品一区二区三区蜜桃臀赵总 | 91狠狠综| 久草加勒比一区在线| 亚洲欧美碰碰| 超碰美女97| 亚洲天堂男| 日本 情色 1区| 日本布卡一区二三区| 国产九九九九九九| 超碰97人人乐| 国产一区二区在线看| 亚洲成A∨人影院在线欢看| 免费人成在线观看网站品爱网| 国产精品ww久久| 国产日韩精品suv| 欧美Ⅴ性爱| 三级精品三级在线观看| 久操网址| 99成人| 夫妻四区五区六区| 久久久穴999| 综合色拍| 91天堂| av影片在线观看不卡| 中日韩一区二区三区欧美| 久久精品国产亚洲妲己影视| 翔田千里AⅤHD无码| 亚洲阿v天堂无码z2018| 欧美麻豆成人同性GⅤ在线| 无码乱人伦中文视频| 五月婷久久| 亚洲日本韩国极品一区二区| 欧美天堂超碰97| 亚洲日韩资源| 秋霞色色影院| 国产区性爱在线视频秋霞豆 | 97免费视频在线| 午夜精品久久一区二区| 一区二区三区黄色片a| 熟女色综合久久| 99在线精品视频| 欧美综合在线91| 精品一区二区三区18| 一级二级在线观看| 91足交| 91oumei| 嗯嗯啊啊视频一区二区三区| 国产日韩怡红院| 91网站18在线| 熟人人妻少妇精品久久| 日韩免费中文字幕视频| 五月丁香六月婷综合成人综合| 91久青| 亚洲女人毛茸茸91| 一个色导综合| 麻豆国产尤物AV| 亚洲色情在线影视| 免费久久一级毛片大黄| 日本福利社| 超碰97首页| 女人精品内射国产99| 国产偷拍自拍在线视频| 狠狠夜色午夜久久综合在线| 国产400孕妇孕交群| 久操网无码在线| www.四虎在线| 欧美九九九九九| 在线中文字幕极品av| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 抽插一区二区视频| www.99中文字幕| 欧亚乱色熟一区二区三四区| 久久久日本电影| 亚洲成熟国产精品美女| 欧美少妇色综合| aaa亚无码专区| 久久天堂婷婷网| 96精品久久久| 久草大| 欧美91色| 日亚韩精品视频二区三| 亚洲国产中文字幕| 中文字幕一区二区三区高清| 丝袜视频一区二区在线播放国产中文 | 秋霞免费无码视频日韩A片| 99热在线播放| 亚洲欧美清纯| 久碰视频| 色香av| 日本天天色| 美女十八禁| 免费综合亚洲中文| 国产精品伦理| 欧美在线官网| 麻豆国产97在线| 99热99re超碰精品| 亚洲乱色视频一区、二区在线| 黄页| 97色在线观看| 另类TS人妖一区二区三区| 91最新综合| 操人人| 久久999久| 欧美一级特黄淫片在线观看| 91人妻久久久久久久久久久久久| 亚洲五码一区二区三区| 啊啊啊男女| 狠狠干婷婷| 91天天综合日韩欧美| 射 色综合| 中文操逼字幕| 国产乱码精品久久久久久| 久久社区一区二区三区| 欧美亚洲色的图| 依人大香蕉| 啊啊啊在线观看| 国产婷婷一区| 日韩不卡在线一区二区| 亚洲人精品久久久| 国产精品一区人妻精品阁在线| 91麻豆天美| 91N综合在线| 国产麻豆一级精品视频| 激情欧美97| 午夜欧美神马久久久久| 国产a级午夜毛片| 94色色电影网| 美女AV一区二区| 麻豆国产免费影片| 久久久久久网址| 欧美高潮| 91xingse| 日韩成人性爱电影在线播放| 久久久九九九| 日韩精品一区,二区 九九...老司机| 日本三级日本三级99| 久久久不能久久久久| 为用户提供免费看黄网址在线观看| 1024午夜激情男人的天堂| 欧美日韩成人在线| 色色香蕉| 少妇熟女1区2区3区| 97欧美色| 欧美五区| 精品丰满人妻一区二区三区免费观| 欧美A片中文字幕| 亚91网| 亚洲综合情色| 国产黄色动态精品| 人妻啊啊人妻啊| 国产综合网站在线播放 | 丝袜喷水在线| 91oumei| 夜间福利片1000无码| av影片在线观看不卡| 97伦乱| 久久国产对白激情浪潮 | 91免费看一区二区三区| 精品97久久| 欧美在线干| 97视频在线观看高清资源| 五月丁香综合| 天天躁日日躁AAAXX| heyZO天然素人无码AⅤ专区| 欧美色女人| 天天天肏屄肏屄肏屄欧美欧美| 日本精品性生活久久久| 色女综合| 久久女人视频| 色噜噜国产在线| 色99色| 91九色在线| 日韩亚洲Av人人夜夜澡人人爽| 久久中文字幕一区不卡| 久久精品午夜国产亚洲AV无码| 亚洲熟女av中文字幕| 日本高清视频在线观看黄已三辽| 黄色十八禁| 久久久久免费看少妇A片特黄| 中文字幕97| 亚洲色狠| 国产辣妈在线视频福利| 尹人免费观看视频在线| 一本色道无码DVD中文字幕| 五月亭亭六月丁香| 明星性猛交ⅹxxx乱大交| 欧美狠狠| 蜜乳中文字幕a在线| 一区在线精品中文字幕| av爱爱爱| 综合欧美激情网| 国产精品久久久久中文字幕| 中文字幕av亚洲在线| 日韩av不卡在线观看| 人人插人人搞人人操| 日本在线激情一区二区三区 | 精品少妇一区二区| 国产一线二线三线av| 天美传媒婬乱在| 色欲天天综合久久久无码网中文| 欧美一级黄色免费专区| 亚洲国产一区二区日韩专区| 在线观看AV片| 99热久| 免費人妻夜夜爽天天爽爽一区| 久久伊人网视频一区二区三区| 亚洲成人精品久久久| 91美女看B| 极品少妇久久久久| 九九碰九九爱97超| 在线看的av| 国产18精品亚洲精品| 狂操嫩妻视频一区二区三区| 九九久久国产精品| 五月天亚洲网| 亚洲国产丝袜熟女av| 日韩欧美成人午夜福利| 制服乱伦| 亚洲射综合网| 亚洲天天天| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 亚洲 图片 欧美 色图| 欧美色图人妻| 久久精品黄色| 婷婷丁香五月天综合东京热| 懂色AV一区二区三区| 嗯嗯啊啊视频一区二区三区| 欧美亚州综合网图片| 91啦人妻| 五月婷婷综合网| 日韩啪啪啪视频| 人人妻人人爽| 九月丁香综合网| 国产白领连续中出在线观看| 青青草在线视频美女| 亚洲无码国产探花在线观看| 亚洲成av人片色午夜乱码| 精品人妻一区二区免费蜜桃| 国内精品99999| 日韩操逼HD| 久久久久久性爱片| 国内毛片四区| 黄片无码在线制服| 国产成自自拍在线观看| 婷婷色香伊人| 天天躁日日躁AAAXX| 人妻爽爽啪视频| 久久78| 丁香五月激情五月| 天天干夜夜操一区二区| 强奸乱伦大香蕉| 红桃视频高潮| 久艹日日日| 色情成人五月天| 青青草中出视频| 黄片免费看的| 神马影院午夜福利久久久| 日韩av无码网站| 色嘟嘟人妻天堂网| 一区二区三区高清| 亚洲无码99| 97伊人| 成人午夜无码视频| 91日韩网站| 视频分类 国内精品| 久久人妻少妇| 伊人影院综合是一个与深夜成人在线| 啊啊啊好舒服视频在线观看| 91久久免费视频互動交流| 97干日韩| 69国产对白刺激| 日韩一区二区熟女| 色欲久久久久综合网| 按摩中文字幕| 欧美福利视频啊啊啊啊| 色婷婷蜜臀av| 国产一区二区三区白丝| 四虎免费看黄| 中文字幕一区二区韩| 久色99999| 天天天天天天天天天天干美女| 内射黑丝袜| 爱媛媛久久国产福利| 日本国产二线女色| 国产欧美一区激情交| www.人人摸在线视频| 久久九色| 狠狠操使劲操| 欧美夜夜骑视频| 久久夜黄色无码A级大片| 狠狠躁天天躁日日躁97| 欧美性爱另类综合| 欧美美女视频| 日日干夜夜操视频h| 亚洲精品毛片在线观看| 久久9精品网站| 欧美性爱五月天| 大学生美女口爆| 人人妻人人色| 五月丁香激情综合| 99人妻碰碰碰久久久久禁片| 91真人天天在线| 丰满人妻av一区二区三区| 人妻精品一区二区| 免费久久9999| 男女一级A片大黄,一进一出| 国产一国产一级毛片古装| 青草香蕉网| 国产成人在线观看综合| 精品视频一区二区| 内射卯月麻衣| 爱爱60秒免费视频| 亚洲欧美自拍偷拍| 美女久久久久久久久久久| 激情文学欧美| 久久久激情| 嫩草在线视频| 亚洲国产精品无石码久久| 精品176精品2| 99色视频| AV污污污污| 日韩肏逼视频| 国产精品另类一区大香蕉| 一区二区三区四区五区高清无码永久视频 | 黄色香蕉视频网站一区| 久久婷婷一区| 欧美夜色| WWW4虎| 91性高潮久久久久久久久| 成人自拍三级在线观看| 中文字幕一区二区无码成人 | 操比国产| 精品人妻中文字幕4399| 亚洲熟女综合网| 亚洲精品黑丝| 人人搡人人肉久久精品| 国产视频一区二区在线| 女人爽到高潮潮喷18禁网站| 情趣丝袜无码操逼视频| 亚洲欧美另类图片| 97欧美色| 丝袜狠狠草尤物 91| 91在线限制级| 青青草原狼av| 一本久道久久综合狠狠爱| 亚洲av影院在线观看| 操操吧亚洲乱伦视频| 三上悠亚在线毛片91| 清纯唯美第一页| 99热99re6国产在线播放| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 天天综合香 ld视频| 一区二区三区在线资源| 91人妻PORNY九色大屁股| 黄在线| 奇米四色影视777久久久| av黄图片在线观看| 亚洲国产成人综合碰碰三级经典| 97免费视频在线| 国产成人五月天丁香花| 日韩欧美三级| 精品国产乱码久久久| 97ai亚洲| 97这里有精品| 精品熟女呻吟久久91| 婷婷久月| 热思思免费视频| 无码久久国产 | 日本精品免费一区二区三区四区| 99re8超碰| 97中文字幕色| 97天天弄| 超碰精品人妻狠狠干| 夜夜嗨免费视频| 国产嫩草精品A88AV| 校园春色 亚洲| 国产精品久久泡妞网站| 欧美乱欲| 日本精品中文字幕视频| 久久综合国产精品国产| 国产精品成人福利在线| 国产 v乱码一区二| 欧美激情综合| 国产人伦精品一区二区三区| 亚洲免费成人在线高清无码视频| 伊人96在线| 91制服丝袜| 国产特级毛片AAAAAA高潮流水 | 91在线精品| 极品美女嘿咻| 99999精品| 人人贴人人摸| 在线观看日韩av不卡| 亚洲超碰在线| 国产suv精品一区二区四区999| 一区二区三区蜜桃成人撸久久东京热| 99色骚| 另类图片五月天| 97精品视频| 亚洲精品人妻在线| 天天日天天爽| 欧美中字二区| 91天堂丝袜美腿| 午夜性刺激视频免费观看| 豆花视频操逼网址| 亚洲免费人妻在| 久久久精品国产亚洲伊人| 热久日综合| 日本在线999| 国模私拍一区二区三区神乳| 色综合色欲色综合色综合色综合| 旡码电影特区| 狠狠操狠狠燥| 2023天天操夜夜操| 日韩成人综合网| 爽爽爽免费视频| 亚洲春色欧美| 精品午夜福利国产一区二区在线观看| 九九热超碰| 久久久111| 91成人18| 啊v视频在线观看| 粉嫩AV一区夜夜嗨| 欧美狠狠| 超碰人人在线| 91黑丝操| 天天操人人操狠狠插| 99热在线观看| 欧美日韩国产精品久久色婷婷| 日韩免费簧片| 天天影视网综合少妇| 欧美高潮| 午夜乱轮操逼视频免费看| 人妻激情偷乱视频一区二区三区 | 婷婷综合伊人一区| 亚洲最大网站av| 性老妇一区二区三区| 中文字幕乱码在线| 人人爱操| 久久久无码精品人妻二区 | 欧洲亚洲天堂精品| 亚洲男人久久综合天堂| 日韩亚洲美州欧洲综三区一品在线| 91国产丝袜美女| 亚洲一区二区三区中文字幕| 欧美日韩人人早| 97操| 欧美制服网站美腿丝袜| 日韩图色| 天天综合精品| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 天天做日日做天天欢。| 国产美女激情| 亚洲,日韩,欧美,成人播放| 亚洲精品久久久久久久久豆丁网| 久久久555| 欧美在线干| 国产97色在线 | 亚洲| 插欧洲美女欧美精品| 亚洲AV在线资源| 一级久久久久久久久久久| 久久夜夜夜| 亚洲色 国产 欧美 日韩| 久草综合视频| 综合久久久久久久综合网| 大香蕉欧美伊| 国产色综合亚洲色综合吹潮| 日本一片一区| 久久久久久电影| 国产第二页| 人人操人人摸人| 热久久无毒不卡| 天堂8在线新版官网| 欧美淫乱视频| 一区二区 韩日AV| 狠狠91| 欧美激情欧美精品| 精品国产人成在线| 在线啊啊啊| 国产亚洲一黄| 亚洲AV无码乱码| 亚洲污污网站| 日韩av乱伦| 久久九色| 国产高清不卡视频| 色yeye成人免费视频| 精品无人区麻豆乱码1区2区图片| 色狠狠综合| 在线免费观看高清无码视频| 干B| 99re国产中文字幕| 久久久久97| 大香蕉宅男伊人| 国产农村一一级特黄毛片| 色欧美亚洲| 亚洲限制级| 色婷久久| 岛国1区2区3区在线观看| 超碰97在线中文| 蜜臀少妇一区二区| 色操逼网| 猛猛干| 97日视频| 九九人人操| 国产欧美日本亚洲精品 | 五月丁香啪啪啪| 亚洲精品国语在线播放| 啊啊啊啊好疼视频| 色老汉玖玖爱| 51一区二区三区| 久操电影| 91久热| 超碰精品| 69超碰综合| 在线综合色| 视频国产欧美在线播放| 99色在线| 欧美色天堂网在线视频| 婷婷丁香六月| 人摸人人操人| 你懂的在线观看区国产| 强乱老妇中文字幕| 国产精品久久久久久久久久久久久久久久 | 欧美东京热精品A∨| 大肥女高潮bbwbbwhd视频| 九九免费影片| 久久国模av| 99中出在线| 99操| 韩国一级婬片A片AAAAA| 韩国一级婬片A片无码天美| 美女91在线| 久久久久久免费电影| 久久亚洲天天做| 色性综合| 九九AV| 爱做久久久久久| 嗯啊抽插大香蕉网页| 亚洲无码精品AV久久久| 久热最新在线杭州| 国产丝袜一区二区三区| 日韩不卡网操逼中文字幕日韩| 日韩三级网址| 97午夜剧场日韩| www99热| 久久艹逼视频| 精品久久人妻成人网| 国产亚洲精品av一区| 自怕偷自怕亚洲精品| 日本羞羞的视频在线播放 | 麻豆福利视频导航| 蜜臀精品1区2区| 久久这里都是精品| 亚洲中文字幕97久久精品少妇| 大地资源在线观看中文第二页| 亚洲毛片一级带毛片基地| 日韩性爱毛片操骚逼| 亚洲性爱乱操x| 99久久久久久亚洲精品不卡| 亚欧免费观看视频| 伊人网免费视频| 日韩免费一级性爱视频| 日韩成年人性爱视频| 男人天堂网址| 性色AV蜜色av色欲av| 亚洲国产另类在线中文| 粉嫩av平台| 国产在线视频二区| 无码天天操| 欧美亚洲另类在线蜜桃| 在线看片国产精品每日更新| 久久久久久国产精品免费网站| 亚洲av影音先锋| 国产精品久久成人免费| 国产AV高清AV无码| 91精品久久久久久综合五月天| 99热精品在线| 98一区二区精品| 日韩紧密久久| 日韩丝袜高跟制服在线观看| 久久熟女久| 午夜福利合集| 九九九九精品九九九九| 国产肏逼网站| 操逼天美3区| 人人天天干干| 大奶啊啊好爽| 中文字幕久久精视频久久大全| 大乔未久88一区| 国产尤物在线三区| 一区二区三| 中国一级操逼视频| 性色av婷婷久久一区二区点复制| 长长久久曰曰夜夜成人网| 4141514逼喷水三级片| 欧美日韩另类字幕中文| 久久久涩| aa片毛片| 91精品久久久久五月天精品| 逼逼逼逼操操操操操操操操操午夜剧场| 国产一级黄色片在线观看| 天天操夜夜操| 秋霞午夜视频一区二区| 人妖欧美一区二区| 国产精品精品系列在线观看| 国产理论视频在线播放| 中文字幕日韩综合| 亚洲成人色情五月天丁香花| 亚洲做性| 成人26uuu| 国产精品一区二区黄片| 97内射偷拍| 亚洲丝袜在线观看| 成人av在线播放| 涩五月婷婷| 神马久久网| suv精产一二三区| 久久黄色性爱视频| 口爆综合网| 91天天美女| 国产强奸乱伦xd| 大香蕉免费中文| 欧美综合传媒| 成人av福利在线观看| 日本99热| 亚洲涩图欧美| 国产无码高清操逼视频| 日本片日本片祼观看网站在线看中文版网页在线看 | 日本久久综合| 久久夜夜| 婷婷在线视频| 91女优在线观看 | 国产一区二区三区影片| 久久久久久久78| 人人操人人肉久久精品| 无码人妻丰满热妇又大又粗| 精品人妻一区二区三区在| 免费一级毛片在线视频观看| 97资源免费视频| 久久在线观看免费视频| 婷婷色网| 青青草一本道福利视频| 亚洲av综合色区无码一| 久久av色| 思思久热在线精品66| 久久一二三四五六七八九区区区| 久久久草草精品| 在线观看AV片| 亚洲熟久久| 欧美日韩免费性爱| 闷骚老熟女15P| 日韩性爱一级片| 久久久亚洲精品电影免费看| 久艹日日日| 婷婷五月天补不补| 男人的天堂1024| 色婷婷五月综合| 国产91 丝袜在线播放| 中日高清无码操逼视频| 啊啊啊啊,啊啊好多水| 亚洲精品亚洲人成在线麻豆| 欧洲精品一二三在线| 操逼片国产| 人妻天天爽| 每日更新AV| 91精品操美女| 91九色首页| 友优传媒精品在线一区二区| 天天做天天爱| 国产精品视频在线观看| 91蜜臀熟女| 永久免费观看的毛片的网站| 黄色大片一区二区密桃丝袜| 欧美日韩97| 精品久久久久黄少妇| 另类图片欧美激情综合| 欧美超碰96| 97精品熟女少妇一区| 大香蕉伊然在亚洲91| 亚洲午夜福利视频| 青青草依人大香蕉| 熟女丰满人妻一区| 看免费一级在线播放毛片| 久久超碰免费的| 国产AV毛片| 中文字幕青青草| 神马视频久久久久久| 亚洲一区日韩精品中文字幕| 久久熟妇五十路一区| 99久久婷婷丁香| 九七超碰人人乐| 日韩一999精品| 日韩精品免费高清视频在线| 日本熟妇自慰性高潮一区二区三区| 亚洲综合九九| 夜草网站| 东北操逼| 东京热男人的天堂网| 在线毛片片免费观看| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 婷婷色色网| 在线中文字幕| 激情文学亚洲| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 高清有码一区二区| 是还免费视频1727我| 婷婷六月色| 天天色天天干天天爱| 校园春色美腿丝袜| 蜜桃传媒一区二区亚洲| 中文字幕精品日韩中文字幕| 蜜臀99久| 欧美久久人妻少妇一区二区| 色色婷婷五月天| 小日子操bb在线看| 麻豆AV一区二区天美传媒| 亚洲天堂第一页| 99在线精品观看99| 欧美日韩色综合网| 伊人91| 99最新日韩偷拍视频| 色女网日韩| 五月天丁香网| 亚洲第一精品在线视频| 亚洲在线a| 欧亚日本情色| 久久久中文版| 手机av天堂久久久久| 成人日本视频人妻在线| 男女猛烈无遮掩视频免费软件| 婷婷丁香人妻| 91nbbbbbb| 熟妇最新先锋一二三区| 青娱乐日韩无码| 91精品女厕偷拍视频| 中文字幕精品探花视频| 97在线视频观看免费| 一级黄碟在线看| 亚洲另类色图片| 精品少妇后入一区二区三区四区人妻巨乳| 亚洲 中文 欧美 日韩 在线| 国产一区二区精品久久久不卡蜜臀| 校园春色欧美色图| 婷婷综合| 熟女视频久久| 国产亚州精品美女久久久免费| 岛国在线国产| 亚洲丝袜诱惑| 蜜臀久久99精品久久久久久成人小说 | 97在线青| 国产精品久久久777| 香蕉一区二区三区在线视频| 九九热在线精品视频| 色小视频蜜乳| 久精品无码av一区二免费国产在线观看| 一级成人性爱| 91AV入口| 欧美成人性爱视频在线播放| 97干在线视频| 天堂性色| 日韩久射综合| 美女性91| 亚洲无码一区成人免费午夜| 99热这里只有精品1| 国产乱不卡| 热热色AV| 久久久999国产精品| 欧美96交| 欧中美三级一区二区三区| 欧美综合中文| 男人综合网| 欧美色网络| 夜色91| 免费观看日本操逼视频| aa片毛片| 免费看黄片现成| 国产精品原创巨作?v网站| 一级毛片久久久久久久女人18| 大香蕉一区二区在线观看.| 久热影视| 国产69精品久久久久99尤物| 日韩人成网站在线播放| 黄片www.| 999狠狠综合| 亚洲91亚洲| 足交视频老司机| 91模特在线观看|