游客发表
“你这个旅游网站的游网数据库是怎么设计的?”——答辩老师的第一个问题就直指核心。我做的站答是ASP+Access的旅游网站,说白了就是辩问经典到有点过时的组合,但正因为老,游网每个环节都像被放大镜照着,站答藏不住一点含糊。辩问数据库里我建了五张表:管理员、游网景点、站答线路、辩问订单、游网留言。站答景点和线路是辩问一对多,线路和订单是游网一对多,留言独立挂着。站答老师追问:“为什么订单不单独关联用户表?辩问”我愣了两秒,老实说:“因为没有注册功能,我默认游客直接下单留联系方式。”他点头,没再深究。
接着他问了个实操问题:“Access并发访问差,你怎么处理?”这问题我准备过,但不想背答案。我告诉他,我用了连接池概念,虽然ASP里没有真正的池,但我在每次操作后立即关闭Connection对象,还用Application锁处理计数器。他笑了:“你这算伪池。”我也笑了,承认是。但答辩不是真刀真枪上线,能讲清楚权衡就够了。他接着问:“那如果真上线,你会换SQL Server吗?”我说会,但Access胜在部署简单,适合课程设计这种轻量场景,真上线就换,代码里SQL语句我尽量写标准语法,迁移成本不高。
页面设计这块,老师问了个让很多人翻车的问题:“你首页的轮播图是JS写的还是ASP生成的?”我答是JS读取一个ASP接口返回的JSON。他挑眉:“为什么不用ASP直接输出到页面?”我说这样图片数据更新不用改页面,而且能把前端展示和后端逻辑拆开,虽然只是个小网站,但习惯养好了。他追问接口怎么防刷新重复请求,我愣了一下,说:“我加了个时间戳参数,每次请求带随机数。”他哦了一声,没再说话。其实我知道这不算完美方案,但至少证明我考虑过缓存问题。
安全方面,他问得特别细:“你留言板怎么防SQL注入?”我直接给他看代码片段——用了参数化Command对象,没用字符串拼接。他追问:“那XSS呢?”我说输入框过滤了尖括号和script关键字,输出时用Server.HTMLEncode转义。他点头,又问:“你管理员密码存的是明文?”这问题有点扎心,我低头说:“是MD5加密,但没加盐。”他叹了口气:“以后记得加盐。”我赶紧记下。其实我心里清楚,MD5不加盐等于裸奔,但答辩现场承认不足比强行解释更稳妥。
最后他问了个开放题:“你觉得这个网站最大的缺点是什么?”我想了想说:“太像作业了。”他笑了,我接着说:“功能都齐全,但没有真实用户反馈过,订单流程是模拟的,支付也没接。如果真做旅游网站,得考虑景区库存同步、退改签规则、用户评价体系——这些我没做。”他点点头:“能意识到这点,比功能做得多更重要。”我松了口气。答辩结束后我回想,其实老师最看重的不是你做得有多完美,而是你对自己项目的理解有多深。那些被问住的瞬间,恰恰是暴露学习深度的地方——承认不懂,比硬编一个答案更让人信服。
友情链接