如图,我想让程序先执行前面的代码,然后沉睡3秒再执行后面的代码。但是为什么总是先沉睡,并没有执行前面的代码,要等沉睡完之后才会执行前面的代码。

解决方案 »

  1.   

    你在最后打印后面flush一下试试
      

  2.   

    首先你的问题属于web版块。感觉你的代码逻辑本身有问题,forward后会切换到新的页面输出,之前的html输出就丢失了,永远也不会显示在页面上。所以应该和sleep无关。你确认前面的html输出和之后的forward都显示在一个页面上了么?
      

  3.   

    不行,我把fluseh写在了沉睡前面,他会报错,说response在转发前就已经结束了,如果把flush写在沉睡后面,那么跟之前一样会先沉睡后执行前面的代码
      

  4.   

    把flush写在沉睡之前的结果,是会显示购买成功,然后再沉睡,但是在沉睡三秒之后转发就出问题了。但是如果写在沉睡之后,就没效果了。
      

  5.   

    嗯,我就说在点击购买之后,出现购买成功,显示三秒后返回购买界面。你的这种需求应该在页面用js做2步处理,即去掉第一个页面的forward,在购买成功之后使用setTimeout延迟3秒后再用js跳转到购买界面。
      

  6.   

    感觉逻辑有点错误吧,提示语可以放到一个单独的jsp,if成立后就直接跳转到这个jsp,然后通过js的onload来做延迟跳转就可以阿