三九宝宝网宝宝百科宝宝知识

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

11月09日 编辑 39baobao.com

[Servlet环境下取得spring的ApplicationContext]项目的应用里重写了 HttpSessionListener,在用户登录超时后需要对数据库进行操作,操作类的 service 自然从 spring 的 application context 里取比较好。 方法: 1. 取得 Servle...+阅读

根据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秒后跳转到targetp页面。

3.再JS中写location=targetp来实现跳转(还没实验过,理论上可行)。

这时,我们有2个问题要解决,一个是,我想实现页面上显示倒计时读秒,读到1时再进行跳转。另一个是,那么多JS和HTML,让我顺着用out.println()写到Servlet里,我肯定吐血死掉。

先来看第1个问题吧,貌似有2个办法:

1) 代码很简单,也是利用meta实现自动跳转,然后用setTimeout反复调用某个函数,来重写div中数字的值。但是理论上来说,这样做的话,计时不够精确吧。。。。。那么就看第2个方法吧。

欢迎您!

注意!!页面将在5

推荐阅读
图文推荐