• 【Software testing Homework1】 An error occurs...


    
    
      当我初次接触JavaWeb编程时,在编程实验课上,验证码刷新的问题困扰了我好久,对我印象也是很深刻,下面我就描述一下出现这Error。
      关于验证码刷新的问题,我事先在后台准备好了一个动态随机生成验证码图片的接口,所以在jsp页面中需要进行的操作就是访问这个网址,然后获得url返回的图片并显示在页面中,在用户输入验证码点击验证之后,通过在Session中存储的验证码序列进行比对验证来完成这项工作即可。
      当我初次点击页面访问的时候,验证码工作非常正确,也成功的完成了验证,没有出现任何问题,但是当我想要通过刷新页面来测试验证码是否是动态生成的时候,我发现无论我如何刷新页面,验证码始终不会变化,而是保持在原来的样子。这就使我非常纳闷,并一力寻找解决的方法。
      起初,我在jsp页面中设置的获取图片的URL为:
    http://localhost/img
      这样的设置下,无论我如何刷新页面,验证码也不会动态的改变,但是如果我重启浏览器,清除缓存之后重启浏览器再次访问上述网址,发现可以有不同于之前的验证码出现,但是一旦我想要通过刷新页面来实现刷新验证码,那么就会失败。因此我怀疑是浏览器请求的问题,所以我查阅了相关资料,发现浏览器在处理同一个url时,是不会向服务器多次发送同一个请求,而是从缓存中调取页面的,这是造成我页面刷新失效的原因。
      在知道了错误出现的原因之后,我就尝试进行修改,根本原因在于每次请求的URL都是一样的,想要修复这个错误,就要从URL下手。因为要添加一个随机数,并且保证随机数不会和之前出现过的有重复的地方,我们很容易就想到了时间这一属性,想要在URL中增加时间戳并不难实现,需要将jsp页面中的URL改为动态生成即可,具体代码如下:
    String url = "http://localhost/img?"+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
      这样保证了在刷新页面时,请求的url会随着时间变化,这样就可以保证每次都是访问的不同的页面,获取到的就是不同的验证码了,错误解决。
  • 相关阅读:
    js 比较日期的大小
    日历(从今天起后面的14天)
    数字转大写
    object对象进行深拷贝
    浏览器渲染机制
    t-5.倒计时(秒杀效果)--本地--服务器(待续)
    s-1.rem自适应
    t-3.跑马灯
    t-2.手机端简单轮播(无滑动效果)
    16.弹性布局
  • 原文地址:https://www.cnblogs.com/mumu95/p/5249900.html
Copyright © 2020-2023  润新知