学校维修系统中提交报修和报修成功页面核心代码的实现

📅 2026/6/19 18:38:24
学校维修系统中提交报修和报修成功页面核心代码的实现
**一、SubmitOrderServlet.java**核心作用1.request.setCharacterEncoding(“utf-8”)接收前端表单中文地址、故障描述、分类名不会出现问号乱码2.response.setContentType告诉浏览器返回内容是 HTML 文本编码 UTF-8弹窗 alert 中文正常显示。获取当前访问用户的服务器会话空间 Session读取登录用户信息完成登录 权限校验用户访问报修接口 → 取 Session 登录用户无登录信息 → 弹窗提示 跳转登录页结束已登录但不是学生 → 弹窗提示 返回上一页结束已登录且是学生role0→ 放行执行获取表单、插入报修工单逻辑。1.request.getParameter(“xxx”)从前端报修页面表单里取出用户填写 / 选择的数据接收 POST 提交的表单值2.typeId 做Integer.parseInt转换前端传过来的表单数据全是字符串报修分类 ID 是数字必须转成 int 才能和数据库分类 ID 匹配对比1.new RepairTypeDao().findAllType()调用 DAO 层查询数据库里全部故障分类封装成RepairType对象集合每个对象存分类 id、分类名称2.增强 for 循环遍历分类列表拿前端传过来的typeId和每一条分类的 id 对比3.匹配成功后取出getTypeName()并break找到对应分类的文字名称立刻跳出循环减少多余遍历1.定义新增报修工单的插入 SQL向repair_order工单表写入数据2.DBUtil.getConn()调用工具类获取 MySQL 数据库连接3.pstmt预编译对象先初始化为 null后续在 try 内实例化方便 finally 统一关闭。4.conn.prepareStatement(sql)预编译 SQL 语句数据库提前解析 SQL 模板执行效率更高同时隔绝恶意注入语句setString(下标,值)按顺序给 4 个占位符填充之前组装好的报修数据executeUpdate()执行增 / 删 / 改 SQL返回受影响行数这里完成工单插入数据库执行成功后向前端输出 JS弹窗提示提交成功自动跳转到系统首页index.html。完整执行流程权限校验通过 → 组装报修表单数据 → 打开数据库连接 → 预编译插入 SQL 并填充参数 → 执行入库成功弹窗成功提示 跳首页失败控制台打印错误 前端弹窗失败提示无论成败关闭数据库连接释放资源。二、GetCategoryServlet.java1.response.getWriter() 获取响应输出流对象 PrintWriter2.RepairCategoryDao 是报修分类数据访问层 DAO 类专门负责操作数据库里的故障分类表3.调用 DAO 的findAllCategory()方法执行 SQL 查询数据库中所有报修故障分类4.每一条分类数据封装为RepairCategory实体类对象全部存入 List 集合categoryListStringBuilder高效拼接字符串相比直接拼接不会频繁创建新字符串性能更好json.append(“[”)JSON 数组起始符号最终格式是 [{},{},…]。1,循环取出每一条报修分类实体 cat2.{ 代表单个分类 JSON 对象开始3.拼接键值对“id”:数字分类编号“categoryName”:“文字”分类名称水电 / 门窗等4.} 闭合单个分类对象。1.闭合Json数组2.out.write()把拼接好的完整 JSON 字符串写入浏览器响应flush()强制刷新缓冲区立刻把数据发送出去close()关闭输出流释放 IO 资源。实现效果