从理论梳理到动手实战的一天
对着屏幕敲下最后一行web.xml配置注释时,窗外天都暗了——今天扎扎实实把之前的实验问题整理成了文档,还啃完了验证码程序从控制台到JavaWeb的实现,算是把“理论复盘”和“动手实战”捏在了一块儿。
上午先扎进了实验问题的整理里。枚举、二进制编码、浮点数精度这些知识点,之前学的时候总觉得“大概懂了”,真要落笔写结论才发现藏着不少模糊的细节。比如整理浮点数精度问题时,看着TestDouble.java里那串“0.060000000000000005”的输出,突然想通之前做计算器小练习时的bug根源;还有变量屏蔽原则,翻出当初写错的代码片段,才彻底明白“this.xxx”和“类名.xxx”的真正用处。把这些零散的疑问和结论按模块理进文档里,就像给知识搭了个架子,之前飘着的知识点总算落了地。
下午转战验证码程序,算是给JavaWeb入门做了次小热身。从控制台版开始练手,用StringBuilder拼字符、Random取随机数,这些基础语法倒是没卡壳。但一升级到Web版,立马遇到了新坎:怎么把生成的验证码存起来?图片怎么输出到页面?点击刷新时为啥老加载缓存?查了资料才知道要把验证码放进Session,给图片请求加随机时间戳破缓存,Servlet里还要设置响应类型为image/jpeg。当第一次在浏览器里看到带干扰线的验证码图片,点击能刷新,输入错误还会提示时,那种“从0到1跑通”的成就感,比单纯背语法爽多了。
现在看着文件夹里的问题文档和能跑起来的登录页面,突然觉得Java学习像搭积木:上午整理的枚举、补码、BigDecimal这些理论是“积木块”,下午拼出来的验证码程序就是“小模型”。之前总怕学了忘,现在发现“先梳理清楚原理,再动手落地成程序”,反而记得更牢。
明天打算再琢磨下Servlet的细节,这JavaWeb的门,好像真的能一步步推开了~