web应用程序设计实验报告
web应用程序设计实验报告
实验室的应用程验报空调坏了,风扇嗡嗡转着,序设吹起的计实纸角压着键盘。我盯着屏幕上的应用程验报404错误,已经过了二十分钟。序设这是计实第三次把表单的action路径写错,少了一个斜杠,应用程验报整个登录功能就瘫痪了。序设旁边同学递过来一瓶冰水,计实说:“你试试把method改成POST。应用程验报”我改了,序设页面刷新,计实登录成功。应用程验报那一刻我突然意识到,序设web开发的计实学习,就是不断撞墙再爬墙的过程。
本次实验的任务是构建一个简易的学生信息管理系统,要求实现数据的增删改查,前端用HTML+CSS+JavaScript,后端用PHP,数据库用MySQL。听起来简单,但真正动手才发现,每一个环节都是坑。比如编码问题,中文乱码在页面上显示成“锟斤拷”,我花了半小时才弄明白是数据库连接时没设置utf8字符集。这种细节,课本上不会写,只有踩过才知道。
我把数据表设计成三张:学生表、课程表、选课表。外键约束一开始没加,删除学生记录时,选课表里残留无效数据,查询结果就出现幽灵行。后来加上ON DELETE CASCADE,逻辑顺了,但代价是每次操作前都得检查关联关系。这让我想到,真实项目的复杂度往往不在功能本身,而在数据之间的耦合。
前端部分,我用了最简单的表格布局,没上框架。提交按钮的点击事件里,先做前端校验,再通过fetch发送异步请求。后端接收JSON,解析后拼SQL语句。写到这里,我犯了个低级错误——直接字符串拼接用户输入,完全没做过滤。被老师指出SQL注入风险后,我改用PDO预处理语句。说实话,改完心里踏实多了,毕竟谁也不想自己的系统被人用单引号干掉。
调试过程最磨人。有一次删除功能失效,数据没删掉,但页面却提示成功。我打了console.log,发现是前端把响应里的status字段读成了字符串“true”,而我判断用的是布尔值true,严格比较失败。这不算大问题,但暴露了前后端数据类型不一致的隐患。后来我统一约定,所有接口返回都用code字段,0表示成功,非0表示失败,再没出过这种乌龙。
实验报告写到一半,我回头看了看最初画的架构草图,简陋得可笑。但正是从那个草图到现在能跑通的系统,中间隔了无数个“为什么不行”的深夜。web应用程序设计,表面上是代码堆砌,实际上是对细节的敬畏。一个空指针、一个未转义字符、一个遗漏的索引,都可能让整个系统崩溃。老师说得对:“你写的每一行代码,都是在和未来的自己对话。”现在,我终于听懂了这句话。
最后提交前,我把所有输入框加了maxlength限制,给密码框加了autocomplete="off",还顺手给页面加了个加载动画。这些改动不涉及核心功能,但用户体验确实好了不少。技术之外,设计感同样重要。毕竟,用户不会关心你用了什么框架,他们只在乎页面好不好用,数据准不准。
风扇还在转,屏幕上的系统跑起来了。我关掉调试工具,把报告保存,文件名是“最终版_v3”。谁知道呢,也许明天还得改。









