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

ARTICLE DETAIL

資訊詳情

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

Java+SSM+Flask混合架構(gòu)搭建數(shù)學(xué)競(jìng)賽網(wǎng)站全流程解析

Java+SSM+Flask混合架構(gòu)搭建數(shù)學(xué)競(jìng)賽網(wǎng)站全流程解析 數(shù)學(xué)競(jìng)賽類網(wǎng)站這套題目在畢業(yè)設(shè)計(jì)里真的算常青樹(shù)了。每年都有大量學(xué)生做類似選題但大多數(shù)版本都停留在“能跑就行”的狀態(tài)代碼結(jié)構(gòu)、業(yè)務(wù)邏輯、部署方式都存在不少隱患。這篇文章我結(jié)合自己帶過(guò)的項(xiàng)目經(jīng)驗(yàn)把基于JavaSSMFlask混合架構(gòu)的數(shù)學(xué)競(jìng)賽網(wǎng)站從設(shè)計(jì)思路、核心代碼、部署調(diào)試到排坑過(guò)程完整拆開(kāi)講一遍適合正在做畢設(shè)、課設(shè)或者想自己搭一個(gè)數(shù)學(xué)練習(xí)與競(jìng)賽平臺(tái)的開(kāi)發(fā)者參考。1. 項(xiàng)目整體設(shè)計(jì)與技術(shù)選型思路1.1 為什么用JavaSSMFlask這種混合架構(gòu)拿到“數(shù)學(xué)競(jìng)賽網(wǎng)站”這個(gè)題目第一步要做的不是急著寫(xiě)代碼而是先把技術(shù)架構(gòu)定下來(lái)。目前市面上的方案大致分三類純JavaSSM或SpringBoot、純PythonDjango或Flask、前后端分離VueSpringBoot。而標(biāo)題里這個(gè)組合——JavaSSMFlask看起來(lái)有點(diǎn)“混搭”實(shí)際卻是很多高校畢業(yè)設(shè)計(jì)里非常實(shí)用的方案背后其實(shí)有很現(xiàn)實(shí)的考慮。SSMSpringSpringMVCMyBatis是Java后端里非常經(jīng)典的組合它穩(wěn)、資料多、面試也常問(wèn)。用SSM來(lái)做網(wǎng)站的主體業(yè)務(wù)比如用戶登錄、試題管理、競(jìng)賽發(fā)布、成績(jī)記錄這些核心模塊是非常穩(wěn)妥的。而Flask作為Python端的輕量框架非常適合做兩件事一是實(shí)現(xiàn)一些需要快速開(kāi)發(fā)的輔助接口比如智能組卷、成績(jī)統(tǒng)計(jì)分析、爬蟲(chóng)抓取競(jìng)賽資訊等二是為Java端提供一個(gè)可調(diào)用的Python服務(wù)方便展示“多種技術(shù)棧協(xié)作”的能力這在畢業(yè)設(shè)計(jì)的答辯中是一個(gè)很加分的亮點(diǎn)。當(dāng)然也有很多人會(huì)問(wèn)為什么不直接用SpringBoot代替SSM說(shuō)實(shí)話如果是從零開(kāi)始自己做項(xiàng)目SpringBoot確實(shí)更省事。但很多高校的課程體系和畢設(shè)大綱還停留在SSM階段題目要求里明確寫(xiě)了“基于SSM”所以標(biāo)題里保留SSM是有原因的。再說(shuō)了SSM雖然配置繁瑣但恰恰是這種繁瑣能逼著你把Spring的IOC、AOP、MyBatis的映射機(jī)制這些東西真正弄明白而不是像用SpringBoot那樣把一切都自動(dòng)屏蔽掉。1.2 前端與數(shù)據(jù)交互的設(shè)計(jì)考量前端部分大多數(shù)數(shù)學(xué)競(jìng)賽網(wǎng)站用的都是服務(wù)端渲染加少量Ajax的方式。用Thymeleaf或者JSP來(lái)渲染頁(yè)面配合jQuery和Bootstrap做交互。這種方案的好處是開(kāi)發(fā)速度快、對(duì)SEO友好、調(diào)試也直觀特別適合課設(shè)畢設(shè)這種時(shí)間緊、任務(wù)重的場(chǎng)景。數(shù)據(jù)交互方面Java端和Flask端的通信我推薦兩種方式方式一Java端通過(guò)HTTP Client比如RestTemplate或OkHttp調(diào)用Flask的RESTful接口這種方式邏輯清晰兩端完全解耦。方式二共用同一個(gè)MySQL數(shù)據(jù)庫(kù)Java負(fù)責(zé)寫(xiě)Flask負(fù)責(zé)讀然后通過(guò)Redis做緩存同步。這種方式少了一層HTTP調(diào)用性能更好一點(diǎn)但要注意數(shù)據(jù)一致性問(wèn)題。我自己在做類似項(xiàng)目時(shí)更喜歡方式一。原因很簡(jiǎn)單Java和Flask各自維護(hù)獨(dú)立的業(yè)務(wù)邊界接口文檔寫(xiě)清楚聯(lián)調(diào)的時(shí)候不容易出“這個(gè)字段誰(shuí)改的”這種扯皮問(wèn)題。而且答辯時(shí)展示兩端獨(dú)立部署、通過(guò)接口通信比“共用一個(gè)庫(kù)”聽(tīng)起來(lái)更有技術(shù)含量。1.3 核心功能模塊拆解一個(gè)完整的數(shù)學(xué)競(jìng)賽網(wǎng)站至少要包含以下模塊這也是評(píng)閱老師重點(diǎn)看的部分。我列一個(gè)表格方便對(duì)照模塊名稱核心功能技術(shù)要點(diǎn)用戶模塊注冊(cè)、登錄、個(gè)人信息維護(hù)Session管理、密碼加密、驗(yàn)證碼試題模塊試題錄入、分類、檢索、在線答題批量導(dǎo)入、分頁(yè)查詢、題目類型區(qū)分競(jìng)賽模塊發(fā)布競(jìng)賽、在線報(bào)名、模擬競(jìng)賽時(shí)間控制、競(jìng)賽狀態(tài)機(jī)、防作弊成績(jī)模塊自動(dòng)判分、成績(jī)排名、統(tǒng)計(jì)分析判定規(guī)則、成績(jī)可視化資訊模塊競(jìng)賽公告、數(shù)學(xué)文章展示富文本發(fā)布、分類展示管理后臺(tái)用戶管理、試題審核、數(shù)據(jù)統(tǒng)計(jì)權(quán)限控制、圖表展示這六大模塊基本覆蓋了“數(shù)學(xué)競(jìng)賽網(wǎng)站”“數(shù)學(xué)練習(xí)網(wǎng)站”“數(shù)學(xué)學(xué)習(xí)資源”這些熱詞的全部需求。后面我會(huì)重點(diǎn)挑幾個(gè)容易出問(wèn)題的模塊詳細(xì)講代碼實(shí)現(xiàn)和踩坑過(guò)程。2. 核心業(yè)務(wù)模塊詳解與代碼實(shí)現(xiàn)2.1 用戶登錄與權(quán)限控制的正確姿勢(shì)用戶模塊看起來(lái)簡(jiǎn)單但登錄態(tài)管理和權(quán)限控制是做網(wǎng)站最容易出安全隱患的地方。很多同學(xué)的代碼里登錄就是查一下用戶名密碼對(duì)不對(duì)然后把用戶ID存在session里就完事了。這種做法在課設(shè)答辯中勉強(qiáng)能過(guò)但實(shí)際上漏洞挺多的。我建議的做法是分三層第一層表單提交時(shí)用JS做一次基礎(chǔ)校驗(yàn)比如用戶名非空、密碼長(zhǎng)度限制這層是為了用戶體驗(yàn)。第二層后端Controller里再做一次嚴(yán)格的參數(shù)校驗(yàn)防SQL注入和XSS攻擊。比如MyBatis里一定要用#{}而不是${}因?yàn)?{}是字符串拼接很容易被注入。第三層密碼不能明文存數(shù)據(jù)庫(kù)。至少要用MD5加鹽或者直接用BCrypt。我通常用Spring自帶的BCryptPasswordEncoder每次校驗(yàn)時(shí)把用戶輸入的密碼和數(shù)據(jù)庫(kù)里的哈希值做比對(duì)。// 用戶登錄的Service層核心邏輯 public User login(String username, String password) { User user userMapper.findByUsername(username); if (user null) { throw new BusinessException(用戶名不存在); } // BCrypt校驗(yàn)password是用戶輸入的明文user.getPassword()是庫(kù)里的哈希值 if (!bcryptPasswordEncoder.matches(password, user.getPassword())) { throw new BusinessException(密碼錯(cuò)誤); } // 更新最后登錄時(shí)間 userMapper.updateLastLoginTime(user.getId()); return user; }權(quán)限控制方面用一個(gè)攔截器就夠了。定義一個(gè)LoginInterceptor重寫(xiě)preHandle方法檢查session里有沒(méi)有user信息。沒(méi)有就重定向到登錄頁(yè)。然后Admin相關(guān)的請(qǐng)求再檢查這個(gè)用戶的角色字段是不是“admin”。注意角色判斷不能只在前端隱藏按鈕后端接口必須也校驗(yàn)否則別人直接構(gòu)造請(qǐng)求就能刪數(shù)據(jù)了。2.2 試題管理從批量錄入到智能組卷試題管理是數(shù)學(xué)競(jìng)賽網(wǎng)站的核心也是工作量最大的部分。一道題要有題干、選項(xiàng)如果是選擇題、正確答案、解析、難度等級(jí)、知識(shí)點(diǎn)標(biāo)簽。在數(shù)據(jù)庫(kù)設(shè)計(jì)中我建議把題目基礎(chǔ)信息放一張表題目和知識(shí)點(diǎn)的關(guān)聯(lián)關(guān)系放另一張表采用多對(duì)多的設(shè)計(jì)。這樣后面做篩選、分組、統(tǒng)計(jì)都非常方便。批量錄入這塊很多同學(xué)是一個(gè)個(gè)在后臺(tái)手輸太累了。比較實(shí)用的做法是支持Excel導(dǎo)入。我用的是Apache POI前端上傳xlsx文件后端解析每一行校驗(yàn)字段完整性后逐條插入數(shù)據(jù)庫(kù)。// 使用POI讀取Excel的簡(jiǎn)化代碼 Workbook workbook WorkbookFactory.create(inputStream); Sheet sheet workbook.getSheetAt(0); for (Row row : sheet) { if (row.getRowNum() 0) { continue; // 跳過(guò)表頭 } Question question new Question(); question.setContent(row.getCell(0).getStringCellValue()); question.setType(row.getCell(1).getStringCellValue()); question.setAnswer(row.getCell(2).getStringCellValue()); question.setDifficulty(row.getCell(3).getNumericCellValue()); questionService.addQuestion(question); }這里有個(gè)坑POI讀取單元格時(shí)數(shù)字類型的cell要用getNumericCellValue字符串類型要用getStringCellValue如果不提前判斷getCellType()很容易拋異常。我在這上面吃過(guò)虧后來(lái)都寫(xiě)了統(tǒng)一的解析工具類把所有cell值都先轉(zhuǎn)成字符串再處理。智能組卷是一個(gè)加分功能。簡(jiǎn)單版本的做法是根據(jù)用戶選擇的知識(shí)點(diǎn)、難度分布和題量先從數(shù)據(jù)庫(kù)里把符合條件的題目全部查出來(lái)然后按比例隨機(jī)抽取。稍微智能一點(diǎn)可以給每道題設(shè)置一個(gè)權(quán)重值比如最近被抽中次數(shù)多的題目權(quán)重降低實(shí)現(xiàn)“不重復(fù)刷題”的學(xué)習(xí)體驗(yàn)。這個(gè)邏輯用SQL加Java配合很容易實(shí)現(xiàn)。2.3 競(jìng)賽流程設(shè)計(jì)報(bào)名、開(kāi)賽、交卷、判分?jǐn)?shù)學(xué)競(jìng)賽網(wǎng)站里的“競(jìng)賽”功能核心難點(diǎn)在于時(shí)間控制和狀態(tài)流轉(zhuǎn)。一場(chǎng)競(jìng)賽的狀態(tài)我一般設(shè)計(jì)為四個(gè)未開(kāi)始、進(jìn)行中、已結(jié)束、已發(fā)布成績(jī)。整個(gè)流程是這樣的管理員創(chuàng)建競(jìng)賽設(shè)置開(kāi)始時(shí)間、結(jié)束時(shí)間、參賽限制。用戶瀏覽競(jìng)賽列表在“未開(kāi)始”狀態(tài)下可以報(bào)名。到了開(kāi)始時(shí)間競(jìng)賽狀態(tài)自動(dòng)變?yōu)椤斑M(jìn)行中”用戶可以進(jìn)入答題頁(yè)面。用戶交卷或時(shí)間截止自動(dòng)交卷進(jìn)入判分環(huán)節(jié)。所有參賽者成績(jī)統(tǒng)計(jì)完成后管理員發(fā)布成績(jī)用戶可以看到排名。狀態(tài)判斷有個(gè)細(xì)節(jié)不能只靠前端按鈕控制顯示后端每次請(qǐng)求競(jìng)賽詳情時(shí)都要根據(jù)當(dāng)前時(shí)間動(dòng)態(tài)判斷狀態(tài)。因?yàn)橛脩敉耆梢岳@過(guò)前端直接調(diào)接口獲取題目。所以我的做法是在Service層寫(xiě)一個(gè)getCompetitionStatus(Competition competition)方法每次請(qǐng)求都實(shí)時(shí)計(jì)算保證業(yè)務(wù)邏輯安全。交卷判分這塊如果題目全是選擇題和判斷題那判分就很簡(jiǎn)單——遍歷用戶的答案跟正確答案比對(duì)就行。但數(shù)學(xué)競(jìng)賽往往有填空題和解答題。填空題要注意答案格式的統(tǒng)一比如“3/4”和“0.75”本質(zhì)等價(jià)但字符串比對(duì)認(rèn)為是不同的。我的處理辦法是填空題設(shè)置多個(gè)可接受的答案或者用正則做歸一化比較。解答題則需要人工閱卷我的做法是系統(tǒng)先自動(dòng)判選擇和填空把得分記錄下來(lái)然后管理員在后臺(tái)對(duì)解答題進(jìn)行評(píng)分最終分?jǐn)?shù)等于兩部分之和。2.4 Flask端輔助功能成績(jī)分析與資訊接口Flask在整個(gè)項(xiàng)目里的角色是一個(gè)Python輔助服務(wù)。我主要讓它干三件事成績(jī)數(shù)據(jù)分析、競(jìng)賽資訊采集、模擬成績(jī)預(yù)測(cè)。成績(jī)分析這塊Flask通過(guò)HTTP接口接收J(rèn)ava端傳過(guò)來(lái)的成績(jī)數(shù)據(jù)JSON格式然后用Pandas做統(tǒng)計(jì)計(jì)算比如平均分、最高分、分?jǐn)?shù)段分布再配合Matplotlib生成一張圖片返回給Java端Java端直接在前端頁(yè)面上展示。這樣圖表繪制完全不用Java代碼省了很多麻煩。from flask import Flask, request, jsonify import pandas as pd import matplotlib.pyplot as plt import io import base64 app Flask(__name__) app.route(/api/analyze, methods[POST]) def analyze(): data request.get_json() # Java端傳過(guò)來(lái)的成績(jī)列表 df pd.DataFrame(data) avg_score df[score].mean() max_score df[score].max() # 生成分?jǐn)?shù)分布圖轉(zhuǎn)base64返回 plt.hist(df[score], bins10) buf io.BytesIO() plt.savefig(buf, formatpng) buf.seek(0) img_base64 base64.b64encode(buf.read()).decode(utf-8) return jsonify({ avg: avg_score, max: max_score, img: img_base64, total: len(df) }) if __name__ __main__: app.run(host0.0.0.0, port5001)Java端用RestTemplate調(diào)用這個(gè)接口的代碼也很簡(jiǎn)單構(gòu)造一個(gè)MultiValueMap或JSON對(duì)象POST過(guò)去拿到返回的JSON解析后把圖片的base64字符串直接放進(jìn)前端的img標(biāo)簽里。實(shí)測(cè)下來(lái)這個(gè)鏈路很穩(wěn)定數(shù)據(jù)量不大的情況下響應(yīng)速度也很快。3. 數(shù)據(jù)庫(kù)設(shè)計(jì)與關(guān)鍵配置文件解讀3.1 表結(jié)構(gòu)設(shè)計(jì)哪些表是必須的怎么建最合理數(shù)據(jù)庫(kù)設(shè)計(jì)是整個(gè)項(xiàng)目的地基。很多人的表結(jié)構(gòu)是隨用隨建到后期發(fā)現(xiàn)缺字段就加字段類型不統(tǒng)一關(guān)聯(lián)查詢巨慢。我這里直接給出一個(gè)比較完整的設(shè)計(jì)方案建表的SQL你可以直接參考。核心表有七張用戶表、角色表、題目表、知識(shí)點(diǎn)表、題目知識(shí)點(diǎn)關(guān)聯(lián)表、競(jìng)賽表、競(jìng)賽成績(jī)表。如果要做新聞資訊再加一張文章表。用戶表字段id, username, password, salt, email, avatar, role, status, create_time題目表字段id, content, options, answer, analysis, type, difficulty, subject, create_time競(jìng)賽表字段id, title, description, start_time, end_time, duration, question_ids, status, create_time這里特別說(shuō)一下question_ids字段。競(jìng)賽和題目是多對(duì)多的關(guān)系理論上應(yīng)該建一張關(guān)聯(lián)表但競(jìng)賽場(chǎng)景比較特殊——管理員組卷后該場(chǎng)競(jìng)賽的題目集合就固定了直接用逗號(hào)分隔的ID字符串存起來(lái)取題的時(shí)候split(,)一下就行。好處是查詢快、理解簡(jiǎn)單壞處是不太好做統(tǒng)計(jì)比如“哪道題被哪些競(jìng)賽用過(guò)”??错?xiàng)目復(fù)雜度自行取舍課設(shè)層面我建議直接用字符串存夠用且省事。競(jìng)賽成績(jī)表字段id, competition_id, user_id, score, total_score, answer_detail, submit_time, rank, statusanswer_detail是個(gè)JSON字符串存的是用戶每道題的作答詳情比如[{question_id: 1, user_answer: C, is_correct: true}]。這樣做的好處是成績(jī)復(fù)核、人工批改的時(shí)候都能還原當(dāng)時(shí)用戶的作答情況不用再去聯(lián)查原始表。3.2 SSM框架配置Spring、SpringMVC、MyBatis的整合細(xì)節(jié)SSM的配置主要有三個(gè)文件spring-context.xml、spring-mvc.xml、mybatis-config.xml或直接通過(guò)application.properties。這里我不貼完整配置重點(diǎn)說(shuō)幾個(gè)容易被忽視但影響巨大的細(xì)節(jié)。第一Spring容器和SpringMVC容器要分清。spring-context.xml負(fù)責(zé)掃描Service、Daospring-mvc.xml只掃描Controller。如果掃描范圍重疊會(huì)出現(xiàn)事務(wù)失效的問(wèn)題。具體表現(xiàn)就是Service層沒(méi)加Transactional都正常加了反而報(bào)錯(cuò)或者不生效。第二MyBatis的駝峰命名映射一定要開(kāi)啟。數(shù)據(jù)庫(kù)字段都是下劃線風(fēng)格比如create_timeJava實(shí)體類都是駝峰風(fēng)格createTime如果不開(kāi)啟map-underscore-to-camel-case: true你查出來(lái)的結(jié)果全是null這個(gè)問(wèn)題能卡死人。第三數(shù)據(jù)庫(kù)連接池用Druid別用默認(rèn)的。Druid自帶監(jiān)控頁(yè)面在答辯的時(shí)候打開(kāi)監(jiān)控頁(yè)展示SQL執(zhí)行次數(shù)和耗時(shí)是很直觀的加分項(xiàng)。配置上注意設(shè)置initialSize和maxActive別全部用默認(rèn)值。!-- Druid數(shù)據(jù)源配置關(guān)鍵參數(shù) -- bean iddataSource classcom.alibaba.druid.pool.DruidDataSource property namedriverClassName valuecom.mysql.jdbc.Driver/ property nameurl valuejdbc:mysql://localhost:3306/math_contest?useSSLfalseamp;characterEncodingutf8/ property nameusername valueroot/ property namepassword valueroot/ property nameinitialSize value5/ property namemaxActive value20/ property nameminIdle value5/ property namemaxWait value60000/ /beanJDBC連接串里的characterEncodingutf8非常重要不加大概率會(huì)中文亂碼。你查出來(lái)的題目?jī)?nèi)容全是問(wèn)號(hào)排查一圈發(fā)現(xiàn)是連接串沒(méi)加編碼參數(shù)這種低級(jí)錯(cuò)誤太常見(jiàn)了。3.3 Flask端配置和跨域問(wèn)題處理Flask端如果要被Java端調(diào)用要注意兩個(gè)問(wèn)題一個(gè)是端口別跟Java的Tomcat沖突Java一般在8080Flask我習(xí)慣用5001另一個(gè)就是跨域問(wèn)題。雖然Java后端調(diào)用Flask屬于服務(wù)端到服務(wù)端的HTTP通信不存在瀏覽器跨域限制但如果哪天你的前端頁(yè)面直接調(diào)Flask接口就會(huì)遇到跨域。提前把跨域配置寫(xiě)上去避免后面臨時(shí)抱佛腳。from flask_cors import CORS CORS(app, resources{r/api/*: {origins: *}})還有一點(diǎn)Flask端的接口返回值統(tǒng)一用JSON格式并且在業(yè)務(wù)異常時(shí)也要返回JSON不要讓Flask默認(rèn)返回HTML錯(cuò)誤頁(yè)。給Flask寫(xiě)一個(gè)全局異常處理器捕獲所有異常后統(tǒng)一返回{code: 500, msg: 服務(wù)器內(nèi)部錯(cuò)誤}。4. 項(xiàng)目部署與調(diào)試過(guò)程中的經(jīng)驗(yàn)教訓(xùn)4.1 本地環(huán)境搭建JDK、Maven、Tomcat、MySQL一步步來(lái)環(huán)境搭建是很多新手第一個(gè)攔路虎。我見(jiàn)過(guò)太多人在裝環(huán)境這一步卡了三天。實(shí)際上按順序操作沒(méi)那么復(fù)雜。JDK裝1.8就行畢設(shè)項(xiàng)目不需要太高版本太高版本反而可能跟老項(xiàng)目的編譯配置不兼容。環(huán)境變量配JAVA_HOME和PATH裝完在命令行輸入java -version驗(yàn)證。Maven解壓后配置MAVEN_HOME關(guān)鍵是要換阿里云鏡像倉(cāng)庫(kù)否則下載依賴能等到天荒地老。Tomcat解壓版就行用IDE自帶的也沒(méi)問(wèn)題。MySQL安裝時(shí)要注意設(shè)置root密碼后默認(rèn)的認(rèn)證方式如果是caching_sha2_password老版本的JDBC驅(qū)動(dòng)連接會(huì)報(bào)錯(cuò)。解決辦法是在MySQL命令行里執(zhí)行ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 你的密碼; FLUSH PRIVILEGES;這一步不做的話你會(huì)在Tomcat啟動(dòng)時(shí)報(bào)Public Key Retrieval is not allowed錯(cuò)誤或者干脆連不上數(shù)據(jù)庫(kù)。4.2 數(shù)據(jù)庫(kù)初始化腳本的編寫(xiě)規(guī)范項(xiàng)目交付時(shí)數(shù)據(jù)庫(kù)腳本是必須的。很多人直接Navicat可視化建庫(kù)建表最后導(dǎo)出一份SQL交差。這沒(méi)問(wèn)題但有兩個(gè)地方要檢查。一是SQL里不要帶DROP DATABASE這種破壞性語(yǔ)句評(píng)閱老師或者你自己后面想演示的時(shí)候誤執(zhí)行一下數(shù)據(jù)全沒(méi)了。二是建表語(yǔ)句最好加上IF NOT EXISTS。另外強(qiáng)烈建議寫(xiě)一份data.sql初始化數(shù)據(jù)腳本里面放幾道例題、一個(gè)測(cè)試用戶、一場(chǎng)模擬競(jìng)賽。這樣別人拿到項(xiàng)目導(dǎo)入后不用自己錄入就能直接看到效果。數(shù)據(jù)的初始化和演示效果直接相關(guān)這一份腳本的價(jià)值比想象中大。4.3 修改配置文件的小技巧和注意點(diǎn)項(xiàng)目里配置文件包括jdbc.properties數(shù)據(jù)庫(kù)連接、log4j.properties日志、spring-mvc.xml靜態(tài)資源放行、視圖解析器等。改配置最容易出的問(wèn)題有三個(gè)屬性文件里的符號(hào)要轉(zhuǎn)義成amp;上面提過(guò)。IP地址或端口改了但前端JS里的Ajax請(qǐng)求地址還是localhost。文件編碼問(wèn)題properties文件默認(rèn)ISO-8859-1直接寫(xiě)中文注釋會(huì)導(dǎo)致亂碼。盡管不影響運(yùn)行但看著難受建議把IDE的properties文件默認(rèn)編碼改成UTF-8。日志這塊建議把log4j.properties里com.xxx.mapper這一級(jí)的日志級(jí)別設(shè)成DEBUG這樣MyBatis的執(zhí)行日志會(huì)打出來(lái)你能看到SQL是怎么拼的排查問(wèn)題非常有用。等項(xiàng)目上線了再調(diào)回INFO。4.4 前后端聯(lián)調(diào)我用過(guò)的幾個(gè)快速調(diào)試技巧聯(lián)調(diào)階段我積累了幾個(gè)特別實(shí)用的技巧分享給你們。第一Chrome開(kāi)發(fā)者工具的Network面板是上帝視角所有請(qǐng)求的狀態(tài)碼、耗時(shí)、參數(shù)一目了然。看到一個(gè)請(qǐng)求404先別急著改代碼看看URL是不是打錯(cuò)了、Controller里的RequestMapping路徑是不是沒(méi)配對(duì)。第二用Postman單獨(dú)測(cè)試后端接口。在寫(xiě)頁(yè)面之前先把所有接口在Postman里跑通確認(rèn)返回的數(shù)據(jù)結(jié)構(gòu)再讓前端對(duì)接。這樣出了問(wèn)題能快速定位是后端還是前端。第三Java端調(diào)用Flask接口如果報(bào)連接超時(shí)優(yōu)先檢查Flask服務(wù)是否啟動(dòng)、端口是否正確、防火墻是否攔截。命令行curl -X POST http://localhost:5001/api/analyze -d {}測(cè)一下就知道問(wèn)題在哪。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄根據(jù)我實(shí)際看過(guò)和經(jīng)歷過(guò)的情況整理了一份高頻問(wèn)題速查表每一個(gè)都是真實(shí)發(fā)生過(guò)的。問(wèn)題現(xiàn)象根本原因解決方案登錄時(shí)輸入正確密碼提示“密碼錯(cuò)誤”密碼加密方式不一致比如注冊(cè)用了BCrypt、登錄用MD5統(tǒng)一加密算法保證注冊(cè)和登錄走同一套用戶頭像圖片上傳后無(wú)法顯示上傳路徑是相對(duì)路徑前端訪問(wèn)的基礎(chǔ)路徑不對(duì)將上傳目錄映射成虛擬路徑或用絕對(duì)路徑拼接URL競(jìng)賽到了開(kāi)始時(shí)間仍顯示未開(kāi)始狀態(tài)判斷用的是管理員設(shè)置的靜態(tài)狀態(tài)沒(méi)有按當(dāng)前時(shí)間實(shí)時(shí)計(jì)算每次請(qǐng)求時(shí)用LocalDateTime.now()對(duì)比開(kāi)始時(shí)間批量導(dǎo)入Excel時(shí)報(bào)IllegalStateExceptionPOI讀取cell類型沒(méi)有做判斷統(tǒng)一寫(xiě)單元格值轉(zhuǎn)換方法先判類型再取值前端Ajax獲取數(shù)據(jù)后頁(yè)面空白后端返回的JSON字段名和前端取的字段名不一致統(tǒng)一使用駝峰命名且前后端約定好字段名Flask端接口偶發(fā)CORS報(bào)錯(cuò)前端跨域調(diào)Flask接口且未配置CORS用flask-cors全局開(kāi)啟指定允許的來(lái)源部署后MyBatis查詢字段全是null忘了開(kāi)啟下劃線轉(zhuǎn)駝峰映射mybatis配置中開(kāi)啟map-underscore-to-camel-case中文亂碼頁(yè)面全是問(wèn)號(hào)連接串沒(méi)加characterEncodingutf8或數(shù)據(jù)庫(kù)編碼不對(duì)檢查JDBC URL、數(shù)據(jù)庫(kù)建庫(kù)字符集、頁(yè)面編碼統(tǒng)一UTF-8Tomcat部署war包后訪問(wèn)報(bào)404項(xiàng)目訪問(wèn)路徑不對(duì)沒(méi)加項(xiàng)目名URL訪問(wèn)前加/項(xiàng)目名或者把war包名設(shè)為ROOT除了表格里的我再補(bǔ)充幾個(gè)比較隱蔽的坑。第一個(gè)是并發(fā)訪問(wèn)session的問(wèn)題。有些同學(xué)在Controller里直接request.getSession().setAttribute(user, user)然后在攔截器里取。如果同時(shí)開(kāi)兩個(gè)瀏覽器標(biāo)簽頁(yè)登錄不同賬號(hào)后登錄的會(huì)把先登錄的頂?shù)?。解決辦法是Session里存用戶ID而不是整個(gè)用戶對(duì)象需要用戶信息時(shí)再查庫(kù)。這樣即使被頂?shù)粢仓皇嵌嗖橐淮螖?shù)據(jù)庫(kù)邏輯上不會(huì)串。第二個(gè)是競(jìng)賽答題頁(yè)面刷新時(shí)倒計(jì)時(shí)重置的問(wèn)題。這個(gè)特別容易出問(wèn)題。用戶進(jìn)入答題頁(yè)面后如果按F5刷新頁(yè)面重新加載如果倒計(jì)時(shí)是JS的setInterval從零開(kāi)始算就相當(dāng)于時(shí)間重置了用戶可以無(wú)限刷新延長(zhǎng)答題時(shí)間。正確做法是后端在用戶進(jìn)入答題狀態(tài)時(shí)記錄一個(gè)開(kāi)始時(shí)間戳前端每次獲取時(shí)間都用“截止時(shí)間減去當(dāng)前服務(wù)器時(shí)間”來(lái)計(jì)算剩余時(shí)間。刷新頁(yè)面只是重新拿一下剩余時(shí)間而已不會(huì)占便宜。第三個(gè)是文件上傳的安全問(wèn)題。數(shù)學(xué)競(jìng)賽網(wǎng)站里用戶頭像上傳功能看起來(lái)很普通但如果沒(méi)做文件類型校驗(yàn)惡意用戶上傳一個(gè)JSP或PHP文件然后拼一個(gè)路徑去訪問(wèn)就能getshell。哪怕只是做個(gè)課設(shè)也應(yīng)該對(duì)上傳文件后綴做白名單校驗(yàn)別用黑名單。同時(shí)重命名文件為隨機(jī)字符串不要保留用戶原始文件名。6. 從課設(shè)到答辯項(xiàng)目打磨與展示的經(jīng)驗(yàn)分享項(xiàng)目做完代碼部分離交付還有兩個(gè)重要的收尾工作文檔撰寫(xiě)和答辯準(zhǔn)備。這部分往往被低估但它直接影響最終成績(jī)。LW也就是畢業(yè)論文或設(shè)計(jì)說(shuō)明書(shū)的結(jié)構(gòu)一般是緒論、相關(guān)技術(shù)介紹、需求分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)、系統(tǒng)測(cè)試、總結(jié)。寫(xiě)的時(shí)候技術(shù)介紹不要大段抄書(shū)要結(jié)合你項(xiàng)目里的場(chǎng)景寫(xiě)。需求分析要用用例圖系統(tǒng)設(shè)計(jì)要有E-R圖這些我建議用ProcessOn先梳理思路再放到文檔里。代碼的核心邏輯截圖加簡(jiǎn)短說(shuō)明就可以了關(guān)鍵是要展示你的思考過(guò)程比如“為什么選MySQL不選Oracle”“為什么組卷用權(quán)重隨機(jī)算法”。調(diào)試文檔DD我習(xí)慣寫(xiě)成帶問(wèn)題痕跡的記錄而不是一個(gè)純命令清單。比如某一天我遇到了什么報(bào)錯(cuò)、排查思路是什么、最后怎么解決的。這種文檔面試或評(píng)閱時(shí)特別好用因?yàn)榭吹贸瞿阏娴氖窃贒ebug而不是照著教程敲。答辯前把項(xiàng)目的核心亮點(diǎn)提煉成三句話。比如“我的系統(tǒng)基于SSM框架構(gòu)建主站為Java實(shí)現(xiàn)同時(shí)引入Python Flask作為數(shù)據(jù)分析微服務(wù)實(shí)現(xiàn)了跨語(yǔ)言架構(gòu)的協(xié)作”。這句話能背下來(lái)就贏了。最后再分享一個(gè)實(shí)操中的小技巧在做完項(xiàng)目后把整套環(huán)境的啟動(dòng)步驟寫(xiě)成一個(gè)README.md文檔放在項(xiàng)目根目錄。里面寫(xiě)清楚從數(shù)據(jù)庫(kù)初始化到Tomcat啟動(dòng)、從Flask服務(wù)啟動(dòng)到瀏覽器訪問(wèn)的每一個(gè)步驟。這個(gè)文檔既是給別人看的也是給以后的你自己看的。等過(guò)了一個(gè)月再回頭看項(xiàng)目你會(huì)發(fā)現(xiàn)沒(méi)有這份文檔連你自己都忘了該怎么啟動(dòng)。數(shù)學(xué)競(jìng)賽網(wǎng)站這類項(xiàng)目技術(shù)點(diǎn)不算深但勝在業(yè)務(wù)清晰、模塊完整是對(duì)SSM框架、數(shù)據(jù)庫(kù)設(shè)計(jì)、前后端交互能力的一次全面檢驗(yàn)。只要把用戶、試題、競(jìng)賽、成績(jī)這四個(gè)核心模塊做扎實(shí)再點(diǎn)綴一點(diǎn)Flask輔助功能和優(yōu)秀的文檔這個(gè)項(xiàng)目就能成為一份非常拿得出手的畢設(shè)作品。做項(xiàng)目的過(guò)程中踩的那些坑調(diào)整的那些細(xì)節(jié)其實(shí)比最后的分?jǐn)?shù)更有價(jià)值工作后面試聊起這些經(jīng)歷才是真正能打動(dòng)人的東西。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲综合第一页| 亚洲欧美在线观看免费| 日本欧美不卡| 久久激情综合| 日日骚一区二区三区| 最好看的中文字幕在线2018| 97爱啪| 中文字幕精品日韩中文字幕| 99热国产| 日韩一999精品| 国产精品福利视频| 男人网站婷婷| 欧美色综合影院| 亚洲精品白丝| 色噜噜狠狠色综合日日| 综合 欧美 亚洲 日本| 欧洲黄色网| 久久精品国产亚洲妲己影视| 成人久久精品| 亚欧高清在线| 亚洲色婷婷久久久综合日本| 亚洲中字慕不卡| 久9热| 成人线上超碰| 97在线青| 嗯嗯嗯啊啊啊操的我好爽| 不卡中文字幕aⅴ在线| 九九九九免费视频| 插入综合网| 国产人妖的免费的视频| 欧美性高潮| 欧美 亚洲 另类 综合| 久久五月份| 日逼逼免费看| 日韩综合无码色欲vv| 中文字幕一二三| 亚洲在线观看| 日本布卡一区二三区| 亚洲国产一级中文综合久久天堂在线免费观看 | 琪琪精品免费一区二区三区 | 国产精品视频精品一二| 国产97视频免费观看| 78精品在线| 日产中文字幕2020| 久草网站免费在线观看| 极品销魂美女一区二区 | 国产操伦| 中文字幕一区二区三区字幕| 97香蕉网| 国产日韩中文字幕欧美| 大吊色| 精品v1区| 国产精品一区在线播放| 欧美熟女妇同| 熟妇最新先锋一二三区| 九九热在线精品视频| 操操逼操操逼操操逼逼| 欧美性爱视频免费一区一A| 蜜臀99久久精品久久久懂爱| 插入逼91| 丝袜 中出 制服 人妻 美腿 中文字幕| 九九热超碰97亚洲最新香蕉 | 午夜无码熟妇丰满人妻| 女人一区| 乱码人妻一区二区三区| 九九九久| 99久久国产精品免费高潮| 97色网| 小视频国产| 老熟女91| 黄色区免费观看中文字幕| 18禁的网站在线| 影音先锋中文字幕日本好一区二区 | 精品超碰中文在线| 精品人妻夜夜草| 麻豆视频test| 天色综合网| 国产AV人人 夜夜人人澡| 欧美久久人妻少妇一区二区| 少妇特黄一区二区三区| 997色在线| 极品肉射| 啪啪性爱免费视频| 岛国免费黄色网址| 亚洲日韩一区电影| 天天操女人| 91N五十路| ai欧美亚洲小说| 欧美激情精品久久久久久| 欧美 亚洲| 国产亚洲精品第一最新| 加勒比东京热五月天天堂网| 久久狠狠色噜噜狠狠狠狠97| 999色欧美中文字幕| 黑人精品久久97| 中文字幕诱惑制服人妻丝袜美丝袜美| 97在线免费视频观看| 亚洲国产精品99久久久| 中文字幕精品丝袜| 日韩av在线精品观看| 日本成人在线不卡一区二区三区| 97摸视频| 亚洲情色在线| 后入式999| 免费操逼91| 天堂8在线新版官网| 小泽玛利亚一二三| 中文三一区| 乱伦1色页| 欧美综合站| 伊人在线大香蕉视频久久| 欧美日韩另类在线播放| 78综合网| 亚洲高清欧美总合| www.夜夜操| 天天综合网国产| 蜜桃传媒一区二区亚洲| 国产精品久久久啊| 人妻天天夜夜爽一区二区| 色踪合AV| 国产精品自在线发布| 综合熟女| 超碰97久久观看| 一级做a爰片性色毛片久久| 欧美日综合| 亚洲素人综合| 成人精品视频一区二区| 91精品伊人久久久大香线蕉91| 久久av色| 乱欲性色| 97jingpin| 无码精品人妻一区二区三区妖精| 亚洲天堂资源网| 国产小炒后入式| 香蕉大久久久| 超碰97男人| 香蕉免费一区二区三区不读| 国产嫩草精品A88AV| 丁香六月激情| 亚洲欧美日韩中文久久自慰| 婷婷久久综合久| 伊人久大| 一区二区三区日韩欧美 | 天天内射| 国产精品久久成人免费| 情色五月天就去干| 蜜伊人色综合97| 人人爱人人乐人人操| 97干com| 天天看天天干| 精品无人区麻豆乱码1区2区图片| 五月色网| 91天堂| 激情五月综合| 日本熟女不卡视频| 久久久性少妇| 蜜桃色色网站视频三区| 日韩操逼性鲍| 婷婷丁香人妻| 欧美变态激情网| 欧美强奸乱能| 精品久久97| 欧美日韩国产中文超碰| 26uuu欧美日韩| 国产高清在线自在拍69| 今日头条成人一区二区三区四虎精品| 操人91| 国产品精品自在在线午夜免费| 在线综合 亚洲 欧美中文字幕| 思思热在线cao| 欧美亚洲在线| 日本男人插女人的逼黄色| 国产亚洲国产超碰| 欧亚韩国999| 亚洲性爱高潮影院| 国产精品蜜乳AV| 丝袜美腿亚洲| 日本精品加勒比海一区| 欧美日韩黄色片一区二区三区四区人与兽做爱| 久草免费在线一区二区| а√天堂资源官网在线资源| 男啪女色黄无遮挡免费观看| 91青青在线| 亚洲狼狼干综合1| 自拍偷拍 日韩无码| 亚洲国产精品久久AV| 青青草中出视频| 粉嫩国产精品久久久| 色色色色电影网| 免费αV在线视频| 人人操人人精品影片| 国产乱弄免费在线视频。 | 久久只有精品一区二区三区| 欧美日韩黄片精品在线| 九九九国产| 97超碰总站| 67194无码不卡| 亚洲AV永久无码一区仙野| 亚洲黄色视频在线观看视频| 欧美综合自拍| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | yy少妇精品久久| 91天天日| 美女露胸露屁股| 国产成人自拍视频在线| 强奸乱伦日韩AV| 1级黄色夫妻对换性交免费看| 亚洲自拍97| 综合网亚洲1| 日韩视频小说在线观看| 综合一区二区影视| 亚洲超碰综合网| AV99热18这里只有精品| 亚洲91网。| 国产精品久久久久久夜夜夜| 亚洲性综合9| 五月婷婷六月激情| 人妻激情另类| 啊啊啊啊啊在线观看网址 | 婷婷成人久久久精品| 五月丁香六月激情| 嗯嗯啊啊视频在线看| 操一区| 五月天综合网| 青青草亚洲一区| 日本青青草在线| 欧美中文字幕一区| 韩日精品福利视频一区不卡在线免| 亚洲色图加勒比| 麻豆精品A片免费观看| 亚洲综合码| 超碰性爱97| 麻豆乱码久久精| 大肉棒导航| 五月天人妻综合| 性生活性生大爱77AV国产| 人妻激情视频| www亚洲欧美| 手机午夜电影神马久久| 2019天天干天天操| 混色激情av| 99青青草国产视频| 99re欧美| 天天操天天射天天日| 亚洲成a人v欧美综合天堂下载 | 久久黄黄| 北野未奈加勒比av| 欧美色干| 欧美日韩第一页| 五月天色五月| 一区二区三区四区久久视1| 亚洲综合伊人| 蜜臀久久99精品久久久久久无删减 | 国产传媒美日韩av| 精品人妻一区二区三区不卡断 | 国语国产操逼伊人AV网| 五月天开心网| 亚洲第一二区另类图| 日本ZZ高免费A级视频| 国产一区在线看| 免费公开人人操| 色色色综合网| 激情四射婷婷六月天| 97日韩超碰超碰中文字幕| 日韩中文字幕视频| 激情第四色| 黄色不卡视频| 久久人妻| 99re视频在线观看这里只有精品| 超碰在线第一页| 久久久九九九| 九九香蕉网| 性色国产东北露脸精品视频| 超碰91在线| 国产 热久久久久国产精品| 欧美午夜精品久久久久久3D| 九草九九九| 高清有码一区二区| 青青草九九九九九| 色综合大香蕉| 操婷婷逼| 四季av一区二区凹凸精品小说| 日本1区2区不卡视频| 日韩人妻精品久久久久| 天天色综合影视网| 丝袜熟女一区二区三区| 亚洲免费97免费| 精品久久久av无码免费| 老鸭窝亚洲毛片| 亚洲高潮影院| 国产 三级自拍| 9精品久久| 国产高清在线观看欧美| 最新精品久久蜜桃| 97欧美综合网| 全球成人中文在线| 色99久草| 欧美99热| 亚洲综合色图欧美| 狠狠色综合网| 91丨人妻丨国产丨丝袜| 亚洲图片欧美91N| 青草成人免费视频一COm| 99热超碰在线| 欧美精品激情| 91女网站| 欧美福利视频啊啊啊啊| 欧美熟女妇同| 欧美国产伊人久久久久| 亚洲欧美天| 亚洲高清在线| 国产福利合集| 91黑丝少妇| A一区片| 神马久久久久久久久久| 欧美成人一级免费电影| 色色97爱| 久久手机视直播| 激情小说图片亚洲首页 | 日韩 国产 欧美自拍| 夜夜操av亚洲一区二区| 国产绿奴视频在线观看| 成人日本片久久久蜜桃| 香一区二区三区| 手机午夜电影神马久久| 97se综合| 67914亚洲精品| 久久久999| 一二三四视频在线社区中文字幕| 丁香婷婷久久 | 亚洲高潮影院| 91色黑人少妇| 曰韩av中文字幕专区| 婷婷五月天激情四射| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 久久直播国产| 国产深喉视频一区二区| 日本黄色天堂| 色一射色一射| 97色干| 亚洲天堂男人| 日夜尻逼网| 国产极品999| 激情网色| AV一起草在线| 日韩欧视频| 黄色十八禁网站| 午夜精品探花| 自拍偷拍国产欧美日韩韩| 人妻美腿丝袜日韩| 少妇天堂网络| 猛交交| 在线强奷到舒服的无码视频| 久久久久九九九九| 又黄又硬又粗又长国产视频| 宗合情欲网| 国产女人高潮嗷嗷嗷叫小说| 屌妞视频久久久久久久久久久久| www.色五月| 日韩成人在线性爱视频| 思思热一热婷婷热一热| 色欧洲| aaaa少妇高潮大片| 亚洲码在线中文在线观看| 国产AV天美传媒一区二区三区 | 动漫区日韩区欧美区| www.超碰在线| 夜嗨影院| 成年人网站在线免费观看| 欧美色老汉| 九九国产| 91在线|亚| 日韩av乱伦| 乱伦av国产| 久热精品在线国产| 欧美午夜视频免费观看| 极品综合| 无码高清少妇久久| 国模无码人体一区二区三| 91美| 伦理第一页| 欧美日韩中文字幕不卡| 亚洲人精品久久久| 激情文学小说一区二区| 色天使AV天堂| 精品免费成人久久| 欧美第五页| 中文字幕免费在线观看| 乱操9999| 国产精选视频| 天天亚洲| 亚洲人妻在线精品| 国产精品一区二区手机看片| 亚洲最新Av| 国内毛片热久久思思热| 欧美一级黄色免费专区| yaouchengrenav| 国产成人99久久亚洲综合| 超碰精品国产无码| 精品九九国产无码| 无套内射性感少妇视频| 久热9| 超踫中文字幕| 青久操| 久久99干一本高清| 91美女视频。| 欧美色999| 大JI巴好深好爽又大又粗视频| 老司机午夜精品视频| 1769国内精品视频| 5278欧美一区二区三区| 久操大香蕉手机视频在线看| 天天综合欧美综合| 区自美91| 国内偷拍精品一区二区| 久草免费在线一区二区| 极品五月天噜噜| 婷婷五月天久久精品视频一区二区三区 | 操我啊啊啊啊啊| 97玖玖超碰| 亚洲91射| 在线αⅴ| 婷婷在线视频| 天美精品原创av片国产| nuu12国产麻豆精品| 人妻丝袜肏逼| 久久尹人大香焦视| 欧美日日操| 免费看一级a性色生活片久久无| 青青草日韩无码| 亚洲精品 超碰| 蜜臀99久久精品| 亚洲国产精品无码AV久久| 在线免费观看日韩一区| 女人天堂AV五区在线| 五月开心久久AV官网| 亚洲人妻精品一区二区| 久久久亚洲欧美综合| 成人资源中文字幕在线观看天天| 欧美在线视频播放| 在线观看亚洲成人精品| 久久久999日本大片| 91精品操美女| 色综合天天| 精品久久久久久亚洲| 97se综合| jk白丝没脱就开始啪啪| 美女的肌被草喷水视频| 亚洲全色网| 日韩性爱再线视频| 亚洲人久久久网| 亚洲精品国语在线播放| 盗摄 精品 另类 一区| 国产精品久久久久久9999| 综合伊人网12色| 婷婷午夜| 这里只有97精品| 成人美女av| 成人五月天色网| 操一操摸一摸| oumeisetu综合| 欧美色97| 女人爽到高潮潮喷18禁网站| 欧美小说区视频区| 日韩黄色成人性爱| 久草电影网| 福利五区| 久久精品女同亚洲女同13| 九久久九精品视频| 色综合久久夜色精品国产天堂| 男人的天堂三级| 夜夜影视四色| 嗯~啊~快点 死我视频免费看网站| 国产 丝袜 欧美中文 另类| 久jiu久神马影院| 自拍大香蕉乱插| 精品久久久久瑟瑟| 97亚洲欧美| 丰满人妻-区二区三区免费| 美女爽到高潮91| 一区二区娱乐网站| 超碰97男女| 九九热免费视频| 男人的天堂va| 在线天堂999| 国产成人99久久亚洲综合| 大香蕉伊人在线成人AV在线观看| 免费看片黄| 日日AV加勒比| 九月丁香综合网| 亚洲欧美91√| 五月天婷婷综合| 色五月av| 麻豆婷婷成人一二三| 国内精品久久人妻性色av| 成人热久久精品| 国产精品无码av| 人妻91少妇| 91九久| 丰满美女一级毛片在线播放| 亚洲无限观看| 香蕉久久国产AV一区二区| 蜜臀99久| 日本日日色视频| 亚洲欧美自拍偷拍| 色噜噜国产精品视频一区二区| 久久天天性久久伊人| 色y情视频免费看| 四虎免费视频| 国产视频一区二区在线观看| 1禁看欧美黄片免费看| 精品免费囯产一区二区三区| 日本熟妇熟色97一本在线观看| 国产v片在线免费观看| 婷婷九月国产| 97亚洲国产影视| 91社区拍啪人妻| 97 色综合| #NAME?| 色妹子A V| 精品久久久久久中文| 国产免费内射视频| 色偷综合| 亚洲欧美爆| 色婷婷九月| 自拍偷拍亚洲熟女妇人精品| 91亚洲综合在线| 韩日精品福利视频一区不卡在线免| 99视频内射三四| 中文字幕国产| 国产视频人人网| www久久精品| 一区二区精品更新提醒| 婷婷五月天伊人| 久操网视频| 国产白丝精品在线观看| 国产91美女视频| 97er欧美性| 亚洲另类色图片| 黑丝内射一区二区三区| 凸凹视频在线观看| 亚欧免费| 精品国产av一区二区三区四区入口| 97操97干| 久久99久久99精品天美传媒棢·纸:.| 精品小视频在线| 91九九九馒头| 天天91~综合入口| 911粉嫩人妻| 一区二区三区四区免费视频| 韩三级a视频在线观看| 色悠久| 亚洲 欧美综合| 日本 情色 1区2区3区| 亚码人妻| 性爱欧美五月| 日夜干射色啊| 国产白丝在线| 久神马| 欧亚日韩一区在线| 中文AV制服乱伦| 欧美天天综合在线| 凹凸 69堂 在线播放| 国产自啪精品视频网站黑丝| 九九热午夜欧亚国产视频| 粉嫩久久久久| 久久九操在线观看| 人妻人久久精品中文字幕| 人妻素股| 亚洲欧美综合网| 91N综合网| 欧美在线电影| 亚洲色宗合| 丁香色狠狠色综合久久小说| 国产精品第一区第一页| 亚洲国产av中文字幕久久| 国产精品区在线12p| 日韩99精品视频综合区| 国产男人又猛又粗又爽| 大香蕉伊人久久| 91 手机在线播放 绯色| 日本丝袜美腿人妻九九| 色网综合网| 欧美九九九| 91香蕉国产尤物视频| 国产在线能看的你懂的| 成人aⅴ一区二区三区| 国产激情在线| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 欧美性爱一区二区| 天堂69亚洲精品中文字| 亚洲欧美日韩精品久久久一区二区 | 99性视频| 天天影视激情欧美| 97草草| 久久二| 操操操五月天婷婷丁香影院| 高跟丝袜AV专区国产| 久久午夜伦| 第四色色综合91| 狠狠干妹子| 国内伊人久久久久久网站视频| 国产精品精品系列在线观看| 啪一啪免费视频| 激情六月天| 国产久久一区二区| 亚洲黑人在线| 国产人妻天天干精品| 久久亚洲影院一区二区| 在线免费试看60秒| 亚洲国产美女久久久久 | 一区中文字幕二区日韩| 熟妇高潮二区三区| 成年人黄色视频免费| 亚洲精品a人片在线观看视| 超碰碰小说97| 91骚熟女| 看黄片视频免费| 精精夜夜| 91日产桃蜜| 久操网视频| 亚洲情色1区| 加勒比综合在线| 一级aaaaa欧美中文字幕录像片| 日本精品一区三区| 啊啊啊啊啊啊啊啊啊在线观看| 青青色在线观看| 免费一级视频特黄色大片| 天天舔九色婷婷| 国产精品免费久久久久久久久久| 亚洲一区二区性爱电影| 四虎在线播放| 国产美女口爆吞精视频| 亚欧精品久久久久久久久久久| 偷拍亚洲情色| 国产亲戚伦亲在线| 日本九九久久99| 久久精品久久久久久久久| 天天爽爽爽爽| 国产99999| 99热精品在线播放| 欧美综合综合| 天天躁日日躁AAAXX| 精品人妻一二三四区视频| 成人av在线播放| 九一综合精品视品av| 又大又大又大又粗爽高潮观看| 五月激情在线| 91伊人| AV天天在线观看| 91综合网站| 亚洲图片欧美91N| 夜色91| 久久黄色网址| 熟妇综合一区二区三区| 精品久久久久黄少妇| 少妇被c 黄 免费观看| 色爽爽文学| 久久精品人妻一区| 歐美一級亂黃99在綫精品| 97无码视频在线播放| 啊啊啊好湿久久| 韩国手机不卡无码三级视频| 操一区| 草草网站影院白丝内射| 精品一区99999| 久久98| 78超碰| 久九九九九九九热| 亚洲精品性爱片| 国产精品第一页国产大屁股视频免费区i| 岛国大片在线观看网站入口| 欧美性五月| 99性爱视频| 国产精品美女久久久久久网站| 大香蕉在线视频重口味毛片在线| 精品高清一区二区三区三州| 91精品少妇搡搡搡| 中文字幕二区日韩天堂| 97超碰磁| 日本熟妇自慰性高潮一区二区三区| 五月天婷婷基地| 精品免费视频国产一区| 国产熟女精品区| 日韩av乱伦| 亚洲 无码 偷拍| 后入福利视频| 伊色综合天堂色97| 国产自产自拍| 精品午夜福利| 9久精品视频在线观看| 亚洲欧美国产日本一区二区三区| 国产一国产一级毛片古装| 亚洲综合九| 五月天色图影视| 亚洲色图尤物视频| 女人香蕉久久毛毛片精品| 欧美天堂日韩三级国产传媒| 中国一区二区亚洲人妻| 日韩兔费看黄片| 999九九九九国产动| 美女露胸露奶头| 一级啊性爱在线视频| 男人的天堂 在线一区| 国产精品国产| 亚洲男人的天堂一区二区| 日本一级性爱| 亚洲激情综合另类男同| 天天肏天天干| 97视频一区| 9久久美女首页| 97视频观看| 成人片在线播放| av强奸乱轮| 91色色网站| 中文字幕1区2区| 久草精品视频| 欧美国产一区二区三区麻豆传媒| 久久,精品一二三| 性爱av网站| 国产精品亚洲天堂网址| 免费A片三p视频| 亚欧洲日韩国产精品| 香蕉色网| 超碰97首页| WWW.加勒比人妻一区不卡.com| 91蜜臀在线久久久久| 91一起操| 91精品大奶人妻| 1禁看欧美黄片免费看| 成年人三级黄色片视频| 日本性交操一区二区不卡系列| 97久久精品| 丝袜足交视频| 一区二区三区四区理论片| 日韩欧美~中文字| 亚洲91大片| 桃色人妻在线视频| 青青草国产盗摄一二三区| 精彩国产视频播放1区2区| 嗯嗯嗯啊啊啊在线免费观看| 五月婷在线| 亚洲天堂,男人| 狠狠干狠狠色| 2020中文字幕| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 四虎影库国产精品免费| 超碰调教97| 中文字幕国产精品1区| 天无日色综合| 精品久久99| 美国久久一二三四| 午夜毛片高清免费不卡| 伊人亚洲综合| 一区二区播放| 亚91网| 囯产精品久久久久久久久久二区三区| 久一区久久蜜桃| 久久九色| 国产精品一区二区亚洲人成毛片| 2020中文在线一区二区三区| 久久精品国产亚洲AV嘿嘿| 亚洲综合精品国产一区| 国产福利第一视频| 亚洲 91 在线| 一区二区三区蜜桃成人撸久久东京热| 偷拍在线观看视频| 熟女高潮精品一区二区| 少妇的嫩逼图片| 亚洲一区日韩精品中文字幕 | 亚洲.欧美.丝袜.中文.综合| 亚洲欧洲视频小说在线观看| 99抽插| 日韩综合第八区国产精品| 欧美美女视频| 草莓精品视频在线免费观看| 久久久久亚洲Aⅴ无码| 欧美男人一区| 级品肉射| 91欧美网| 自拍偷拍亚洲熟女妇人精品| 动漫爆乳3D奶水一区在线观看 | 清纯唯美亚洲综合| 亚洲成人性爱网站在线播放| 91精品国产高清久久久久久,亚洲成人| 69精品人人人人| 老熟女区| 欧美综合1性辶| 家庭乱伦国产| 熟妇熟女视频一区二区三区| 密臀AV在线| 亚洲色交| 强奸乱伦Av网| 日本免费不卡二区| 国产97/欧美| 国产福利视频精品视频| 一块操欧美性爱| 青青草手机在线免费观看| 精品美女少妇一区二区| 中文精品一区二去| 久久极品伊人| 97草草| 免费av在线播放二区| 久久97| 国产精品一区二区后入| 日产操逼| 99视频内射三四| 天天综合网~91综合网| 强奸抽插av| 日日爽夜夜爽| 欧美特黄视频网站| 草草影院日本第一页| 亚洲人精品久久久喷水| 天天影视91看看| 日韩性爱毛片操骚逼| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 五月婷视频| 久久久久久久久久久久欧美日| 欧美狠狠干| 狠狠干,狠狠操| 日本 情色 1区2区3区| av天堂精品久久| 成人熟女视频一区二区三区| 亚洲无码日韩电影| 中文字幕 国产 精品| 久久精品国产精品| 日本操逼视频不卡直接放| 精品人妻1237| 国产精品日日摸夜夜添骚逼| 九九色精品| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 欧美97爱| 欧美后进式| 久久久久99精品成人片蜜臀| 高清在线偷拍自拍视频| 97国产精品久久久久| 操高情无码| 色网综合网| 无色无码| 2020天天色综合| 欧美在线播放aaaa| 亚洲色图A| 日韩欧美视频青青| 91人人| 色av中文字| 一级毛片电影免费看| 夜夜操夜夜爽夜夜高潮| 日韩熟女操逼| 亚州色图欧美| 欧亚性爱啪啪| 国产精品午夜福利| 狠狠操夜夜操蜜桃视频三区| 九九热三级片| 亚洲男人的天堂V| 97人人夜夜精品视频| 欧美少妇色综合| 日韩亚洲Av人人夜夜澡人人爽| 久久视频,这里只有精品 | 超碰九7| 99热色这里只有精品| 麻豆国产精品午夜视频| 国产熟妇一区二区| 风流老熟女一区二区三区l| 美女91av| 亚洲色图大香| 婷婷干黄色| 亚洲色图伊人网| 91精品久久综合熟女| 精品久9| 求求你操操我| 色爱三区| 久久久96| 天天色怡春院| 六月丁香婷| 老熟女乱伦一区| 亚洲欧美综合网站| 狠狠中文字幕| 亚洲伊人a线观看视频| 一本色道久久综合狠狠操| 婷婷日韩一区二区三区中文字幕在线| 男啪女色黄无遮挡免费观看| 涩涩久久精品| 91国产精品在线看| 一区二区三区黄色片a| 久久男人| 国产AV天美| 国产福利精品最新在线| 88xx成人精品视频| 欧美日韩精品久久久久东北老熟妇| 国产原创自拍| 久久精品视频28| 岛国1区2区3区在线观看| 日本免费一区二区不卡| 91人妻超碰| 欧美另类精品xxxx| 精品人妻一区二区免费蜜桃视频| 97免费视频在线观看视频| 日日夜夜天天| 1禁看欧美黄片免费看| 久久男人天堂| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 在线女人91| 色青青久久影视| 午夜超爽| 国产白丝精品在线观看| 国产97/欧美| 午夜后入| 欧美成人亚洲精品| 吻戏激情性巴克| 囯产乱伦一区二区三女 | 少妇被玩视频二三区| 色婷婷久久| 国产剧情AV不卡在线观看| 最新日本中文字幕| 神马麻豆福利院| 日韩综合第八区国产精品| 青女在线| 久久綜合很很很| 800zy一区二区| 美女刺激久久国产欧美| 性爱1区| 黄色网址在线免费观看| 欧洲亚洲国产综合在线| 97精品一区二区视频| 人妻91少妇| 人妻熟妇一区二区三区| 九九九草| 大屁股熟女一区二区三区| 欧美日本天堂| 日本啊啊啊啊啊视频| 天堂av2019| 最新AVzaixian| 久久,精品一二三| 九九精品热| 丁香六月综合激情| 强奸xx国产| 成人午夜视频免费播放| 强奸a片网| 国产无套粉嫩白浆在| 欧美疯狂做爰xxxx| 欧美顶级黄片AAAAA在线免费看 | 大白逼三四级| 四虎精品一区| 成人情色综合网| 婷婷久久久精品| 骚货操死你| 久久久91| 亚洲日韩电影| 国产强奸乱伦第1页| 久久成年片色大黄全免费网站| 婷婷婷婷婷婷久久久久| 国产又黄又粗又猛大片 | 婷婷另类小说| 97超碰总站| 玖色av| 伦理第一页| 久久久少妇| 国产精品久久aV| 翔田千里AⅤHD无码| 欧美伊人久久综合网| 国产AV无码AV| 五月天大香蕉| 2001天天操| 香港日本韩国人妇99www.wccm20| 欧美国产一区二区三区麻豆传媒| daxiangjiao你懂的| 人妻另类| 国产精品爆乳懂色蜜乳| 人妻中文字幕精品无码| 五月婷婷丁香中文字幕| 夜色五月天| 成人热久久精品| 在线 欧美 亚洲| 好属操| 国产精品点击进入在线影院| 强奸乱伦日韩AV| 久久精品人体AV| 妇人噜噜| 超碰碰97资源站| 四虎国产精品永久入口| 亚洲成熟国产精品美女| 婷婷色婷婷| 国产午夜视频| 97久操| 在线有码中文字幕| 中文字幕av乱伦| 97激情97激情| 欧美黑人日韩少妇色情| 最新亚洲黄色免费电影| 色官网色综合| 中文啪啪视频| 搡老女人老91妇女熟女| 青草精品视频-日本久久久久网站| 嫩呦国产一区二区三区AV| 天天色播| 91爱做| 高清孕妇孕交 交| 93人人操人人| 久久色一区| 色网亚洲人| 日韩黄片视频试看| 91亚州日韩高清| 爱丝福利| 日韩欧美成人午夜福利| 日日夜夜天天| 韩国嫰模上门援交视频| 国内毛片热久久思思热| 亚洲乱熟女一区二区三区大香蕉| 双插在线| 欧美日韩中文字幕人妻| 日本操BAV| 国产AV人人 夜夜人人澡| 福利视频网站| 成人三级片无码| 超碰碰激情97+久| 男女啪啪网站免费视频| 色色五月丁香| 天天在线91| 神马久久久久久伦理片| 乱理日韩中文| 啊啊啊啊啊啊在线观看| 久久ww| 超碰偷拍| 中日韩熟女| 日韩人妻无码精品系列| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 欧美日韩岛国大片在线观看| 骚逼一区二区| 国产探花日韩援交| 色婷婷成人综合| 国产精品人妻无码久久久互動交流 | com 首页 18岁 禁区 女优 免费 精选 同城| 久久久久久亚洲Av无码精| 91超碰人人| 久久久一区二区三区四区五区| 国产成人+综合亚洲+天堂| 色97综合中文字幕| 欧亚乱色熟女一区二区| 中文字幕诱惑制服人妻丝袜美丝袜美| 第四色奇米影视777| 久久精9| 韩国手机不卡无码三级视频| 夜夜嗷嗷一区二区| 男女猛烈无遮掩视频免费软件| 亚洲狼狼干综合1| 国内毛片热久久思思热| 久久精品老司| 国产一区二区三区久久久精品| 97干天天| 欧美日韩操逼动图| 国产精品色| 91久久久久久久久18| 欧美丝袜中文字幕07在线| 嗯嗯啊啊视频在线看| 97国产人人| 久热精品色情| 亚洲导航深夜福利| 欧美性五月| 97色色色| 亚洲国产综合图区中文字幕| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 欧美淫乱视频| 丁香五月综合| 综合久久久久久久久91| 国产熟女二区| 操美女高潮抽搐白浆| 99re视频在线播放青草| 天天干一区二区| 精品国产91av一区二区三区| 韩国嫰模上门援交视频| 99热在线播放| 亚洲无码视频免费在线观看网址!| 操人妻逼91| 一区三区啪啪| 操碰97| 欧美在线视频观看一二三四区高清| 色色色色网站| 无遮挡男女激烈动态图| 中亚黄色三级大片| 亚洲黑丝在线| 欧美1区二区三区公司| 欧美天天影院| 日本999精品视频| 99热国产精品| 91啪9色| 色约约一区=区三区| 亚洲一区二区性爱电影| 人妻久久一区二区三区 | 国产人妻精品一区二区三区秋霞| 日本三级日本三级三级人妇四虎| 色婷婷丁香五月| 2011国产精品| 啊啊啊用力在线观看| 欧美 日韩 婷婷 五月| 久操热| 欧美精品精品一区二区| 久操视频免费观看| 久久啊哟| 亚洲AV无码成人精品久久| 青青草国产欧美非洲黑人| 天堂综合| 视频在线观看一二三区| 欧美性爱视频免费一区一A| 91操熟女| 九九五月天| 欧美 日韩 另类 亚洲| 密桃99999| 艹比视频国产精品| 激情小说日韩无码| 91bbbbbb| 久久久久久久9最新免费视频观看| 国产超碰国产97| 一起草精品人妻| 久久亚洲欧美中文字幕国语 | 色嗨嗨在线| 欧美18老人禁| 欧美劲爆第一页| 啊啊啊久久久视频| 欧美一二在线| 极品五月天噜噜| 日本精品一区二区中文字幕| 日本性交操一区二区不卡系列| 欧美日韩人妻精品系列一区二区三区| 亚洲十八禁止| a人欧美综合天堂麻豆| 神马久久久久眼| 色色99| 日本123区操B视频| 色噜噜精品一区二区三| 影音先锋日本一区二区| 97超碰人妻| 97天天摸天天爽| 91精品国产91熟女| 黄色成年| 夜夜无码| 91老妇女| 免费男人的天堂| 97欧美色综合| 亚欧洲一区二区视频| 久久久久久久六六 | 清纯唯美激情| 午夜噜噜噜| 97伊人超碰| 久久香蕉国产线看观看亚洲女人 | 色综合美国| 天天综合色电影| 一区二区三区四区色图| 1区2区3区视频| 性爱视频啪啪啪啪| 日本熟女不卡视频| 黄色视频高清无码网站| 亚洲成人ab| 超碰97综合| 嗯嗯啊啊好爽| 91色交| 狠狠操使劲操| 亚洲精品一区二区精华| 国产精品盗摄 偷窥盗摄| 亚洲一区二区三区不卡国产欧美| 久久久久免费看少妇A片特黄|