这个在线考试系统有点东西
java在线考试系统在线测试系统 使用技术 mvc架构servletjdbcmysqljsp百度文本相似度识别 软件 eclipse/Myeclipse/mysql/jdk1.8/tomcat8.0 功能描述普通陪你过用户管理员命题人阅卷人 普通用户可以进行在线测试测评成功录入个人信息生成对应的账号面查询个人的考试成绩等 管理员可以对题库题型试卷考试员工阅卷进行管理 命题人可以对题库进行管理 阅卷人进行阅卷使用百度短文本相似度能够根据正确答案对学生的主观题进行智能判分近似0.8以上认为满分0.5以上7分0.3以上5分否则0分 包含需求文档java源码数据库源码使用说明看到JavaServlet还能撑起一个完整的在线考试系统是不是觉得老技术栈也能打咱们直接扒代码说话。系统用MVC分层明显JSP当视图层Servlet控制路由JDBC操作MySQL。先看用户注册怎么玩// UserRegisterServlet.java片段 protected void doPost(HttpServletRequest request, HttpServletResponse response) { String username request.getParameter(username); String password BCrypt.hashpw(request.getParameter(password), BCrypt.gensalt()); try(Connection conn DriverManager.getConnection(DB_URL, DB_USER, DB_PASS)) { String sql INSERT INTO users (username, password_hash, role) VALUES (?, ?, STUDENT); PreparedStatement pstmt conn.prepareStatement(sql); pstmt.setString(1, username); pstmt.setString(2, password); pstmt.executeUpdate(); // 生成准考证号逻辑... } catch(SQLException e) { // 异常处理 } }这里用了BCrypt加密密码比直接MD5安全多了。注意PreparedStatement防SQL注入的细节老生常谈但总有人忘。注册完自动生成准考证号的逻辑藏在工具类里通过时间戳随机数保证唯一性。阅卷模块才是重头戏百度AI的短文本相似度接口用得挺溜// 智能阅卷核心逻辑 public float autoScore(String studentAnswer, String standardAnswer) { AipNlp client new AipNlp(APP_ID, API_KEY, SECRET_KEY); JSONObject res client.simnet(studentAnswer, standardAnswer, null); float similarity res.getJSONObject(output).getFloat(score); if(similarity 0.8) return 10f; else if(similarity 0.5) return 7f; else if(similarity 0.3) return 5f; else return 0f; }实测发现百度的相似度算法对短句比对效果还行长段落容易翻车。阈值设置成0.8给满分是不是太严格了有学校要求0.6就给及格分这个得看甲方需求。题库管理有个骚操作——动态SQL拼接// 动态组合查询条件 public ListQuestion searchQuestions(String keyword, String type) { StringBuilder sql new StringBuilder(SELECT * FROM questions WHERE 11 ); ListObject params new ArrayList(); if(StringUtils.isNotBlank(keyword)) { sql.append(AND content LIKE ? ); params.add(%keyword%); } if(StringUtils.isNotBlank(type)) { sql.append(AND question_type ? ); params.add(type); } // JDBC执行查询... }这种写法比在JSP里拼字符串安全多了11的套路虽然被diss过但确实好用。注意用StringBuilder避免字符串拼接性能问题虽然在小系统里差别不大。java在线考试系统在线测试系统 使用技术 mvc架构servletjdbcmysqljsp百度文本相似度识别 软件 eclipse/Myeclipse/mysql/jdk1.8/tomcat8.0 功能描述普通陪你过用户管理员命题人阅卷人 普通用户可以进行在线测试测评成功录入个人信息生成对应的账号面查询个人的考试成绩等 管理员可以对题库题型试卷考试员工阅卷进行管理 命题人可以对题库进行管理 阅卷人进行阅卷使用百度短文本相似度能够根据正确答案对学生的主观题进行智能判分近似0.8以上认为满分0.5以上7分0.3以上5分否则0分 包含需求文档java源码数据库源码使用说明权限控制这块用Filter简单粗暴!-- web.xml配置 -- filter-mapping filter-nameAuthFilter/filter-name url-pattern/admin/*/url-pattern /filter-mapping配合Session校验用户角色虽然不如Shiro专业但对于小型系统够用了。有个坑是JSP页面里别忘做二次校验防止直接URL访问越权。源码里数据库设计文档挺有意思考试表用testpaper和examrecord分开存储试卷模板和考试记录避免了数据冗余。试卷生成时的随机抽题算法值得细看用了ORDER BY RAND()但是加了limit限制算是在性能和随机性之间折中。要说缺点前端还是老旧的JSPJSTL要是改造成Vue前后端分离会更香。不过作为毕设或者课程设计这个完整度已经能吊打一堆只会写CRUD的系统了。部署文档写得详细从导入SQL到配置Tomcat端口都有截图对新手友好。