色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

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

SSM框架學生在線考試系統(tǒng)實戰(zhàn):從數(shù)據(jù)庫設計到自動判分

SSM框架學生在線考試系統(tǒng)實戰(zhàn):從數(shù)據(jù)庫設計到自動判分 簡介本資源是一套完整的SSM架構學生在線考試系統(tǒng)畢業(yè)設計項目面向計算機專業(yè)本科生及Java初學者解決課程管理、在線考試與多角色權限控制等典型教學管理場景需求。壓縮包共7008個文件涵蓋3798張系統(tǒng)截圖與設計圖含用例圖、ER圖、表結構圖、916個前端頁面、816個樣式文件、530個交互腳本、250個動畫資源以及69個核心Java業(yè)務類和51個配置XML文件整體大小為763.9MB。已有1068人學習下載適合期末大作業(yè)或畢業(yè)設計直接復用。資源附帶詳細運行指導視頻8個mp4、全套開發(fā)環(huán)境安裝包含MySQL5.7、Redis5.0.5、Tomcat8.5等代碼規(guī)范且注釋完整關鍵模塊如ExamServiceImpl、ExamController、SystemController等均提供清晰邏輯分層輔以EasyUI界面與Shiro安全框架實現(xiàn)細粒度權限管控。 我見過太多學生項目死在第一步要么框架版本對不上要么配置文件互相沖突要么跑起來之后發(fā)現(xiàn)數(shù)據(jù)庫設計根本撐不起業(yè)務邏輯。如果你正在用SSM框架做學生在線考試系統(tǒng)或者正準備選型這篇文章就是給你避坑的。我會把從數(shù)據(jù)庫設計到前后端聯(lián)調(diào)、從基礎CRUD到自動閱卷和防作弊策略的完整思路拆開講全程基于我實際做過的項目經(jīng)驗不是教科書復讀。1. 為什么在線考試系統(tǒng)還在大量使用SSM組合先說一個可能讓你意外的事實雖然Spring Boot已經(jīng)火了很多年但SSMSpring SpringMVC MyBatis在教學項目、課程設計、畢業(yè)設計和不少中小型企業(yè)內(nèi)部系統(tǒng)中依然是絕對主力。原因不復雜——學校教的是SSM企業(yè)里大量存量系統(tǒng)也是SSM新人上手最快、查資料最容易的方式反而繞不開它。1.1 SSM的本質(zhì)是什么SSM不是一個人造的框架而是三個開源框架的組合各管一段Spring管對象的創(chuàng)建和依賴關系負責整個項目的骨架。比如Service層的Bean由Spring容器統(tǒng)一管理你不需要在每個類里手動new對象依賴注入一把梭解耦效果好。SpringMVC管Web請求的接收與分發(fā)是Spring生態(tài)里的Web層框架。瀏覽器發(fā)一個請求過來DispatcherServlet接住它再根據(jù)URL映射找到對應的Controller方法返回JSON或JSP頁面。MyBatis管數(shù)據(jù)庫操作是持久層框架。它最大的特點是SQL由你自己寫靈活性極高復雜查詢、多表關聯(lián)、動態(tài)SQL都不需要額外封裝比Hibernate那種全自動ORM更直白。三個框架各司其職組合起來就是一套經(jīng)典的接口層-業(yè)務層-數(shù)據(jù)層三層架構。在線考試系統(tǒng)這種業(yè)務恰恰最怕那種全自動映射導致SQL失控的情況??荚囈轭}庫、算分數(shù)、統(tǒng)計結果SQL復雜程度很高用MyBatis反而最順手。1.2 對比Spring BootSSM還有優(yōu)勢嗎很多人會問都202X年了為什么不用Spring Boot我的回答是如果你的目標是快速交付生產(chǎn)級應用Spring Boot確實更省事但如果你是在做教學項目或者接手存量系統(tǒng)SSM能讓你更清楚地看到配置的每一處細節(jié)。具體來說SSM相比Spring Boot的幾個實際差異值得你清楚維度SSM傳統(tǒng)組合Spring Boot配置方式XML 注解混合自動化配置為主上手門檻需要理解容器、映射、攔截器原理配置少但屏蔽了原理適用場景教學項目、存量系統(tǒng)、定制化需求多新項目快速啟動、微服務排錯難度配置問題暴露得直接自動配置有時反而難定位我沒有否定Spring Boot的意思。但如果你還沒搞懂Spring容器是什么、SpringMVC的請求流程經(jīng)過哪些組件直接上Spring Boot遇到問題會一頭霧水。做在線考試系統(tǒng)這種流程復雜的項目SSM反而能逼你把底層邏輯理清楚。這套東西搞明白了以后轉(zhuǎn)Spring Boot就是降維打擊。2. 考試系統(tǒng)的核心模塊與數(shù)據(jù)庫設計很多人在開始寫代碼之前就卡住了原因不是不會寫Controller而是數(shù)據(jù)庫表設計得一塌糊涂。在線考試系統(tǒng)看起來簡單實際上涉及的實體和關系非常密集我建議在寫第一行代碼之前先在紙上把所有表結構和關聯(lián)畫清楚。2.1 功能模塊怎么劃分一個完整的學生在線考試系統(tǒng)至少要覆蓋三類角色前端頁面和權限都要分開處理學生端登錄注冊、查看可參加的考試列表、進入考試答題、提交試卷、查看成績與答題詳情。教師端題庫管理增刪改查題目、組卷策略配置、發(fā)布考試、手動批改主觀題、查看考試統(tǒng)計報表。管理員端用戶管理教師/學生的賬號增刪改查、課程管理、系統(tǒng)數(shù)據(jù)統(tǒng)計、公告發(fā)布。這三個端如果共用一套Controller到后期會非常痛苦。實際項目里我建議按業(yè)務邊界拆分成三個模塊包比如controller/student、controller/teacher、controller/admin權限用SpringMVC的攔截器統(tǒng)一控制。2.2 數(shù)據(jù)庫表的完整設計思路下表是我在一個實際項目中整理的物理表結構你直接拿去用基本不會有大問題表名核心字段說明sys_userid, username, password, role, status所有用戶統(tǒng)一存放用role區(qū)分角色examid, title, start_time, end_time, duration, publish_status考試場次表questionid, type, content, option_a/b/c/d, answer, score, subject_id題目表type區(qū)分單選/多選/判斷/簡答paperid, exam_id, question_id, sort試卷明細表關聯(lián)考試和題目exam_recordid, student_id, exam_id, submit_time, score, status學生參加考試的唯一記錄answer_detailid, record_id, question_id, student_answer, is_correct, score答題明細表subjectid, name科目表這套表的精妙之處在于考試和試卷是分離的??荚囀且粋€事件規(guī)定了時間、時長、參與范圍試卷是這個事件的具體內(nèi)容。這樣你可以提前組好多套卷子考試發(fā)布時隨機抽取或者同一場考試給不同學生生成不同順序的題目這已經(jīng)是最基本的防作弊手段了。2.3 一個容易忽視的設計細節(jié)答題明細表我第一次做這個項目時只設計了exam_record表存總分結果教師想查看某個學生某道題到底選了哪個答案、為什么扣分完全做不到。后來才加了answer_detail表一條記錄對應一名考生的一道題。這個表的價值在成績復核和試卷分析時體現(xiàn)得淋漓盡致。你可以用它統(tǒng)計某道題的正確率、某個選項的迷惑度、某個學生的知識點薄弱項。如果想讓教師端做成績分析報表這張表就是數(shù)據(jù)基礎。所以設計階段多做一步后面代碼量能少寫一半。3. 從零搭建SSM考試系統(tǒng)骨架配置細節(jié)一次說清很多教程上來就貼一堆配置文件但完全不解釋每段配置在干什么。我見過太多人照抄配置結果web.xml寫錯一個順序項目啟動就報ClassNotFoundException。這里我把搭建過程按為什么這么配的邏輯串起來講。3.1 項目結構先定好我建議用Maven構建多模塊或單模塊的標準結構按包分層放好不要圖省事全塞在默認包下com.example.exam ├── controller // 控制層接收請求 ├── service // 業(yè)務層處理具體邏輯 │ └── impl ├── mapper // MyBatis的Mapper接口 ├── entity // 實體類對應數(shù)據(jù)庫表 ├── dto // 數(shù)據(jù)傳輸對象用于前后端交互 ├── vo // 視圖對象用于頁面展示 ├── interceptor // 登錄攔截器、權限攔截器 ├── config // 配置類可選如果不用XML全部用注解 └── utils // 工具類如JWT工具、日期處理這個分層結構不是隨便分的。Controller層只負責接收參數(shù)和返回結果不寫業(yè)務邏輯Service層只做業(yè)務處理不關心HTTP請求Mapper層只做數(shù)據(jù)庫交互不寫復雜判斷。這樣一旦出了問題你從入口進來每一層都能獨立排查。3.2 Maven依賴怎么選版本怎么鎖SSM項目90%的啟動報錯都源于版本不對。我踩過最大的坑是spring-webmvc和mybatis-spring版本不兼容——mybatis-spring在2.0版本之后要求Spring 5而Spring 4的老項目直接升級會直接NoSuchMethodError。這里給你一套我驗證過能穩(wěn)定跑的版本組合!-- pom.xml 關鍵依賴 -- properties spring.version5.3.39/spring.version mybatis.version3.5.16/mybatis.version mybatis-spring.version2.1.2/mybatis-spring.version mysql.version8.0.33/mysql.version druid.version1.2.23/druid.version /properties dependencies dependency groupIdorg.springframework/groupId artifactIdspring-context/artifactId version${spring.version}/version /dependency dependency groupIdorg.springframework/groupId artifactIdspring-webmvc/artifactId version${spring.version}/version /dependency dependency groupIdorg.mybatis/groupId artifactIdmybatis/artifactId version${mybatis.version}/version /dependency dependency groupIdorg.mybatis/groupId artifactIdmybatis-spring/artifactId version${mybatis-spring.version}/version /dependency dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId version${mysql.version}/version /dependency dependency groupIdcom.alibaba/groupId artifactIddruid/artifactId version${druid.version}/version /dependency !-- Jackson用于JSON序列化 -- dependency groupIdcom.fasterxml.jackson.core/groupId artifactIdjackson-databind/artifactId version2.15.4/version /dependency /dependencies使用MySQL 8.0以上版本時驅(qū)動類要改成com.mysql.cj.jdbc.Driver并且必須在JDBC連接串里加時區(qū)參數(shù)否則會報Server returns invalid timezone。這是個極小但極其常見的坑。3.3 Spring SpringMVC 雙配置文件別混在一起SSM通常有兩個容器Spring容器和SpringMVC容器。Spring容器負責Service、Mapper等業(yè)務組件的管理SpringMVC容器只掃描Controller。千萬不要用ComponentScan同時掃兩個包否則會出現(xiàn)重復代理的詭異問題。推薦的做法是applicationContext.xml負責配置數(shù)據(jù)源、事務、MyBatis的Mapper掃描、Service的組件掃描!-- applicationContext.xml -- context:component-scan base-packagecom.example.exam context:exclude-filter typeannotation expressionorg.springframework.stereotype.Controller/ context:exclude-filter typeannotation expressionorg.springframework.web.bind.annotation.ControllerAdvice/ /context:component-scan bean iddataSource classcom.alibaba.druid.pool.DruidDataSource property namedriverClassName valuecom.mysql.cj.jdbc.Driver/ property nameurl valuejdbc:mysql://localhost:3306/exam_system?serverTimezoneAsia/Shanghaiamp;useUnicodetrueamp;characterEncodingutf8/ property nameusername valueroot/ property namepassword valueyourpassword/ property nameinitialSize value5/ property namemaxActive value20/ /bean bean idsqlSessionFactory classorg.mybatis.spring.SqlSessionFactoryBean property namedataSource refdataSource/ property namemapperLocations valueclasspath:mapper/*.xml/ property nametypeAliasesPackage valuecom.example.exam.entity/ property nameconfiguration refmybatisConfig/ /bean bean classorg.mybatis.spring.mapper.MapperScannerConfigurer property namebasePackage valuecom.example.exam.mapper/ /bean !-- 事務管理器 -- bean idtransactionManager classorg.springframework.jdbc.datasource.DataSourceTransactionManager property namedataSource refdataSource/ /bean tx:annotation-driven transaction-managertransactionManager/spring-mvc.xml負責掃描Controller、配置視圖解析器、靜態(tài)資源放行和JSON消息轉(zhuǎn)換!-- spring-mvc.xml -- mvc:annotation-driven mvc:message-converters bean classorg.springframework.http.converter.json.MappingJackson2HttpMessageConverter property nameobjectMapper bean classcom.fasterxml.jackson.databind.ObjectMapper property namedateFormat bean classjava.text.SimpleDateFormat constructor-arg valueyyyy-MM-dd HH:mm:ss/ /bean /property /bean /property /bean /mvc:message-converters /mvc:annotation-driven context:component-scan base-packagecom.example.exam.controller/ mvc:resources mapping/static/** location/static//關鍵點在于把Controller當成通道而不是業(yè)務倉庫。如果你在Controller里寫了大量業(yè)務邏輯那你既沒有發(fā)揮SpringMVC的職責優(yōu)勢也很難做單元測試。3.4 MyBatis的Mapper XML映射幾個最實用的寫法Mapper層是SSM里最靈活也最致命的一層。在線考試系統(tǒng)的SQL量和復雜度遠超過一般管理系統(tǒng)我總結了幾個高頻寫法動態(tài)SQL處理搜索條件——教師端查題時往往要按題型、難度、科目多個條件組合過濾。用where和if標簽能避免一堆無意義的空判斷select idselectByCondition resultTypecom.example.exam.entity.Question SELECT * FROM question where if testsubjectId ! null AND subject_id #{subjectId} /if if testtype ! null and type ! AND type #{type} /if if testcontent ! null and content ! AND content LIKE CONCAT(%, #{content}, %) /if /where ORDER BY id DESC /select批量插入——組卷時需要一次性插入大量試卷明細用foreach比在Java里循環(huán)調(diào)用INSERT效率高一個數(shù)量級insert idbatchInsertPaperDetail INSERT INTO paper (exam_id, question_id, sort) VALUES foreach collectionlist itemitem separator, (#{item.examId}, #{item.questionId}, #{item.sort}) /foreach /insert聯(lián)表查詢返回VO——考試成績列表一定需要join用戶表和考試表直接在XML里寫聯(lián)表SQL不要拆成多個Mapper調(diào)用再在Java里做內(nèi)存拼接select idselectExamRecords resultTypecom.example.exam.vo.ExamRecordVO SELECT r.id, u.real_name AS studentName, u.username, e.title AS examTitle, r.score, r.submit_time AS submitTime FROM exam_record r LEFT JOIN sys_user u ON r.student_id u.id LEFT JOIN exam e ON r.exam_id e.id where if testexamId ! null AND r.exam_id #{examId} /if /where ORDER BY r.score DESC /selectMyBatis的核心價值在這里就體現(xiàn)出來了——SQL完全可控索引優(yōu)化、分頁、聯(lián)表怎么寫都不會被框架自動生成的SQL綁架。4. 核心業(yè)務邏輯實現(xiàn)登錄鑒權、組卷、交卷與自動判分框架搭好只是萬里長征第一步。在線考試系統(tǒng)的真正難點全在業(yè)務邏輯上尤其是權限控制、隨機組卷、交卷判分這三個環(huán)節(jié)。4.1 登錄與權限控制攔截器比注解更可靠在線考試系統(tǒng)里有三種角色權限交織比較密。我推薦用SpringMVC的HandlerInterceptor做全局登錄與權限控制再配合自定義注解做細粒度鑒權。首先寫一個登錄攔截器public class LoginInterceptor implements HandlerInterceptor { Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 放行登錄接口 if (request.getRequestURI().contains(/login) || request.getRequestURI().contains(/captcha)) { return true; } // 從Session中獲取當前登錄用戶 User user (User) request.getSession().getAttribute(currentUser); if (user null) { response.setContentType(application/json;charsetUTF-8); response.getWriter().write({\code\:401,\msg\:\未登錄或登錄已過期\}); return false; } return true; } }再寫一個角色攔截器通過自定義注解RequireRole(teacher)標注在Controller方法或類上實現(xiàn)角色級別的細粒度控制public class RoleInterceptor implements HandlerInterceptor { Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if (!(handler instanceof HandlerMethod)) { return true; } HandlerMethod method (HandlerMethod) handler; RequireRole requireRole method.getMethodAnnotation(RequireRole.class); if (requireRole null) { requireRole method.getBeanType().getAnnotation(RequireRole.class); } if (requireRole null) { return true; } User user (User) request.getSession().getAttribute(currentUser); if (user ! null requireRole.value().equals(user.getRole())) { return true; } response.setContentType(application/json;charsetUTF-8); response.getWriter().write({\code\:403,\msg\:\無權限訪問\}); return false; } }這里提一個容易被忽略的細節(jié)HandlerInterceptor攔截的是URL但Controller里同一個URL可能同時允許學生和教師訪問比如/exam/detail所以角色校驗放在方法級別更合理。不要只依賴URL前綴區(qū)分權限那樣維護成本會指數(shù)級增長。4.2 組卷策略一次性組卷還是按規(guī)則抽題組卷是一個高頻需求也是最容易被同學做死的地方。很多人直接把所有題目塞給所有人這種實現(xiàn)方式從業(yè)務層面就是不合格的。一個可用的考試系統(tǒng)至少要有兩種組卷策略固定試卷所有學生拿到完全相同的題目適合小規(guī)模測驗。隨機試卷系統(tǒng)按教師預設的規(guī)則題型、章節(jié)、難度分布從題庫中隨機抽題每個學生拿到的試卷順序和題目組合不同防作弊效果顯著。隨機抽題的SQL可以這樣寫MySQL 8.0以上支持窗口函數(shù)性能比ORDER BY RAND()好太多select idselectRandomQuestions resultTypecom.example.exam.entity.Question SELECT * FROM ( SELECT q.*, ROW_NUMBER() OVER (PARTITION BY q.type ORDER BY RAND()) AS rn FROM question q WHERE q.subject_id #{subjectId} AND q.type IN (1,2,3) ) t WHERE t.rn lt; #{countPerType} /select對你沒看錯ORDER BY RAND()在小數(shù)據(jù)量下沒什么問題但題庫一旦過萬性能會急劇下降。窗口函數(shù)先按題型分區(qū)再在每個分區(qū)內(nèi)隨機排序取前N條效果和效率都更好。4.3 考試中的題型限制與作答校驗考試過程中前端會定時保存學生答案后端需要做一道防重復提交的校驗。核心邏輯是一個考生對一場考試只能有一條exam_record記錄如果重復提交不能簡單地覆蓋而是要進行狀態(tài)判斷。insert idinsertExamRecord INSERT INTO exam_record (student_id, exam_id, status, create_time) VALUES (#{studentId}, #{examId}, 0, NOW()) /insert同時在exam_record表上建唯一索引uk_student_exam(student_id, exam_id)。這看似不起眼卻能從根本上避免并發(fā)下重復插入導致的數(shù)據(jù)錯亂。ALTER TABLE exam_record ADD UNIQUE KEY uk_student_exam (student_id, exam_id);業(yè)務層交卷時用事務包裹先更新考試記錄的狀態(tài)和總分再批量插入答題明細。如果中途任何一個環(huán)節(jié)失敗整個提交回滾保證要么全部成功要么什么都沒有。實際項目里我還遇到過學生交卷時網(wǎng)絡抖動后端已經(jīng)寫了記錄但前端沒收到成功響應學生又點了一次交卷結果生成了重復記錄的情況。加上唯一索引后這個問題就徹底消失了。4.4 自動判分算法客觀題與主觀題的分流處理判分是整個系統(tǒng)的核心。我的實現(xiàn)方案很簡潔——把題目按類型分流處理客觀題單選、多選、判斷private int gradeObjective(Question question, String studentAnswer) { // 單選題和判斷題答案精確匹配 if (question.getType() 1 || question.getType() 3) { return question.getAnswer().equalsIgnoreCase(studentAnswer) ? question.getScore() : 0; } // 多選題需要比較所有選項為了容錯先排序再比較 if (question.getType() 2) { char[] correct question.getAnswer().toCharArray(); char[] student studentAnswer.toCharArray(); Arrays.sort(correct); Arrays.sort(student); return Arrays.equals(correct, student) ? question.getScore() : 0; } return 0; }多選題的判分有個策略選擇完全匹配才得分還是漏選給部分分我建議做成可配置的。不同考試對多選題的判分標準不一樣有的嚴格必須全對有的則允許漏選給一半分。把這個做成開關教師端能夠自由設置適應性會強很多。主觀題簡答、論述客觀題自動判分之后主觀題需要一個待批閱狀態(tài)。教師端展示待批閱列表教師手動打分后分數(shù)與客觀題分數(shù)累加寫入exam_record.total_score。這里有個設計細節(jié)不要在一場考試所有主觀題批閱完成后再一次性累加分數(shù)而是在每次主觀題批閱完就更新成績但是要在事務里把原總分減去原來主觀題得分再加上新得分。這樣才能保證反復批改教師改完又改了主意時總分不會累積出錯。5. 查詢性能優(yōu)化的幾個關鍵手段在線考試系統(tǒng)到后期并發(fā)量上來了你會發(fā)現(xiàn)查詢變慢是最大的痛點。這里分享三個我在實戰(zhàn)中驗證過的優(yōu)化手段每個都實實在在地解決過問題。5.1 分頁查詢用PageHelper還是手寫LimitPageHelper是一個非常方便的MyBatis分頁插件用法簡單但很多人在使用時會踩中內(nèi)存分頁的坑。比如先查出全表然后在內(nèi)存里過濾再分頁一旦數(shù)據(jù)量大就卡死。而且PageHelper有線程本地變量的機制如果你在查詢前做了其他操作分頁參數(shù)有可能會丟失或串頁。如果追求穩(wěn)定可控我建議手寫分頁select idselectQuestionPage resultTypecom.example.exam.entity.Question SELECT * FROM question where if testsubjectId ! nullAND subject_id #{subjectId}/if /where ORDER BY id DESC LIMIT #{offset}, #{pageSize} /select對應的Java代碼里Service層計算offset (pageNum - 1) * pageSize再返回total和list。這樣雖然后端代碼多寫幾行但你完全掌控SQL的執(zhí)行邏輯排查問題也直觀很多。5.2 緩存策略熱點數(shù)據(jù)怎么用Redis兜底考試系統(tǒng)中的題目和試卷是典型的讀多寫少數(shù)據(jù)。教師管理題庫時頻繁增刪改但學生考試時是大量讀取。對于這種場景我引入Redis緩存來扛學生端的查詢壓力。核心策略是每次發(fā)布考試時把該場考試的所有題目信息以JSON形式序列化后寫入Rediskey格式為exam:paper:{examId}。學生進入考試時直接從Redis取不查詢數(shù)據(jù)庫??荚嚱Y束或教師修改試卷時刪除對應key。public PaperVO getExamPaper(Integer examId) { String key exam:paper: examId; String json redisTemplate.opsForValue().get(key); if (json ! null) { return JSON.parseObject(json, PaperVO.class); } // 緩存未命中查數(shù)據(jù)庫再寫緩存 PaperVO paperVO loadPaperFromDatabase(examId); redisTemplate.opsForValue().set(key, JSON.toJSONString(paperVO), 30, TimeUnit.MINUTES); return paperVO; }這里要注意一個點學生進入考試時試卷數(shù)據(jù)應該是快照性質(zhì)也就是考生提交的答案要對應考試當時的題目信息。如果教師在考試中途改了題目學生的答案匹配就會錯亂。所以緩存時間設置不宜過長并且考試發(fā)布后題目最好鎖定不允許編輯。5.3 索引設計的取舍在線考試系統(tǒng)查詢頻率最高的場景集中在幾個固定維度學生ID、考試ID、考試狀態(tài)、科目ID。索引設計圍繞這些查詢條件來建不要無腦給所有字段加索引。我實際使用的索引清單-- 考試表 ALTER TABLE exam ADD INDEX idx_exam_status_publish (publish_status, start_time); -- 答題明細表按考試和題目查詢 ALTER TABLE answer_detail ADD INDEX idx_record_question (record_id, question_id); -- 成績表按學生查歷史考試成績 ALTER TABLE exam_record ADD INDEX idx_student_status (student_id, status);索引不是越多越好。有些同學為了讓所有查詢都走索引給每個字段都加了索引結果寫操作變慢、索引占用空間大。記住一個原則索引是針對查詢服務的建索引之前先想明白我的查詢條件是什么。6. SSM項目部署到Tomcat的常見踩坑記錄項目寫完只是開始部署才是真正檢驗功力的時候。這里把我遇到的、以及幫別人排查過的高頻問題整理出來每個都對應具體的報錯信息和解決步驟。6.1 jar包沖突與缺失如何快速定位SSM項目最常見的部署報錯是java.lang.ClassNotFoundException或者NoClassDefFoundError。這個時候別慌先看異常日志里的類名再去Maven倉庫里搜對應的jar包存在不存在。我遇到過最隱蔽的問題是本地Tomcat能跑起來部署到服務器上就不能運行了。原因是我本地有一個舊版本的servlet-api.jar和Tomcat自帶的版本沖突。解決方案很簡單在pom里給Servlet相關的依賴加上scopeprovided/scope讓它在打包時不包含dependency groupIdjavax.servlet/groupId artifactIdjavax.servlet-api/artifactId version4.0.1/version scopeprovided/scope /dependency6.2 靜態(tài)資源404可能是攔截器把靜態(tài)資源也攔了如果登錄頁能正常打開但登錄后的頁面加載不出CSS/JS大概率是登錄攔截器把靜態(tài)資源請求也攔截了。處理方式是在攔截器注冊時放行靜態(tài)資源路徑mvc:interceptors mvc:interceptor mvc:mapping path/**/ mvc:exclude-mapping path/static/**/ mvc:exclude-mapping path/login/ mvc:exclude-mapping path/captcha/ /mvc:interceptor /mvc:interceptors另一個容易踩的坑是項目打成war包后JSP頁面里的資源路徑用了全路徑/static/css/style.css但在服務器上部署時context-path不為空比如路徑是http://ip:8080/exam/導致資源路徑全部404。解決方式是用EL表達式動態(tài)拼接link relstylesheet href${pageContext.request.contextPath}/static/css/style.css6.3 Linux服務器時區(qū)問題導致考試時間錯亂這個問題非常隱蔽但影響極其致命考試系統(tǒng)的開始時間和結束時間全是錯的。原因在于服務器默認時區(qū)不是Asia/ShanghaiMySQL連接時又沒有顯式指定時區(qū)。解決辦法是在JDBC連接串里明確指定時區(qū)jdbc.urljdbc:mysql://localhost:3306/exam_system?serverTimezoneAsia/ShanghaiuseUnicodetruecharacterEncodingutf8同時啟動Tomcat時加上JVM時區(qū)參數(shù)JAVA_OPTS-Duser.timezoneAsia/Shanghai考試時間計算這種業(yè)務無論在代碼里做了多少層最終都繞不開底層時區(qū)一致性。這個配置不提前處理好考試開始時間會比預期早8小時或晚8小時用戶反饋會非常糟糕。7. 防作弊策略與考前準備功能的落地這不是一個加分項而是一個在線考試系統(tǒng)能不能被真正使用的關鍵。我做過的最實用的一套防作弊方案包括四個層面成本由低到高排開。7.1 限制切屏和全屏模式前端通過監(jiān)聽visibilitychange和blur事件檢測考生是否切換到其他窗口let switchCount 0; document.addEventListener(visibilitychange, () { if (document.hidden) { switchCount; alert(你已切出考試頁面 ${switchCount} 次超過3次將自動交卷); if (switchCount 3) { // 自動交卷 submitExam(); } } });這個方案只能防君子不能防高手但對于大多數(shù)場景已經(jīng)足夠。7.2 考試IP和MAC綁定在考試開始前記錄每個考生登錄時使用的IP和MAC地址。交卷時比對是否一致如果不一致則標記為異常。這種方式能有效防止代考和賬號共享。這套方案的實現(xiàn)成本比較低只要在登錄接口里多記錄兩個字段交卷時做一次校驗就可以。7.3 題目亂序與選項亂序同一個考生試卷中題目順序隨機排列不同考生的同一道題選項順序也不同。這能有效防止抄鄰座答案的情況。選項亂序的實現(xiàn)方式是在前端渲染時對單選題的四個選項按照固定隨機種子做一次shuffle并把shuffle后的順序記錄在當前試卷的緩存中交卷時按亂序后的選項映射回標準答案。這里有個必須注意的坑亂序后的選項必須和數(shù)據(jù)庫標準答案對應上否則會出現(xiàn)學生選的是正確答案但判錯的情況。我在實現(xiàn)時方案是前端把選項亂序后的結果連同學生選擇一起提交到后端后端按實際題目內(nèi)容判分而不是直接比對選項編號。7.4 人臉驗證進階版如果條件允許可以在每次答題時隨機彈起攝像頭抓拍一次與考試前預設的人臉模板比對。這個方案的成本較高但效果最好。不過需要注意涉及學生隱私必須提前告知并在考試協(xié)議中說明不然會有合規(guī)風險??紤]到大多數(shù)學生項目不需要做到這一步我這里只做提示不作為必備內(nèi)容。8. 項目上線后這套SSM系統(tǒng)的擴展方向系統(tǒng)上線只是開始真實的使用反饋會帶著你持續(xù)迭代。這里說幾個我從實際場景中總結的擴展方向如果你做完一個基礎版覺得沒挑戰(zhàn)可以按這些方向繼續(xù)加碼。第一個方向是成績分析可視化??荚囅到y(tǒng)產(chǎn)生的數(shù)據(jù)量非常多每個學生每道題的答題結果都是數(shù)據(jù)。用ECharts在教師端畫各分數(shù)段分布圖、各題型正確率雷達圖、知識點掌握熱力圖這部分做好了整個項目的價值會提升一個檔次。第二個方向是智能組卷。單純的隨機抽題只是隨機智能組卷是基于難度系數(shù)、知識點權重、歷史答題正確率來動態(tài)推薦題目。這部分會涉及簡單的推薦算法不是純CRUD能覆蓋的很適合往深了做。第三個方向是消息通知??荚嚢l(fā)布后通過郵件或短信批量通知學生。這個功能需要接入第三方消息服務如果項目不支持外部依賴可以先用WebSocket在系統(tǒng)內(nèi)做實時通知學生登錄后就能看到待參加的考試提醒。第四個方向是考試防作弊的升級??梢砸氪痤}行為分析記錄每道題停留時間、修改答案次數(shù)、鼠標移動軌跡等通過規(guī)則引擎判斷行為是否異常。如果每道題只花2秒就交卷且全是正確答案那么大概率有作弊嫌疑。這類行為分析功能在真實產(chǎn)品里很有價值。9. 最后的實操心法送給準備動手的你整個SSM學生在線考試系統(tǒng)做完一遍之后我最大的感受是這個項目的價值不在于你用了多么新潮的技術而在于你是否把業(yè)務邏輯想清楚了。你可以用SSM做也可以用Spring Boot做但考試系統(tǒng)的核心——權限體系、組卷策略、答題流程、自動判分、成績統(tǒng)計——這些業(yè)務模型在任何技術棧里都是一樣的。最后分享幾個我每次做這類項目都會堅持的習慣希望能幫你在動手時少走彎路不要再Controller里堆業(yè)務代碼。如果發(fā)現(xiàn)Controller方法超過30行就該思考是不是該拆到Service層了。數(shù)據(jù)庫設計階段多花一小時后面能節(jié)省數(shù)天。特別是answer_detail這種明細表寧可先建好不用也不能用到時沒有。所有涉及時間比較的邏輯統(tǒng)一用同一個時區(qū)最好在代碼里常量定義不要到處寫new Date()。寫SQL之前先想想索引寫完看看執(zhí)行計劃。MyBatis給了你高度自由的SQL控制權這是優(yōu)勢也是責任。前端做個簡單的倒計時和自動保存體驗會提升一大截。不少學生只關注后端邏輯結果考試中頁面一刷新答案全沒了這種體驗基本等于項目失敗。如果你是按這篇文章的思路一步步走下來的到這一步你應該已經(jīng)擁有了一個能跑通完整考試流程、有合理權限體系、能防初階作弊、也有一定并發(fā)承載能力的SSM在線考試系統(tǒng)。下一步要做的就是把它放到真實環(huán)境里讓幾個同學實際用一用——那些你設計時沒想到的問題真實使用場景會毫不留情地暴露出來。那時候你學到的會比寫一萬行代碼還要多。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产精品乱码久久久久久久| 久久99干一本高清| 女沟厕偷窥piss小便| 日本免费一区二| 1769一区| 久久久亚洲精品中文字幕人妻| 久无码| 欧美性爱第一区| 欧美丝袜亚洲| 男人 天堂 日 亚洲| 中文字幕一区二区三区高清| 啊啊啊免费视频| 91天射| 五月天婷婷欧美三区| 伊人网综合在线视频| www.男人的天堂| 国产精品3| 97久精品| 国产丝袜美女诱惑| 久久9视频| 国产中文字幕曰本毛片| 欧美成熟性爱精品| 99re在线| 97ai亚洲| 任我爽在线视频免费观看| 97九色人妻| 欧亚免费视频| 中文字幕123| 高清有码一区二区| 久久中出| 影音先锋乱伦资源| 欧美精品99久久久**| 亚洲欧美日韩偷拍色图| 亚洲s色图| 欧美综合网1| 性色高清在线| 国产精品经典一卡久久久 | 欧美一级特黄淫片在线观看| 天堂v无码免费视频| 999久久久国产精品| 色约约一区=区三区| 香蕉大久久久| 久久久久久久9最新免费视频观看| 97蜜桃综合| 久久精品欧美一区蜜桃| 丝袜美腿诱惑亚洲欧美视频在线观看 | nuu12国产麻豆精品| 激情自拍 校园春色| 曰韩无码777| 国产免a费看黄片在线| 女欧美一区二三区| 又粗又长又爽在线观看| 日韩欧美亚欧在线视频| 欧美Aⅴ| 日韩欧美性爱电影在线观看| 在线国产福利网址导航| 999亚洲国产视频| 台湾佬中文娱乐网久久久久久久久久com | 日韩欧美字幕亚洲一区二区 | 亚州精品人妻一二三区| 色娱乐色呦呦夜夜夜夜av| 欧美美女自慰一区二区三区| 国产视频一区二区在线观看| 亚洲国成人情色好看电影| 国产成自自拍在线观看| 人妻熟女一区二区| 亚州男人天堂| 国产一区免费午夜视频| 亚洲成熟国产精品美女| 天天色粽合合合合合合合| 国模一区二区三区| 操老熟女AV| 全国男人天堂网| 久热热| 人人操人人干xxx| 久久亚洲欧美中文字幕国语| 黄片在线免费在线观看| av天天在线观看| 久久AV无码1区2区3区| 偷拍伦理视频| 色五月AV在线| 亚洲色婷婷久久91| 婷婷五月色| 高清不卡一二三区视频......| 亚洲男人天堂网久久| 99色日| 欧美在线视频观看一二三四区高清 | 国产成人主播| 亚欧无码线免费观看视频| 欧美系列在线一区二区| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 麻豆久久一区二区三区| 亚洲黄网在哪免费看| 欧美天天拍| 97爱b| 欧美成人精品一区二区男人蜜臀| 久操com| 日韩成人精品中文字幕| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 99re99在线视频| aaa亚无码专区| 一区二区三区 日韩欧美| 日本久久久久久久久| 91 亚洲情侣偷拍 久久| 琪琪精品免费一区二区三区 | 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 欧美日韩狠狠爱| 一级做a爰片性色毛片久久| 日韩乱伦影音先锋| 怡红院怡春院| 超碰97亚洲| 中国操逼无码| 91麻豆天美国产| 东京热,男人的天堂| 最新国内自拍av免费| 五月综合色| 色大师网站www永久网站视频| 超碰色老头| 欧美性爱十八禁| 精品十三区| 青娱乐淫乱1314| 97人人超| 九九九热| 玖色AV| 大香蕉伊人75| 色婷婷久久| 久久风骚城市| 熟女突然公开看18禁影片 | 久久综合99| 亚洲AV不卡在线观看| 国产一区二区成人av在线播放| 日韩国产品视频中文字| 插入逼91| 手机不卡视频不卡在线一二三区| 久久久久久99AV无码免费网站| 尤物国产一区在线观看| 影音资源男人日韩| 天天综合91在线| 日逼97| 欧美顶级黄片AAAAA在线免费看| 黄色片G G G| 一区二区三区亚洲| 欧美色综合图片| 先锋色眉乱伦资源| 亚洲日本天堂| 三级特黄60分钟播放| 欧美中字二区| 精品性爱一区二区| 激情 欧美 亚洲 小说| 亚洲综合网电影91| 人人操人人摸人人看人人插| 天天草AV| 91狠狠色丁香婷婷综合久久精品| 天堂亚洲精品| 97色插| Sekablack无码一区| 一区二区三区四区五区高清无码永久视频| 亚洲一级性爱视频免费看| 亚州色阁| 欧美操人| 免费超碰97在线观看| 超碰97在线中文| 亚洲午夜福利在线影院| 色色九区| 国产精品视频| 亚洲午夜av| 国内外内射高清视频| 国产精品熟女AV中文字幕在线播放| 强奸乱伦AV网址| 亚欧美色图| 五月婷婷激情网| 日本操逼视频在线| 色97国产69香蕉| 久久久蜜桃一区二区三区| 日韩免费中文字幕视频| 日本道人妻久久久在线不卡色视频| 免费操逼视频下载| 欧美色宗合| 呻吟 欧美 日本 中出| 亚洲无套久久嗯嗯| 乱伦熟女专区| 精品人妻一区二区三区鲁大师| 婷婷色五月激情| 欧美色视| 夜夜夜夜爽| 日韩99神马视频播放片在线播放| 女人喷水视频在线观看| 欧美日韩啪啪电影| 亚洲熟女人妻中文字幕一区二区 | 人妻AV 中文字幕的| 欧美乱伦专区| 婷婷国产精品一区二区| 亚洲限制级在线| 婷婷亚洲色| 欧美情色亚洲| 欧美在线第五页| 1区2区3区在线视频| 免费簧片在线观看| 一类无码操逼视频| 91色香| 久草精品国产蜜臀| 精品久久在线区一区| 黄色一区二区秘书性感| 黄色香蕉视频网站一区| 天天爱天天操| 丰满人妻一区二区三区四区| 九月伊人中文字幕| 新91视频.cmp| 日韩精品人妻中文字幕不卡乱码| 午夜福利合集| 四虎影视精品| 中文字幕三四区| 午夜精品久久999热蜜桃介男人用| 爱射综合| 精品国产一区二区三区久久久蜜臀| 亚洲精品视频在线播放| 婷婷色导航| 丰满人妻av一区二区三区 | 欧美日韩国产一区二区小黄片大全| 78精品| 亚91网| 精品十八在线观看| 夜夜躁狠狠躁日日躁av| 欧美在线|亚洲| 97久久免费| 成人热久久精品| 青青操少妇| 欧美成人精品一区二区三区| 99久久综合| 欧美72网页| 躁躁日曰躁2020| 蜜桃视频一区二区三区在线观看| 国产精品久久久777| 九一亚洲国产免费| 日韩免费人妻色情网站| 最新加勒比丝袜在线| 青青操狠狠撩| 中文字幕一区日韩精| 操逼操操操91| 精精夜夜| 玖玖资源视频一区二区三区| 91搡老女人老妇女老熟女歌词翻译| 精品久久久久久久| 人妻精品免费一二三区| 首页中文字幕中文字幕免费| 99热99色| 国产精品国产自产拍高清AV| 裸体美女久久久| 蜜臀一二三| www欧美91| 999精品久久久久久久| 国产又粗又大硬免费色网视频| 色综合一本| 欧美精品23| 国模不卡| 亚洲欧洲小说图片视频 | 俞拍自拍| 欧美色女人| 欧美日韩免费性爱| 久久98| 日韩三级在线观看mp4| 嫩草 我啊~嗯~在线| 欧美伊人电影| 欧美性爱中文字幕无线码| 亚洲AV成人无码久久精品播放| 免费97视频| 日韩精品碰碰| 五月天激情小说网| 自拍第一页| 91青青草| 五月天激情四射| 天天日日日射| 99久久99久久免费精品蜜臀| 丁香五月综合| 亚洲日本男人天堂网| 人妻人久久精品中文字幕| 精品国产乱码久久| 日韩成人电影AV| 加勒比海成人视频网| 欧美日韩亚洲天堂| 欧美在线观看综合国产| 蜜臀久久久| 亚洲天天操| 久久精品色欧美aⅴ一区二区| 黄色污污污污污污网站| 97网站在线观看| 老司机天天操| 蜜臀精品1区2区| 超碰偷拍| 亚洲男人天堂2019| 欧美性综合| 1000部熟女视频在线观看| 五月丁香啪啪| 天堂亚洲精品| 亚洲国产高清福利视频| 99re在线视频国产| 青娱乐久久艹| 999熟女精品| 精品九九国产无码| 日韩欧美被操黄免费观看| 麻豆91熟妇人妻中文字幕茄子| 国产精品自拍欧美在线| 少妇内射视频| 黄片直播三级黄片两女一男| 久久人妻无码毛片A片麻豆| 综合伊人激情| 青青草伊人久久| 久久av无码| 91最新综合| 亚洲一区在线观看欧洲| 成人网欧美风情| 亚洲熟女乱色一区二区三区| 国产无遮挡| 亚洲熟女乱色一区二区三区| 午夜欧美J进J出白浆流出久久久| 欧美天天干| 偷拍在线观看视频| 九九黄色视频在线观看| 丝袜 中出 制服 人妻 美腿 中文字幕| 男人的天堂一区三区| 亚洲极品| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 97资源欧美| 午夜操逼不卡| 啊啊啊男女| 亚洲婷婷五月天| 免费国产视频| 人人综合| 啊视频在线| 极品肉射| 东北操逼| 久久草大香蕉| 狠狠91| 啊啊啊在线观看免费视频| 国产超碰AV在线精品| 精品免费国产二区三区| 免费看日本操逼视频| 91亚洲人| 麻豆成人av| 亚洲中文字幕三级在线| 深夜福利黄片| 五十路熟女在线不卡观看一区二区| 丁香五月激情综合国产| 亚洲人妻久久| 亚洲熟女乱综合一区二区三区 | 东京热伊久| 亚洲欧美一区二区三区在钱蜜桃| 中文字幕一区二区免费在线| 国产9熟妇视频网站| 蜜桃精久三区| 无码免费一区二区三区啪啪| 日日摸夜夜夜夜爽| 97免费在线观看| 不卡一区视频| 中文字幕片| 操逼逼无码| 婷婷色色五月天福利| 国产精品3| 亚洲天堂性爱| 三级三久久线久久99久目本WW| 精品午夜福利导航| 精品人妻中文字幕4399| 欧美综合色,www| 久久动漫精品视频这里只有精品| 黄污污污污| 国产精品无码久久久久2028| 91综合色噜噜| 精品人妻一区二区三区视频在线| 午夜福利一区二区三区四区五区色婷婷| 另类在线| 首页亚洲国产高跟丝袜诱惑视频| 亚洲第2页| 国产强奸无码乱伦| 亚洲男人天堂AV| 欧美高潮| 欧美国产有色电影| 亚洲中文字幕乱码无码一区二区| 天天干天天做| 另类专区在线观看| 91精品国产高清久久久久久,亚洲成人| 久久久亚洲熟妇熟女| 日韩青久久| 加勒比东京热五月天天堂网| 天天天天天超碰| 91 丝袜在线| 麻豆 欧美 日韩| 另类视频在线| 91丨九色丨东北熟女| 久草免费福利在线播放| 精品午夜福利国产一区二区在线观看| 一区AV| 91狠狠| 久久午夜色播影院免费高清| 97色碰| 久久狠狠色噜噜狠狠狠狠97| 人妻天天爽天天爽三区| 国产高清自拍视频| AAAA级日本片免费视频| 97人人爱人人乐| 欧美韩国你懂得在线 | 麻豆黄四叶草网站| 国产四虎在线| 欧美性暴力猛交XXXX | 人妻啊啊人妻啊啊| 精品一区二区三区最新| 校园春色亚洲欧洲| 天天综合网1| 亚洲天堂日本| 欧美黑人日韩少妇色情| 78超碰| 蜜臀久久99精品久久久久久-DVD原版全| 久久久无码精品人妻二区| 国产激情在线| 91处女在线观看| 天堂v无码免费视频| 亚洲日韩视频二区| 狠狠色噜噜狠狠狠狠狠色综合久久| 亚洲一区二区中文字幕| 色色99| 亚洲少妇自拍中文字幕懂色| 9 9无尺码天堂网| a在线观看| 欧美se综合| 丝袜狠狠草尤物人妻av91| 亚洲性网| 久久影视二区三区行押| 看看小穴| 岛国黄色大片网站| 操老熟女AV| 天美av在线观看| 午夜啪啪片| 九九草| 日本超碰色精品| 丁香六月天| 国产熟女完整版中字| 国产精品不卡少妇白| 麻豆伊人网| 激情五月天婷婷| 日本成人A片网站| 中文字幕成人乱码熟女精品国50 | 天天操夜夜嗨| 18禁无码永久免费无限制| 一本色道久久综合狠狠操| 亚洲狼狼干综合1| 99综合网| 极品尤物女神在线观看| 亚洲?V无码专区在线电影| 97伊人网| 91啪啪| 91麻豆天美传媒在线| 夜夜嗨一区二区三区三州加勒比| 九热大香蕉| 97干色天堂| 亚州操操穴网| 青青草在线视频人人想人人上| 婷婷综合五月| 亚洲 日本 一 二 三| 人妻81p| 成人97人人超碰人人| 五十路六十路七十路熟婆| 亚洲交性| 97色亚洲| 7777奇米影视久久| 中文字幕日韩人妻视频一区二区三区| 日本三级一区二区 在线| 思思视频免费看网站| 亚洲激情久久久伊人综合| 色婷视频| 成人精品欧洲亚洲| 色综合超碰超| 国产三级资源在线观看| 久久久久人妻二区精品叶可怜| 99久久精品国产系列| 91GD.COM| 嗯嗯啊啊啊好爽| 亚洲A色| 大香蕉免费3| daxiangjiao你懂的| 国内精品a| 亚洲精品蜜桃久久久久久久| 成年人黄色小视频网站| 91无码人妻| 国产这里只有精品| 日本一级特级毛片视频| 一区二区 电影 亚洲| 色伊人91| 天美传媒精品一区二区| 韩国女主播青草在线| 婷婷激情五月天小说网| 九月伊人中文字幕| 欧美丝袜中文字幕07在线| 99热在线观看| 人人看黄色视频| 黄色一区三区| 国产福利夜| 亚洲精品美女久久久久久久久| 中文字幕视频二区| 97视频900| 九九热男人天堂| 久久精品国产免费观看99| 97天天摸天天爽| 密臀国产在线| 风骚少妇视频中文字幕| 亚洲s在线观看| 五月丁香狠狠爱| 亚洲成人美女无吗| 性爱视频免费网址| 国产精品美女久久久久久网站| 亚洲色图第一页| 欧美999999| 日本精品国产视频| 五月色网| 天天日日日射| 夜夜嗨一区二区三区直播内容| 亚洲欧美国产中文视频| 久9久9久9久9久9久9 | 国产精品农村妇女| 日本高清一区二区在线| 99国产精品免费| 男女一进一出视频久久| 成人夜夜爽| 78m啪啪啪| 日日干日日| 日本久久久久久久久久| 国产在线视视频有精品| 人妻少妇精品视频一区二区三区| 日日操免费视频| 久久、1234| 人妻啪| 欧美天天综合站| 午夜九九| 97国产高清视频在线观看| 91爱啪| 国语精品av| 老色鬼成人精品视频下载大在线观看| 九九拍拍精品视频在线播放| 日日日啊啊啊| 亚洲av总站| 日本不卡码黄色| 色婷婷综合久久久久中文一区二区| 91亚洲黑人| 99热18| 亚洲天堂综合AV| 丁香六月激情| 97人肏| 看黑人AV不卡| 国产乱弄免费在线视频。 | 免费人成在线观看网站品爱网| 91色图| 国产乱色国产精品免费视| 日本性交操一区二区不卡系列| 午夜视频黄| 国产色精品午夜大片| 精品国产乱码久久久久久口爆网站| 亚洲国产91精品一区二区久久| 久久性爱视频免费看| 亚洲A曰本VA欧美VA视频| 国产精品盗摄 偷窥盗摄| 一区二区三区精品黑丝白丝酒店对鸡 | baisiav| 伊人97超碰| 狠狠亚洲| 97视频在线看| 激情久久久| 丝袜美腿诱惑亚洲欧美视频在线观看 | 欧美亚洲清纯| 人妻久热在线| 330dv亚洲成年视频网| 青青操少妇| 久久久久9999妇女| 亚州色图欧美色图| 影音先锋每日最新资源在线观看| 日本欧美一区二区三区视频麻豆| 久久久久国产一区二| 狠狠欧美| 深夜激情| 亚洲高清无码免费观看视频| 日韩av电影网站| 偷拍99| 亚洲成人在线乱码色午夜| 97WW精品| 伊人网高清| 国产不卡精品91| 蜜臀AV一区二区三区| 亚欧性爱无码| 午夜欧美女人操逼| 有码免费观看| 黄片视频,下载| 国产丝袜一区二区三区| 一区在线观看中文字幕| 伊人九九九| 国产大片精久久久久久| 日韩欧美tv一区二区在线观看| 秋霞一区二区三区四区五区六区七区| 天天草夜夜草高潮片| 精品国产AV一区天美传媒| 久草加勒比一区在线| 天天色黄色影院天天操| 亚洲天堂人人妻| 国产乱码精品一区二区三区四川| 激情小说亚洲图片| 伊人五月天婷婷| 正宗无毛一线天嫩逼| 超碰av人人人| 肉动漫无遮挡h在线观看| 久久久免费懂色| 天综合中文| 日韩免费在线观看不卡| 久草电影网| 99爱久久视频频| 色一色综合网| 天天懆天天日| 色黄色美女大长腿午夜视频| 97av在线观看| 久综合网| 97色在线观看| 久久久一区二区三区四区五区| 熟女乱3伦999| 亚洲春色欧美| 日韩大香蕉精品在线视频| 日韩成人大片在线观看| 国产精品另类一区大香蕉| 日本天天操| 亚洲午夜未满十八勿入网站日本又色又爽又黄| 一本久道久久综合狠狠爱| 麻豆一区二区三区在线看| 91久久青青草原精品| 加勒比久久综合网高清| 99热免费| 麻豆色约约| 日韩黄片视频试看| 亚洲激情网一二三四区| 呻吟 欧美 日本 中出| 亚洲无码精品AV久久久| 人妻久久久久久| 91网站在线播放| a男人的天堂久久一级A毛片| 国产免费永久精品无码| 在线情色电影 91大| 日本韩国国产精品一区| 夜夜爽33333| 一本一道久久综合久久| 波多野结衣被操50分钟免费视频| 色999人与兽| 日韩亚洲精品一区二区| 97超碰国产精品| 亚洲第一页综合在线| 日本狂喷奶水在线播放212| 欧洲综合视频| 久久老女人| 人人操人人摸人| 国产情色在线| 欧美另类精品xxxx| 伦在线97| 91亚洲色图| 天美精品av| 97久久久久| 国产成人+综合亚洲+天堂| 五月天欧美色图| 天堂а√在线最新版在线| 五十路熟女工口 | 精品国产乱码久久久| 五月婷婷丁香中文字幕| 人人摸人人舔一区二区| 国内毛片国产欧美拍| 欧美中文字幕一区 | 久久激情网| 夜夜高潮夜夜爽夜夜爱爱一区| 色五天伊人| 伊人aaa| 韩日性爱av| 极品色电影院| 婷婷亚洲五月***久久| 97色欧洲| 先锋精品av色鲁| 搡老女人老91妇女老熟女| 亚洲中文制服诱惑| 国产成久久综合片| 美女高潮视频91| 亚欧免费| 日韩人人精品| 婷婷久草| 大象AV在线| 好屌色综合| 国产成人无码网站在线视频| 97精品中文字幕| 国产无马av| 男人的天堂2019| 泰国AV在线观看| 国产亚洲精品精AV.| 96久久久精品| 啪啪啪综合网| 96久久科窝| A级国产欧美激情在线| 综合网欧| 超碰人人色| 永久电影三级在线观看| 一区二区蜜臀| 99久久99九九99九九九| 国产91 丝袜在线播放00-百度| 日韩素人无码一区二区三区三州| 天天躁日日躁成人字幕aⅴ| 人妻喷水| 欧美日韩资源在线| 狠狠色噜噜狠狠狠狠狠色综合久久| 亚洲综合在线91| 精品国产99| 偷窥自拍亚洲天堂网爆| 欧美高清无码免费视频高清版| 欧美在线中M| 大香蕉亚洲中文| 不卡av在线中文字幕| 天天欧美| 欧美亚洲宗合色性图| 欧美男人一区| 国产树林里野战在线看| 亚洲国产成人精品久久久国产成人一区二区| 久久久久9999妇女| 精品久久久久,69国产成人精| 欧美日韩国产黄色片| 欧美日韩在线小说| 天天在线91| 久久水蜜臀亚洲AV无码精品| 五月婷婷六月丁香| 久久久久九九九| 国产丝袜欧美在线视频| 蜜臀在线网站| 99国内熟女露脸视频| 精品久久久中文字幕不| 九九探花视频在线观看| 日韩强奸av| 超碰在线一区二区三区| 啊啊啊啊操死我了| 蜜桃久久久久久久| 精品人妻美妇91job| 黄页视频网站野外| 亚洲精品性爱片| 一级性爱视频免费在线| 男人在线天堂| 一本久道久久综合狠狠爱一密臀精| 一本色道久久综合熟妇| 亚洲少妇激情视频| 黄总AV色图| 韩日男人的天堂| 91在线色综合| 日本大片日本一区二区免费高清| 九月婷婷久久| 亚洲影视第一页| 殴洲老熟女| 国产suv精品一区二区四区999| 人妻激情偷乱视频一区二区三区| 亚洲精品国产精品乱码不99| 亚洲强奸乱伦影视网| 家庭乱伦网站国产| 亚洲日韩美女中文字幕乱| 午夜国产乱伦视频| 芊芊操逼视频无码| 国产极品美女高潮无套在线观看| 精品无码不卡视频| 333kkkk·亚洲com久久| 爱av免费| 男女激情黄色网址| 亚洲欧美国产其他二区| 精品亚洲国产成人AV制服丝袜| 欧美18老人禁| 中国人高清www色视频免费| 另类图片综合| 91人精品妻入口| 欧亚无码视频| 国产av又色又爽又黄| 国产黄色小视频网站| 秋霞久久亚洲精品成人| 乱伦AVxx| 偷窥自拍亚洲天堂网爆| 五月天婷婷成人网| 91AV老熟女视频| 久久AV无码1区2区3区| 亚洲精品一区二区免费在线观看| 欧美与日韩97| 欧美中日韩XXXX| 韩三级a视频在线观看| 激情五月天婷婷| 人妻免费观看| 一本色道久久综合亚洲二区三区| 精品丰满熟妇人妻一区| 欧美第一页| 色欲三区| 女人被添高潮免费视频| 涩五月婷婷| 爱欲AV| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 欧美aⅴ99久久黑人专区| 亚洲图片 激情小说| 美女91网| 韩美日操逼| 国产一区二区在线电影| 亚洲国产精品久久久久婷婷青年| 操b网站亚洲无码| 欧美淫乱视频| 国产高清自拍视频| 萌白酱自拍视频| 国语对白在线播放视频| 丝袜夫妻自拍| 欧美色图片欧美色图| 亚洲天天操| 亚洲第2页| 欧美九九爱| 人人澡人人澡人人| 国产辣妈在线视频福利| 麻豆国产成人精品| 啊啊啊好舒服视频| 日韩精品免费高清视频在线| 极品色社| 婷婷探花久久精品一区| CCYY草草影院地址入口| 99操逼| 日韩视频小说在线观看| 亚洲天堂男人的天堂| 亚洲一卡2卡3卡4卡乱码网站| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 欧美黑人XXXⅩ高潮交| 玖玖超碰熟| 天天躁日日躁AAAAXXXX国产| 五月婷婷六月丁香| 女人18精品一区二区三区| 一级岛国大片| 97婷婷色| 国偷自 一区| 免费AV中文网在线观看| 久久人妻精品| 少妇精品久久久八区九区| 日本黄色大片一级视频免费麻豆| 天天射网| 麻豆久久一区二区三区| 国产www色在线观看| 国产AV天美| 精品人妻一区二区三区四区石在线| 五月丁香六月| 91老司机精品| 亚洲人妻av| 嗯~啊~快点 死我视频免费看网站| 男人的天堂免费| 色色无码| 人人妻人人玩人人澡人人爽| 婷婷亚洲五月***久久| 色哟哟AV| 91精品丝袜在线观看| 欧美日韩97在线| 黄色欧美性爱视频| 综合色久欲| 日韩欧美国产高清视频| 十八禁一区二区无码观看| 亚洲色 国产 欧美 日韩| 97在线观看免费视频l| 欧美日韩亚洲一区二区在线观看| 亚洲中文字幕有码视频一区二区三区| 97碰碰色| 精品久久青青草| 综合网天天| av在线人气| 成人无码在线超碰网| 操香逼| 园内精品自拍视频在线播放| 久久久久9| 国产精品无码在线| 国产日韩美女小穴视频网站不卡| 国产精品久久伊人| 亚洲美女精品九九视频| 久久本道| 日韩极品无码B| 超碰97在线中文| 毛片电影一区二区三区| 久久一区二区蜜桃| 色综合潮| 91强在线播放| av资源在线观看少妇| 久久女人| 97精品视频免费| 一牛影视成人片免费| 嗯嗯嗯啊啊在线观看| 99精品无码| 翔田千里AⅤHD无码| 国产精品色| 亚洲 综合 欧美| a男人的天堂久久一级A毛片| 日欧毛片久久| 亚洲综合激情五月久久| 国产精品一区二区a| 欧洲小说色图视频另类| 蜜臀AV网站| 特色a在线上| 久久99草| 91oumei| 亚洲精品国产熟女| 久久久精精精| 久久爱超碰网| 99精品在线| 国产强奸乱伦第1页| 乱子伦一区二区三区国产精品| 91丨九色丨国产丨人妻在线 | 久久精品一区| 丁香色色网| 7777奇米影视久久| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 日韩性爱视频在线免费观看| 蜜臀AV午夜精品久| 天天天做天天天爱天天天爽| 91热情品| 日本九九久久99播| 久久香蕉国产传媒一区剧情天美| 国产精品久久久久综合| 污污汅18禁网站在线永久免费观看| 国产精品另类| 免费97视频| 久9热| 久久亚洲AV无码专区国产精品| 亚洲情色综合| 操一对老熟妇爽上天视频| 亚洲综合色男人网| 欧美激情精品| 人妻熟女一区二区在线视频| 伊人久久亚洲色欲综合网站 | 欧美国产伊人久久久久| 在线观看成人性爱免费小视频| 91夜色| 91狠狠综合网| 亚洲色图亚洲| 96精品久久久久久久久久| 亚洲天天更新| 中文字幕在线观看视频www| 国产三级中文有码在线视频| 93人人操人人| 国产亲戚伦亲在线| 操我无码| 东亚亚洲无码高清| 丰满人妻一区二区三区大胸懂色 | 久久伊人青青草| 一级黄碟在线观看| 色偷偷色偷偷欧美日韩| 色综合久久夜色精品国产天堂 | 成人5码视频| 亚洲成?V人片在线观看福利| 日韩人成网站在线播放| 国产成人精品日本亚洲语言| 精品超碰国产| 中出91| 有码人妻系列| 国产天美传媒精品| 美国三级日本三级久久99| 久久久9 9 9精品| 色约约一区=区三区| 97久久国产| 亚洲 欧美 日韩 国产一区二区 | 青草视频人妻在线观看| 97超碰色中文字幕| 亚洲男人天堂手机版| 大香蕉一级黄色片久久| 国产9 9在线 | 亚洲| 欧美成人AⅤ大片在线观看| 人人妻人人狠人人| 成人资源中文字幕在线观看天天 | 色哟哟综合| 天天搞在线综合网| 91精品综合久久久久久五月丁香| 亚洲色图超碰在线| 97超碰亚洲| 青青草色AV| 自拍偷拍第26| 国产成人自拍视频在线| 老色69| 亚洲综合贴图91 | 欧美人人AAA| 日韩人妻操B| 亚洲999综合| 国产精品乱码久久久久| 伊人久久综合影院| 97在线视频观看| 久久綜合很很很| 婷婷性网| 日韩无码精品综合久久| 97精品综合久久| 国产高清不卡视频| 欧美96在线|欧| 亚洲?V无码专区在线电影| 啊视频在线| 九九九九九九成人| 91精品91久久久中77777| 久草视频观看视频在线| 性站| 91熟女视频网| 成人精品久久久午夜福利| 国产精品亚洲免费| 99热导航| 色悠久| 中文字幕 国产区| 久久久久ab| 97香蕉网| 97色婷婷| 在线 欧美 亚洲| 91丨豆花丨熟女| 手机av天堂久久久久| 超碰97人人乐| 国产女人与拘做受视频免费| 久久这里只有精品9| 免费伦费视频在线观看| 国产白嫩精品久久| 蜜臀久久99精品久久久久久婷婷 | 色妹子A V| 久久久一区二区三区麻豆| 国产精品亚洲一级av第二区| 精品夜夜澡人妻无码| 国产农村妇女毛片精品久久| 色婷婷视频| 十八禁黄色成人网站观看| 一起草高清无码| 人妻AV 中文字幕的| 国内外毛片在线观看| 色婷婷视频| 成熟熟女国产精品一区二区| 超碰97人妻免费在线| www.91色综合| 91制服丝袜中文字幕| 激情五月天视频| 日韩射图| 日日碰狠狠添天天爽超| 天天看高清麻豆| 91精品久久久久五月天精品| 亚洲av总站| 久96热在线观看视频| 久久久工口| 九九综合九九综合| 久久久999日本大片| 久久人| 日夜啪电影| 97超碰欧美中文字幕| 日本超碰在线国产一区| 97亚洲在线| 欧美综合骚| 国产精品成人AV片免费看网站| 超碰日本97美女人妻人人玩人人爱| 久久99国产精品| 免费观看欧美日韩操逼视频| 国产精品一区二区三区四区五区| 激情av| 女色综合| 嫩草 人人网精品| av一区二区三区四区| 亚洲AV无码久久精品蜜桃小说| 日本日逼高清| 九九九九免费视频| 久久人人爽人人爽人人片Ⅴ| 啊啊啊啊无码| 东北夫妻性偷拍| 久久亚州精品成人Av无| 淫乱图区| 国产欧美日韩在线不卡第一页| 欧美 色 亚洲| 嗯嗯,啊啊,国产精品| 美女操逼A A| 国产丸一视频| 狠狠干综合| 国产日韩无码一区二区三区久久区| 亚洲永久AV无码精品秋霞| 欧美成人性爱视频免费观看| 精品女同一区二区三区| 九九天堂| 淫荡熟女乱伦网| 大逼色网站| 久操操| 日本福利二区视频| 超碰午夜| 国产自产22区| 91欧美高清| 天天色,天天干,天天干| 人妻熟女一区二区在线视频| 国产精品小视频一区二区三区| 九九精品99| 南澳成人一级片在线播放| 欧美一区二区日韩传媒搭讪精品| 影音先锋乱| 一区二区高清视频| 色九九综合AV| 亚洲中文制服诱惑| 久久久久久久国产a∨| 天美91| 亚洲在钱| 欧美色图中文字幕| 亚洲一区日韩| 欧美偷拍区| 97久久国产精品女不卡| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 日本一区视频在线观看| 韩国一级做A片免费的| 熟女精品一区二区三区| 吖在线不卡一区二区国产剧情| 97久操| 久久色一区二区| 欧美黄页在线| 亚洲第一在线视频| 欧美性爱18观看| 搡老女人老熟女91老熟女综合网| 久久精品夜色国产亚洲AV| 日韩精品99999| 成人三一级一片aaa| 日本一区二区中文字幕久久| 久久久九| 久久m| 无码一区二区三区四区五区六区七区八区九区十区视频 | 国产精品直播在线观看直播| 蜜桃久久一区| 91欧美性| 青青草精品| 操穴国产| 中出91| 久久婷综合| 在线可观看的黄色网址| 天天狠操| 国产91亚洲精品一区二区三区| 欧美亚洲手机在线| 日韩综合第八区国产精品| 久久人爽| 国产中文福利| 欧美天天综| 亚洲日本男人天堂网| 色蜜AV| 91操人| 五月香婷婷| 久久艹逼视频| 日韩精品在线观看网站| 女人喷水视频在线观看| 91在线超高颜值国产| 精品成人无码| 99亚洲精品| 亚洲乱色熟女一区| 青娱乐福利99| 人人操人人舒服| 日韩一级久久毛片| 一级黄色性爱裸体视频| 亚洲婷婷丁香在线| 亚洲97| 亚洲麻豆av一区二区| 亚洲欧美综合| 一起草三级AV电影在线观看 | 日韩欧美午夜视频在线| 操逼视频亚洲| 欧美久久伊人| 精品性爱无码在线播放| 亚洲欧美精品福利在线| 国产原创剧情在线丝袜| 久久五月视频| 夜夜肏2021| 日韩一区二区熟女| 青久操| 国产精品午夜福利视频| 伊人视频| 日曰骚久久精品| 老熟女网站| 永久免费av无码网站国产app| 成人97人人超碰人人| 成人八戒网站|