重点在于,在一个网站里面,有两个地方要使用验证码,而且参数不一样.
这样的话,要有三个对象(Bean),分别是, 生成验证码的对象, 和两个验证码参数对象. 并且并且,这三个Bean的SCOPE都要是application, 这样, 在整个网站运行期间,只用这三个Bean就能生成无数张验证码了.
问题就出在初始化和修改参数上.由于是SCOPE为application, 所以自然想到将一个IndexServlet指向网站的根目录, 并且在这个Servlet的init方法里, 连接数据库(或者是XML之类的配置文件), 读取其中的配置参数, 并将两个参数Bean初始化. 想法本来是很好的,但是...... 为啥我决定"试一下"的时候, 偏偏选择了重写init(ServletConfig config)这个方法? 可能是因为有个参数, 想着待会可以用这个参数得到application对象, 从而将两个Bean放进去吧...... 无论如何愚蠢的决定......
果然,之后漫长而又痛苦的调试过程验证了一切. 果然是要重写init()这个不带参数的方法就OK了. 此为郁闷No.1是也......
然后就是另一个郁闷的失误. 这个失误尤为丢脸, 因为我之前已经注意到一次了, 但是在后面居然还是掉了链子, 而且掉的很大. 话说, 从表单或者直接用"后面跟问号和参数"的方式给一个jsp传数据, 应该是用request.getParameter("")方法来获取. 但是, 我偏偏是在一个最最不该的地方, 写了个request.getArrtibute("") , 于是, 就又狠狠地惨烈了将近一天的样子...... 遭罪啊......
最后, 实在是不能容忍的错误. 人家李栋还提醒我了, 说从表单上过来的值, 除了判断是否为null以外, 还要判断是否为空串"". 就是因为忘了这个细节, 本来设计的无敌完美的更新数据库语句总是更新不了, 后来, 在陈老师的指导下, 把那句SQL输出了一下, 一看, 等号后全都是空的...... 恶地个神啊......
无论如何,这个花了我一个星期的超级无敌简单的东西总算是做完了. 接下来又有新的任务 -- Java Mail. 希望这次可以不要有这么多的磕磕绊绊吧......
共勉~
没有评论:
发表评论