99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜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反而能逼你把底層邏輯理清楚。這套東西搞明白了以后轉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消息轉換!-- 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
返回資訊列表
亚洲五月天婷婷| 欧美婷婷丁香五月社区| 综合久久9| 丁香五月婷婷88在线| 婷婷丁香五月在线观看91| 天天日天天舔| 五月天精品视频| 五月丁香福利| 久久香蕉婷婷| 五月丁香婷婷狠狠操| 六月丁香啪啪啪| 色性五月天| 91操操操| 婷婷另类开心| 在线不卡视频| 激情AV在线| 亚洲成人无码专区| 国产成人精品一区二三区熟女在线| 99热这里只有精品官网| 人人干AV| 天天添天天摸天天天天做| 九九色播五月丁香| 久久99精品久久久久子伦| 日本一級黃色一級片| 97色97干| 九九99免费视频| 天天干天天叉| 色综合综合色| 五月天六月婷| 六月丁香综合| 久久综合五月天| 激情五月丁香综合蜜桃| www.狠狠操.co m| 婷婷五月天激情电影| 丁香综合日产精品久久| 五月婷久久久久综合| 丁香婷婷社区| www五月| 激情五月天色播| 五月婷婷丁香五月婷婷| 国产精品久久久60086| 9久久精品| 六月婷婷色色色| 婷婷字幕在线| 五月天婷婷色色首页| 极品人妻VIDEOSSS人妻| 色综合久久久综合久久网| 九九无码| 91 九色大美女| 26uuu成人网| 婷婷六月啪啪| 香蕉人妻AV久久久久天天| 亚洲天天操| 婷婷色九月| 五月丁香婷婷导航视频| 99精品久久久| 久久婷五月| 天天色天天操天天射| AA丁香综合激情| 久热婷婷| 狠狠精品干练久久久无码中文字幕 | 亚洲视色| 综激情网| 国产精品久久久久久久久久久久| 婷婷六月香| 超碰2021| 综激情网| 六月婷婷国产| 97五月久久丁香婷婷| 婷婷五月婷婷| 99网| 婷婷色六月| av无码电影| 色婷婷免费观看| 亚洲Va成人| 色色色综合视频| 综合逼五月激情婷婷| 丁香5月综合啪啪| 五月天婷婷青青草| 色欲天天综合| 激情综合视频| AAA久久| 伊人婷婷青青cao| 国产激情综合五月| 无码区婷婷五月花开| 99热手机在线精品| 婷婷久久综合| a在线免费v| 久久性爱视频| 天天操天天操天天操天天操天天操天天操| 色噜噜综合网| 五月丁香婷婷狠狠操| 天堂久久大香蕉| 99在线视频播放| 婷婷五月天视| 五月婷婷九九热| 丁香五月影院| 亚洲Av成人在线观看| 色狠狠色综合久久久绯色AⅤ影视| 99日本精品视频热| 九九热在线99| 日韩丁香涩| 99热线观看9| 这里只有精品视频视频在线观看| 97色色色| 国产干逼片| www.maotanji.com| 天天干 夜夜爽| 超碰成人免费| 九九色播五月丁香| 五月花在线观看视频| 79精品视频在线观看,| 被强行糟蹋的女人A片| 婷婷五月超碰| 九九爱看亚洲| 国产乱子轮XXX农村| 欧洲精品爱爱| 色丁香五月| 色婷婷电影网| 婷婷五月天AV| 大香蕉五月丁香| 日本色色影片| 丁香综合伊人AV| 超碰人人在线| 婷婷情色五月天| 超碰精品手机在线| 婷婷成人基地| 婷婷爱综合| 激情中文在线| 色九月婷婷综合| 久久思思精品| 丁香五月激情五月| 激情五月综合网最新 | 777久久综合视频| 色激情五月天| 日本一毛片| 五月丁香六月合| 色色色色色色网站| 六月婷婷天天操夜夜爽视频| 99精品视频网| 婷婷丁香五月天色播网站| 天天操天天插| 久久婷婷五月天激情四射| 婷婷五月天日本无码| 伊人久久艹| 91操在线视频| 丁香五月AV| 超碰操网| 操骚货在线| 超碰人人艹| 久色| 久久99免费视屏| 操人91| www.婷婷,com| 99re热视频这里只精品| 婷婷色女| 日韩av一区二区在线/日产精品久久久 | 久久午夜丁香| 久久久.COM| 无码yw| 色色国产| 久思思热视频在线观看| 办公室少妇激情呻吟A片在线观看| 九九色色| 90色免费视频| 成人版视频在线观看| 91无码高清| 五月婷婷日| 五月丁香久久综合色| 婷婷六月激情| 久久视这里只有精品| 99热这里只有精品5| 亚洲综合视频天天精品| 亚洲av另类在线观看| 天天搞天天色综合| 开心五月婷婷婷美女| 五月婷婷av| 狠狠搞五月天| 香蕉视频性爱BB做爱| 五月天伊人| 另类图片激情五月| 国产欧美日韩综合精品一区二区| 99久久五月婷婷| 99热亚洲精品| 国产精品色情AAAAA片软件| 五月丁香色播| 久热伊人| 99 福利 导航| 亚洲色就是色色色| 网色99| 激情五月黄色小说| 性色综合网| 天天射美女| 99爱免费在线观看| 另类在线观看视频| 婷婷色色综合| 五月激情六月综合| 亚洲视频色婷婷| WWW久久久| 99精品偷自拍| 狠狠狠狠狠狠狠狠| 丁香五月五月婷婷| 亚洲男人的天堂婷婷色五月| 金桔一区二区ab地址| 影音先锋秋秋五月婷婷| 九九热视频这里只有精品| 五月天婷婷激情干干| 在线综合啪| 国产 亚洲 在线| 夜夜天天天天天干天天爽| 99精品国产在热久久婷婷| 97操碰| 综合网五月| 婷婷激情五月天综合| Av在线不卡一区| 婷婷五月天久久久| 丝袜激情网| 天天综合插插| 亚洲 综合中文| 《久久综合九色综合97婷婷| 精品自拍99| 成年人丁香五月| 久色欧美| 五月天婷网| 久久AAAA片一区二区| 色婷婷AV在线| 影音先锋 一区| 亚洲欧洲另类图片| 北条麻妃九九九国产精品视频| 天天摸天天肏| 人人摸人人操人人爽| 婷婷五月天欧美图片在线播放电驴| 欧美黑人大吊| 极品色丁香| 婷婷久久五月天中文字幕在线观看| 久久一级AV| 日韩aaaaa| 国产激情av| 五月色天情| 99视频精品8| 丁香九月综合| 天堂五月婷婷| www.minyis.com【JT】币址百万U预算可预付QQ2101460746 | 99亚洲天堂| 五月丁香六月色| 狠狠色噜噜色狠狠狠综合久久成人波 | 久久久中文| 十区AV| 婷婷五月天渟渟| 亚洲亚洲人成综合网络| 激情性爱五月天网页| 超碰狠狠操| 色色网站| 激情小说五月天| av在线资源| www.久久| 青青久在线视频免费观看| 99激情| 这里只有精品免费| 五月激情天| 精品一二三区久久AAA片| 婷婷色六月| 久色网| 色婷婷激情| 五月丁香综合在线| 在线视频区| 丁香五月激动深爱欧美| 色yeye色综合| 国产成人av在线播放| 日韩另类| 色噜综| 久久成人天| 色色色国产| 99r这里| 天堂草在线看www| 日本五月天激情| 亭亭玉月丁香| www.婷婷五月天.com| 精品人妻伦一二三区久久| 久久精品一区二区三区四区| 日本欧特黄色刺激一区影视久精品无码| 婷婷激情五月天激情小说| 激情婷婷丁香色五月| 日韩高清久久| 青青草a在线| 狠狠色丁香99| 狠狠色大香蕉| 中文幕无线码中文字蜜桃| 婷婷色影音天| 伊人超碰| 色色免费网战视频| 国产激情久久| 激情婷婷在线| 九月丁香婷婷综合激情| 五月婷婷在线观看| 草草视频91| 日韩AV无码影片| 欧美日韩五月婷婷| 欧洲激情五月天| 深爱激清网| 超碰99在线观看| 中文字幕网伦射乱中文| 丁香色综合| 色的色综合| 五月丁香在线观看| 男人的天堂婷婷色五月| 五月婷婷丁香| 天天做天天爱| 字幕网AV中文字幕| 天天操天天爱天天日| 国内精品玖玖| 精品一二三区久久AAA片| 综合激情sV| 国产日批视频免费播放| 五月天激情小说| www狠狠| 99热色婷婷| 四五月婷婷| 七七九色| 亚洲无码九九九| 有码人妻久久| 色香欲综合| 色色色色色色色色色色色色色五月天| 天干干夜夜操| 97香蕉碰碰人妻国产欧美| 91九色PORNY中文啦| 婷婷在线五月天观看| 丁香五月伊人| 99综合99| 99re思思热久久| 久久伊人大香蕉| 97色欧美| 五月丁香激情综合网| 少妇性BBB搡BBB爽爽爽电影| 亚洲五月天综合色| 九九性视频| 亚洲av午夜精品一区二区| 五月丁香 久久久| 激情色色| 色五月成人| 天天爱综合网| 99综合成人视频在线观看 | 亚洲黄色影视| 婷婷五月天av| 久久九九免费视频| 丁香六月婷婷久久综合| 美女五月天| 色婷成人狠干| 九九精品亚洲| 99视频在线播放大全| 五月丁香天堂网| 在线观看视频1区| 六月婷婷狠狠色在线观看| 狠狠干夜夜干| 五月天天天操天天爽夜夜操| 熟女人妻一区二区三区免费看| 日本一级黄色电影| 九九热精品| 日韩色色网| 91狠狠色丁香婷婷综合久久精品| 日本99视频| 天天色天天爱天天爱天天爱y| 99精品国产在热久久| 丁香五月98| 有码人妻久久| 五月丁香六月婷婷综合免| 色99热| 色性综合| 久久婷婷综合五月天| 久久草中文日韩欧美| 啪色综合| 色爱五月天| 亚州欧美黄色电影| 色婷狠狠| 国产精品婷婷午夜在线观看| 五月天播播中文字幕 | 五月天婷婷久久| 五月丁香激情四射| 亚洲色啪| 欧美色色色| 蜜臀综合久草| 国产美女视频久| 丁香五月婷婷偷拍| 五月婷婷深深爱| 亚洲综合网激情五月天| 99热www| 色吧五月婷婷| 五月婷网| 激情久久伊人| 婷婷丁香97| 99re6热在线精品视频播放速度| 久久久久9999| 亚洲综合激情五月| 五月天六月丁香| 人操综合| 婷婷狠狠操| 天天日天天做天天操| 超碰爱爱爱| Av九九| 玖玖在线资源视频| 欧美WW在线网| 激情内射人妻1区2区3区| 三级大香蕉网| 综合婷婷| 日韩五月婷婷| 亚洲精品视频在线| 五月丁香亭亭| 米奇影视资源777狠狠色婷婷五月天激情网 | 丁香六月av| 97操碰日本女人| 99色热视频| 天天做天天要天天爽| 变天就操逼婷婷五月| 精品成人在线观看| 婷婷六月久久综合导航| 色色色在线免费视频| 丁香五月婷婷婷桃花影院| 五月婷婷激情久久| 五月婷婷六月综合| 天天射射夜| 99伊人性爱在线影院| 丁香激情五月| 六月婷婷激情图片| 日本色色色| 天天玩天天摸| 五月色婷婷中文字幕| 激情影院69| 天天干夜晚夜操| 久久免费精彩视频| 五月婷色激情五月| 嫩草综合网| 伊人久久婷| αV电影| 久久丁香| 丁香五月婷婷六月| 色婷婷亚洲| 日日操夜夜骑| 六月丁香影院| 婷婷五月天第四色| 色五月婷婷、老熟女| 黄网免费看| 月色色综合婷婷网| 9一精品视频观看| 国产乱妇无乱码大黄AA片| 五月婷网| 日良久久| 狠狠香蕉| 久久久婷婷婷| 九九热黄色| 99色综合| 美欧日韩国产成人在战| 久久精品系列| 婷婷六月天| 五月婷六月婷婷| 五月天自拍网| 成人网站免费sxj| 丁香五月六月久久综合| WWW.激情| 婷婷天天插天天爱| 丁香婷婷激情五月| 丁香五月激情视频在线| 开心五月深爱激情| 欧美精品熟女一区二区| 婷婷丁香五月在线播放| 综合激情站| 久热A| 精品51XX| 色五月婷婷九月| 亚洲热久久| 婷婷丁香色情五月天| 欧美激情-区二区三区| 99惹精品视频| 激情小说婷婷| 欧美久久婷婷| 久久人人看| 九九热在线精品视频| 日本一级一级一级一级| av网站不卡在线| 色噜噜丁香| 婷婷五月天国产性感美女演员久久久久| 国产精品久久久爽爽爽麻豆色哟哟| 五月天丁香| 99国产精品白浆在线观看免费| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 97成人丁香| 先锋男人91资源| 免费看无码视频A级| 亚洲AV网站在线观看| 色五月五月婷婷| 99re66热这里只有精品| 99精彩视频在线观看| 五月婷婷人妻| 狠狠综合久久| 在线播放人妻| 99久免费视频| site:hcxsz888.com| 婷婷五月综合欧美在线播放| 婷婷综合色五月天| www.婷婷| 97色碰碰公开视频| 婷婷五月天国产精品| 五月天亚洲最大成人| 欧美激情2025| 99热自拍| 91久久18| 丁香六月AV| 丁香五月婷婷成人网| 天天干天天拍| 亚洲电影在线观看| 人妻激情综合| 色情五月天A片| 精品久久9| 天天揷综合网| 日韩性视频| 狠狠色狠狠色综合日日91| 人妻精品一区二区三区| 99只有精品| 久久区区一二三av| 婷婷丁香一月| 色欲久久综合| 国产人人操| 婷婷丁香六月五月天| 十月色综合| 丁香五月婷婷啪啪| 成人一级片| www.99热. com这里只有精品| 91超碰在线观看| 狠狠爱深色婷婷综合| 五月婷网| 狠狠色噜噜狠狠狠888| 天天操夜夜操| 玖热精品综合视频| 操逼巨乳91| 五月婷婷av在线| AV伊人青草丁香六月| 久久人妻www| 激情第四色| 久婷| 日韩欧美成人片| 婷婷色综合网日韩国产| 五月天婷婷久色| 色综合激情| 密视AV综合在线| 啪啪激情网站| 激情小说五月天| 九九久久五月天| 久久精热| 中文字幕天天干| 激情网开心网| 一本色道久久88加勒比| 婷婷六月婷婷| 可以免费观看的av| 99高级会所久久| 色色激情网| 91无码高清| 五月丁香六月综合激情无码软件亮点 | 操91| 日韩婷婷五月天| 99热18| 色情综合网| 99热综合网| 五月丁香自拍| 色狠狠999综合| 九九99男女视频在线观看| 色五月丁香六月婷婷| 成人做爰黄A片免费看直播室男男| 97亚洲色 torrent magnet| 久久九九热视频| 久热9| 亚洲国产成人在线| 67194国产| 六月婷婷综合| 狠狠色噜噜狠狠色噜噜噜999| 丁香婷婷五月| 亚洲激情99| 五月天综合| 婷婷五月丁香狠狠| 色五月婷婷7777| 开心五月婷| 成人免费超碰| 久色大| 五月丁香无码| 五月丁香六月婷综合成人综合| 久久久妻人人人| 天天爽天天| 激情婷婷五月天伊人在线观看| 欧美性生交XXXXX无码小说| caopeng97日韩| 日本乱子人伦在线视频| 99性爱精品| 1区2区视频| 99色性爰网络| 青青福利网| 人人操操97| 五月丁香六月激情综合 | 日日夜夜噜噜爽爽| 色播五月综合网| 色爱综合网| 五月色无码| 色婷婷91激情小说| 日韩无码专区| 偷拍视频五月天| 色色色色区| 玖玖资源在线视频| 婷婷五月天日日日干干干| 玖玖婷婷五月天毛片| 五月丁香激情综合久久| 久热这里只有精品在线观看 | 国产Va视频| 人妻六月天| 天天色色天天| 婷婷激情社区| 99热这里只有精品268| 狠狠一日| WWW.婷婷| 月婷婷婷婷五月| 久久九九怡红院| 日韩 mm 不卡| 国精产品一区一区三区免费视频| 婷婷五月色激情欧美激情| 色色自拍视频网站| 久久婷婷丁香五月宗合| 中文字幕在线免费看线人| 综合久久五月天| 五月丁香怕啪啪| 色婷成人狠干| 日韩成人影片网站| 天天精品视频免费观看| 五月婷婷中文字幕| www好屌操| 九九热大香蕉| 天天肏天天舔AV| 色婷婷影院| 天天噜噜| 人人做人人看人人摸| 六月激情婷婷| 五月天婷婷涩涩| 亚洲亚洲人成综合网络| 开心五月网 | 先锋影音男人的天堂AV| 日本片日本片祼观看网站在线看中文版网页在线看| 五月天婷久精视频| 丁香五月婷婷成人网| 99re66热这里只有精品| AV成人在线播放| 91丁香婷婷综合久久欧美| 五月天激情婷婷| 9久国产精品| 亚洲视色| 丁香婷在线| 天天做天天爱天天爽在| 婷婷丁香社区网| 久久久久久久久久91| 青青艹b| 四季8848精品成人免费网站| 99热这里是精品| 91久久久久久| 9999久久久久| 91在线日| 另类图片色五月| 五月天天天天天天天天天天天天天天天婷婷婷| 久久欧洲综合网| 99在线看片| www..com色爱| 99热在线中文字幕| 五月婷婷久久内射| er99免费视频在线| 亚洲99手机免费看视频| 思思热精品免费视频| 婷婷另类开心| 五月婷婷中文网| 午夜性爱影视一区77| 亚洲婷婷开心五月| 无码激情精品色婷婷久久久久| 激情综合网五月天天| 婷婷五月成人有| 成人色站,在线视频,看片-SS1AV| VA国产在线综合网站| 天天色综合色色色色色。| 亚洲视频a| 五月激情丁香六月狠狠干| 日本一级一级一级一级| 五月六月丁香婷婷在线观看| 久久性爱网站| 色婷婷综合网站| 亚洲另类日本| 在线成人网站| 91啪啪视频| 成人做爰A片免费看视频| 精品人妻伦九区久久AAA片| 全部老头和老太XXXXX| 玩熟女五十AV一二三区| 婷婷六月丁综合| 99热丁香| 99惹在线精品免费观看| 99热日本| 激情五月综合婷婷| 五月婷婷之综合激情| 欧美肉大捧一进一出免费视频| 日日躁夜夜躁狠狠久久AV| www.久99| 精品成人在线观看| 婷婷五月天无码视频| 99久久精品视频女神1| 五月婷婷在线免费观看 | 国产人妻777人伦精品HD| 97碰 在线视频观看| 色色色区| 久久99热这里| 日日噜噜夜夜狠狠久久丁香六月| 久久久婷| 亞洲自怕| 九九色图| 天天草天天日| 91偷拍视频| 亚洲亚洲人成综合网络| 超碰伊人碰婷婷五月| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 青草激情综合| 五月综合激情| 婷婷终合色图| 色婷婷丁香五月在线| 婷婷五月天视频亚洲| 婷婷五月天福利| 免费观看高清无码| 青青夜夜狠狠夜夜狠狠| 99热这里只有精品1| 五月婷婷激情网| 在线综合91| WWW丁香五月| 色播五月网| 俺去也五月| 丁香五月综合激情啪啪| 五月婷AV| 色欧洲| 伊人综合婷婷| 丁香五月天无码| 婷婷激情社区| 五月停停色| 这里只有精品视频在线看| 99热66| www.久久婷婷| 亚洲综合色棒| 中文中文在线| 婷婷大香蕉| 五月丁香六月婷婷成人电影| av操逼网| 二人电影免费版在线观看| 婷婷六月天天| 色色婷婷婷丁香五月天| 久久99热精品a片在线观看| 五月激情六月丁香| 色色色婷婷五月| 五月天婷婷在线观看| 亚洲视频一区| 91免费在线视频6| 亚洲中文字幕av| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 五月天婷婷基地| 五月久久婷婷| 欧美激情综合色综合啪啪五月| 久久性爱激情| 五月天六月婷婷电影| 成人做爰高潮A片免费视频| 久久久五月天| 激情丁香婷婷| 99ri精品视频在线观看| 9久热在线视频精品| 美国不卡视频| 久久久这里有精品| 97碰碰人人视频| 色婷婷AV久久久久久久| 综合久久狠狠| 天天综合亚洲综合| 91久久久久久久久久18| 激情www.98com| 人妻熟人中文字幕一区二区| 天天爽天天弄| 风流少妇A片一区二区蜜桃| 涩涩涩,com| 伊人五月天| 天天日狠狠| 亚洲精品又粗又大又爽A片| 五月天 综合 在线| 国产XXXX搡XXXXX搡麻豆| 可以直接看的av网站| 免费无码毛片一区二区A片| 六月丁香五月激情网| 色一色综合| 天堂草在线观看| 亚洲成人av中文| 亚艹艹| 操婷婷久久| 成人一级片| 久久婷婷色色| 亚洲婷婷五月天| 色丁香在线视频| 69热91天堂| 人人摸人人摸| 中文精品在| 色色网站在线| 开心日韩丁香婷婷五月| 夜色五月天| 人人摸人人摸| 中美日韩成人在线| 色婷婷丁香| 婷婷五月婷婷五月天| 亚洲午夜国产成人电影VA国产欧…| 五月婷婷自拍视频| 综合色色综合| 激情五月综合| 思思久久思思| 影音先锋91资源站| 久久婷婷五月天| 久久狠色噜噜狠狠狠狠97| 色综合色香蕉网| 日狠狠| 国产人妻操逼| 九月婷婷在线视频| 亚欧州精品视频| aaa丁香五月天| 亚州欧美黄色电影| 黄色三级日本| 婷婷丁香亚洲五月天| 青青艹b| 日韩无码色色| 夜丁香五月婷婷| 色五月琪琪| 久cao香蕉影院| 久久婷婷色综合| 婷婷五月天无码视频| 精品操逼一区二区| 五月丁香综合网| 夜夜骑天天玩天天日| 婷婷黄色| 日本道久久91| 大香蕉人妻| 婷婷五月综合网| 26uuu色噜噜精品一区| 99热在线看| 日本人妻伦在线中文字幕| 婷婷激情综合| 五月天婷婷丁香视频| 欧美在线看| 大香蕉久久视频久久视频 | 国产精品色色| 国产精品色婷婷久久久精品| 操逼棍操逼| 99色在线| 99热网站| 成人婷婷色综合| 91操人视频| 亚洲va成人va成人va在线观看| 大香蕉久久久| 九九久久精品| 丁香五月777| 成人精品网站在线观看| 亚洲综合色婷婷| 丁香五月天婷婷久久| 人妻22p| 五月婷婷狠天天色综合| 日本色视| 亚洲12p| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 日日夜夜干| 丁香五月六月综合激情| 97深爱伊人综合| AV九九| 在线视频激情网站| 超碰色热| 狠狠精品干练久久久无码中文字幕| 99热老网站| 激情五月丁香亭亭| 婷婷五月天激情丁香| 2020久久婷婷五月| 五月天五月色婷婷综合| 色色操| 超碰人人操人人干| 9久热在线视频精品| 婷婷激情啪啪| 2022久久婷婷| 激情五月天婷婷丁香| 丁香88AV五月婷婷| 极骚大香蕉伊人| 免费在线观看AV网站| 99精品在线| 激情五月综合网| 色噜噜综合网| 天天插天天插天天插天天插| 97碰在线视频| 五月色网| www色五月| 婷婷亚洲天堂| 婷婷久久综合| 成人国产欧美大片一区| 噼里啪啦完整版中文在线观看| 亚洲V国产V欧美V久久久久久| 亚洲无AV在线中文字幕| 99国产精品白浆在线观看免费| 在线99热| 国产精品久久久久久久久久免费| 一本大道嫩草AV无码专区| 国产亚洲精品AAAAAAA片| 成人综合网站| 天堂久久久久天堂网| 色色网站日本91| 六月色 亚洲| 玖玖婷婷视频| 玖玖综合色| 九九综合精品| 99爱视频免费看| 99热这里只有精品首页| 婷婷综合精品| 激情丁香五月婷婷| 黄色网址五月婷婷| 海外网站专业操老外| 久久综合激情| 天天干夜夜b| 日屌日日操日日色| 九九久久99精品免费观看www| 人妻久久久| 婷婷五月丁香青青草在线| 日韩精品无码AV| 中文字幕av久久爽一区| 五月丁香少妇A| 99热国产这里只有精品| 成人在线不卡| 大伊香蕉精品视频在线| 第1影院之五月婷婷| 99热最新| 色综合网综合| 91久久综合亚洲鲁鲁五月天| 最近免费中文字幕大全高清大全1| 日韩三级高清无码| 國語久久婷| 人妻熟妇六区| 婷婷五月色综合| 天天插天天插| 五月婷婷久久久久| 婷婷五月开心中文字幕色| 婷婷开心激情| 综合激情五月丁香| 久久码久久无清| www.99热日韩.com| 六月丁香久久| 五月激情综合网| 亚洲久艹| 色婷婷激情小说网| 在线观看亚洲视频影院| 久色精品| 日本久久高清| 婷婷瑟瑟五月天| 婷婷丁香六月| 亚洲免费观看高清完整版AV线| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 一片AV片免费播放| 人妻性爱av网站| 这里只有精品免费视频| 婷婷成人五月天| 五月天婷婷爱| 日日舔夜夜操| 欧美大肥婆大肥BBBBB| 久久婷婷五月综合精品蜜芽| 五月天成人在线| 婷婷五月天小说| 久久五月天色婷婷| 岛国AV网站| 欧美成人一区二区三区在线视频| av久热| 色婷婷丁香五月天在线观看| 国自产拍偷拍精品啪啪一区二区| 丁香婷婷网| 成人丁香| 91在线看片| 五月丁香色播| 婷婷中文字幕| 伊人网欧美在线男人天堂五月丁香| 99热在线播放| 婷婷狠狠爱| 久久开心五月婷婷| 成人综合网站| 久久亚洲A| 9久久精品| 久9热视频在线观看| 激情五月色播五月| 日本三级第一页| 五月欧美色色五月| 丁香五月电影| 性爱动图国产麻豆一区二区三区| 色婷婷免费观看| 踪合专区啪啪| 丁香五月婷婷五月| 成人免费网站免费看| 天天色,天天日,天天做| 婷婷丁香五月天之开心少妇| 丁香婷婷啪啪啪| 亚洲精品又粗又大又爽A片 | 777久久综合视频| 99热都是精品| 无码九九| 激情五月婷婷综合| 五月婷婷色综图片| 久99热在线观看| 天天色天天日| 欧美槡BBBB槡BBB少妇| 99热热九九| 综合婷婷| 五月天成人网婷婷| 九九99精品| 日本色婷婷五月天成人电影| 国产欧美日韩综合精品一区二区| 综合久久综合| 九九亚洲视频| www.99热日韩.com| 亚洲永久免费| 婷婷综合网站| 99在线观看| 天天开心天天色| 99热在线观看| 丁香婷婷久久老熟女综合网| 色99网| 九九爱这里只有精品| BBWCUCKOLD精品熟妇| 成人精品一区二区三区四区五区 | 婷婷午夜| 久久久思思热| 8090在线影视少妇| AV79| 97一区二区| 婷婷五月天高清无码| 色婷婷影| 五月丁香六月婷婷激情视频在线观看免费| 婷婷五月色惰| 婷婷综合| 他改变了拜占庭| 99噜噜噜在线播放| 99思思热只有在这里看| 五月婷婷综合在线视频| 国产精品色色| 婷婷放心五日爱| 色综合色色色| 五月天婷婷色小说| 亚洲成人无码片| 婷婷 丁香 精品| 五月丁香手机在线| 国产av天天插天天操天天爽| 五月丁香狠狠| 大香蕉狼人久久| 久久久网站| 五月婷婷激情色情网| 国产亚洲成AV人片在线| 色99在线| caobi四区| 久热视频97AV在线观看| 狠狠爱婷婷| 99re免费精品视频| 国产精品久久久久久喷浆| 夜夜撸日日操| 日韩一级A片黄色| 日韩黄在免| 女人天堂AV| 人妻熟妇国产精品| 色激情网| 九九aV| 思思久久99热只有频精品66| 色香久久| 在线看九一V图片| 丁香五月人妻| 久热这里只有精品性色AV| 欧美色必爱| 天天操天天干天天日| 久热这里精品免费| 久久人人九九| 99爱在线| 任你爽免费视频| 丁香婷婷视频一区二区| 97色在线| 婷婷五月综合激情| 97欧美在线| 激情综合网激情五月丁香| 99热99在线| 九九综合九| 久机视频这只有精品| 九九热视| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 天堂呦 呦百度搜索-百度搜索| 碰碰91| 日日夜夜天天综合| 九九色综合| AV色婷婷| 日韩啪图| 这里只有精彩视频| www.maotanji.com| 亚洲成人人人操| 五月天日日操夜夜操 | 丰满少妇猛烈A片免费看观看| 婷婷五月天激情网| 激情五月天之五月婷婷| 国产成人av在线播放| 丁香涩涩爱| 26uuu亚洲色| 色婷婷色综合激情91| 天天插操| 极品少妇XXXX精品少妇偷拍| 婷婷激情六月| 六月丁香激情综合| 五月综合亚洲| 777久久综合视频| 在线观看亚洲AV| 99视频极品在线香蕉| 日韩丁香涩| 99爱视频在线观看| 久久婷婷伊人| 在线色色| 色五月婷婷亚洲最大| 夜丁香五月婷婷| 国际国外精品欧洲南美洲专区无码不卡| 五月婷婷中字在线| 国产操B视频| 一月婷婷色色| 激情婷婷久久| 免费播放AV| 日本97在线看片| 六月婷欧美丁香综合| 色青青电影色五月| www.色婷婷.com| 99自拍视频| 狠狠爱综合| 99啪啪网| 亚洲综合久| 久99| 九九热av| 99无码视频| 丁香激情五月| AV网站免费在线| 婷婷五月天堂| 五月花婷婷| av色婷婷| 噜噜在线| 天天日综合| 99性爱视频| 亚洲狠狠色丁香婷婷综合久久| 在线播放成人网站| 无码成人AAAAA毛片AI换脸| 久久综合婷婷激情| 3DAV亚洲香蕉久久 一区二区| 日韩AV无码影片| 97色综合| 五月天狠狠色| 伊人99热| 久久精品99| 五月色无码| 五月激情婷婷开心| 99热在线观看精品免费| 五月天国产| 久草A片| 久久99视频| 夜夜穞天天穞狠狠穞AV美女按摩| 亚洲精品第一色色色色色色| 国产亚洲成人综合| 色约约视频一区二区三区四区五区 | 激情网第四色| 另类图片 五月激情| 久久综合激情婷婷激情| 91久久色| 操操啪| 狠狠干狠狠干| 色色色色色日韩午夜激情 | 午夜一区| 嫩草AV久久伊人妇女超级A| 先锋影音男人的天堂AV| 91免费试看| 久久性爱视频| 亚洲六月婷| 丁香婷婷色情| 91超级碰| 五月婷婷久久大片| 婷婷情色五月天| 久久综合热17c| 五月婷婷六月丁香激情综合网| 久久开心五月天激情| 色墦五月丁香| 久久久久久久久久久久久久久久一道本| 婷婷色色色| 天天性视频| 久8色色| 六月婷婷综合| 蜜臀AV在线观看| 日韩欧美一道四区中文字幕| 激情丁香五月婷| 草综合网| http://www.lingjunshare.com/ | 婷婷五月激情小说| 99久久久免费| 另类五月激情| 激情丁香五月婷婷| 色婷婷yy久| 99热欧美在线观看| 五月婷婷中文字幕AV| 亚洲激情AV| 色噜噜狠狠狠狠色综合久欧美| 无码色色色色色| 婷婷深爱五月丁香| 六月婷婷激情| 在线超碰精品| 欧美综合婷婷欧美综| 久久婷婷五月综合啪| co超碰在线观看| 成人AV在线中文版| 日日骑夜夜撸| 天天综合精品| 教师性爱毛片| 91人人操人人看| 开心五月婷婷在线| 色五月激情综合网| 92国产福利| 丁香五月六月久久综合| 国产成人va在线| 婷婷五月天影院| 亚洲人妻AV| 五月婷婷六月色| 国产又黄又爽又色的免费| 日本一级特黄大片AAAAA级| 天天搞天天色综合| 少妇性按摩无码中文A片| 五月婷婷导航| 色五月影视| 苗黎美女四级成人版一级二级毛片| 丁香婷最新动态| 婷婷五月综合网| BlACKEDRAW视频一区二区| 久久综合热17c| 五月天婷婷久久| 秋霞免费视频| 色婷婷婷av| 亚州操人在线视频| 亚洲在线操| 色综合中文| 五月天丁香久久综合| 亚洲婷婷六月天| 色噜噜狠狠色综无码久久合欧美| 婷婷99狠狠| www.99日本| www91精品| 激情五月天网| 日韩美女羞羞网站在线观看| 丁香五月天天高清在线| 国产AV一区二区三区最新精品| 美女亚洲五月丁香| 日日噜噜夜夜狠狠久久丁香六月| 婷婷久久网| 色婷婷久久| 久久激情五月网| 婷婷操超碰| 久久综合中文字幕| 色五月婷婷91| 色色综合热| 99视频| XX久久| 国产99久久久| 全高清无码视頻| 五月停停色色丁香| 婷婷五月天综合网| 99精品在线观看视频| 亚洲久久视频| 久久久久久人妻|