我笑了 这么简单? ——异步刷新图形验证码 不刷新网页就能刷新图形验证码

利用一个随机数当做任意参数s的值进行请求,然后就能得到不同请求的URL,每一个请求处理后都会有一个图形验证码的响应,把这个响应地址(也就是请求的URL)赋给img标签的src,img就可以呈现不同的图形验证码了。

笑死我,在做javaweb的注册与登录练习,用servelet绘出了图形验证码,要实现点击按钮更换图形验证码的功能。书上给出的实现方式是:
再新建一个servelet用于将已经写好的用户注册/登录信息转向转发到当前的注册页面,大致流程图如下:

看起来还蛮蠢的,emmm就很多余吧,而且也不是真正的异步,只是形式上看起来像。
我想着平时用的注册登录页面的图形验证码变更也不是这样的呀,再加上之前学了一点ajax的小功能,就想着用ajax做,未果。
于是看了看各大平台,想看看人家咋做的,结果人家登录都没有用图形验证码,离谱!(可能是前几次登录不用,密码错误达到次数限制才用吧,毕竟验证码这东西,蛮烦的)

突然想到我平时等学校信息门户的时候是要用验证码的,于是就审查元素了一下,发现了惊天大秘密!

我猜和这个Math.random()有关系:利用一个随机数当做参数s的值进行请求,然后就能得到不同请求URL,这样给img标签的src赋值。(因为我之前试了用JavaScript添加新的img标签,但是奈何这些新img标签的src都是一样的(即servelet的URL地址),所以每一个标签显示的图形验证码都是一样的)

于是我就亲自试了试,感觉就是那样子,但是又摸不着头脑(因为不知道servelet怎么写,难道还要取一下request里的参数?然后怎么办?这个参数是个随机数,我还要根据这个随机数的不同做不同的验证码?不应该啊,验证码本身就是随机的)。
死马当活马医,就直接用审查元素在原网页的img标签上动刀了,随便写了一个参数和参数值,结果

破天荒,还真成功了!

就,拉胯!我笑了,就这么简单?!我傻了。
异步更换图形验证码,还不需要再写一个servlet!也不用把html改成jsp来读取request中的参数,填到用户注册表单上去!
就,拉胯,从头到尾的拉胯!还是我工大牛逼一点!

结论我放在页顶引用起来了。后来我在网上看到了另一种做法:用时间戳做参数,把当前的时间值拿来当参数值,以产生不同的URL请求。(虽然方法的本质是一样的,但是时间戳好像听起来更高级一些?(哈哈哈哈或许时间戳还有其他用处呢))

转载请注明出处:https://www.cnblogs.com/dragonbean/p/13970743.html
dragonbean

原文地址:https://www.cnblogs.com/dragonbean/p/13970743.html