当前位置: 首页 > news >正文

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

**

一、SubmitOrderServlet.java

**
核心作用
1.request.setCharacterEncoding(“utf-8”):接收前端表单中文(地址、故障描述、分类名)不会出现问号乱码;
2.response.setContentType:告诉浏览器返回内容是 HTML 文本,编码 UTF-8,弹窗 alert 中文正常显示。

获取当前访问用户的服务器会话空间 Session
读取登录用户信息,完成登录 + 权限校验


用户访问报修接口 → 取 Session 登录用户
无登录信息 → 弹窗提示 + 跳转登录页,结束;
已登录但不是学生 → 弹窗提示 + 返回上一页,结束;
已登录且是学生(role=0)→ 放行,执行获取表单、插入报修工单逻辑。


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.java


1.response.getWriter() 获取响应输出流对象 PrintWriter
2.RepairCategoryDao 是报修分类数据访问层 DAO 类,专门负责操作数据库里的故障分类表;
3.调用 DAO 的findAllCategory()方法,执行 SQL 查询数据库中所有报修故障分类;
4.每一条分类数据封装为RepairCategory实体类对象,全部存入 List 集合categoryList;

StringBuilder:高效拼接字符串,相比直接+拼接不会频繁创建新字符串,性能更好;
json.append(“[”):JSON 数组起始符号,最终格式是 [{},{},…]。

1,循环取出每一条报修分类实体 cat;
2.{ 代表单个分类 JSON 对象开始;
3.拼接键值对:
“id”:数字:分类编号;
“categoryName”:“文字”:分类名称(水电 / 门窗等);
4.} 闭合单个分类对象。

1.闭合Json数组
2.out.write():把拼接好的完整 JSON 字符串写入浏览器响应;
flush():强制刷新缓冲区,立刻把数据发送出去;
close():关闭输出流,释放 IO 资源。

实现效果:

http://www.jsqmd.com/news/1043829/

相关文章:

  • Claude模型版本真伪验证指南:识破Opus 4.7等误传信息
  • ICode国际青少年编程竞赛- Python-1级训练场-循环模式解构实战
  • 如何构建企业级可视化数据集成平台:一站式ETL解决方案指南
  • 名表回收行情解读,2026福州实体门店,禹竞鉴定专业出价公道 - 奢品小当家
  • MD Test
  • ERP重塑与未来趋势:SAP的实践及大一统格局(下)
  • 2026合肥黄金变现攻略|正规门店测评与行情避坑全解析 - 薛定谔的梨花猫
  • 卖二手名表被压价?选对门店决定你多拿3万 - 奢品小当家
  • 终极融合方案:Mohist 1.20.1如何让Minecraft服务器同时支持Mod与插件?
  • 一图掌握el-table样式深度定制:从基础美化到高级交互
  • OpenCalib:自动驾驶多传感器空间对齐技术的深度探索与实践路径
  • 网站建设公司怎么选?上海靠谱的网站建设公司推荐
  • 超实用办公神器合集!告别重复加班,日常效率直接拉满
  • 同城搬家电瓶车怎么托运?最省钱方法+平台对比 - 快递物流资讯
  • 如何快速部署医院信息系统:HIS完整安装与使用指南
  • 5步精通:Rufus启动盘制作实战完全手册
  • 2026深圳居民搬家难题如何解决?专业服务商怎么选?深圳家顺兴搬家深度解析推荐 - 深圳家顺兴搬家
  • 深入解析ColdFire MCU系统控制与时钟模块:从原理到实战配置
  • 垃圾分类AI实战:ai53_19/garbage_datasets深度解析与5大核心优势
  • 如何在5分钟内创建逼真的3D树木:Tree.js完整指南
  • 论文双重检测时代落幕?百考通AI解锁高效合规改稿方案
  • C语言文件操作核心函数详解:从fopen到fread/fwrite实战指南
  • 终极Windows风扇控制指南:用FanControl解决华硕主板传感器识别难题
  • 2026上海日式搬家避坑指南|套路太深!久业搬厂才是靠谱优选 - 幸福生活序曲
  • 福州实体回收名表 无隐形收费靠谱门店 - 奢品小当家
  • ERPNext开源ERP:中小企业数字化转型的价值驱动型解决方案
  • GPT-4o本质是实时多模态交互协议,不是GPT-4升级版
  • 深入解析PowerPC 603总线:并发、弹性与一致性协议实战
  • Triton 核心组件之优化管道:让代码“自动跑得快“的幕后功臣
  • 高效能烤盘定制厂家哪个比较靠谱