实现servlet延时跳转页面的方法

实现servlet延时跳转页面的方法,第1张

实现servlet延时跳转页面的方法,第2张

根据MVC模式的要求,servlet的主要功能是进行控制,也就是跳转页面.那么,有时候我们想在跳转页面前,在某个页面输出一些提示信息,并停顿几秒,再跳转到希望到达的页面(很多论坛在你登录后或发帖后都有这样的功能吧,别人怎么实现的还没研究过^)。
  以下方法是Examda提示:
  1.使用Thread.sleep()来延时。不成功。因为:
  1)如果使用out.println()先输出某些内容,再sleep几秒,最后用sendRedirect等方法跳转,那么,out.println()内的内容不会被输出,因为必须调用out.flush()方法清空缓存,内容才会显示在页面上。
  2)如果使用out.println()输出内容,然后调用out.flush()将内容显示到页面上,再sleep几秒,最后用sendRedirect()等方法跳转页面,则直接报异常。因为当out.flush()时,request,response已经被提交,他们的实例已经销毁,当然不能再去调用其方法了。
  2.使用out.println()为页面写上标记, ,表示5秒后跳转到target.jsp页面。
  3.再JS中写location=target.jsp来实现跳转(还没实验过,理论上可行)。
  这时,我们有2个问题要解决,一个是,我想实现页面上显示倒计时读秒,读到1时再进行跳转。另一个是,那么多JS和HTML,让我顺着用out.println()写到Servlet里,我肯定吐血死掉。
  先来看第1个问题吧,貌似有2个办法:
  1) 代码很简单,也是利用meta实现自动跳转,然后用setTimeout反复调用某个函数,来重写div中数字的值。但是理论上来说,这样做的话,计时不够精确吧。。。。。那么就看第2个方法吧。
  
  
  
  
  
  
  var i=5;
  function getTime(){
  document.getElementById('num').innerHTML=""+i+"";
  i-=1;
  var x=setTimeout('getTime()',1000)
  if(i

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 实现servlet延时跳转页面的方法

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情