网页定时刷新并跳转
在web开发中,有时会遇到定时跳转页面的需求。在HTTP协议中,定义了一个Refresh头字段,它可以通知浏览器在指定的时间内自动刷新并跳转到其它页面,接下来,通过一个案例来演示如何使用response对象实现网页的定时刷新并跳转,如例1所示。
例1 RefreshServlet.java
1 package cn.itcast.chapter05.response;
2 import java.io.*;
3 import javax.servlet.*;
4 import javax.servlet.http.*;
5 public class RefreshServlet extends HttpServlet {
6 public void doGet(HttpServletRequest request,
HttpServletResponse response)
7 throws ServletException, IOException {
8 // 2秒后刷新并跳转到传智播客官网首页
9 response.setHeader("Refresh","2;URL=http://www.itcast.cn");
10 }
11 public void doPost(HttpServletRequest request,
HttpServletResponse response)
12 throws ServletException, IOException {
13 doGet(request, response);
14 }
15 }
在web.xml中配置完RefreshServlet映射后,启动Tomcat服务器,在浏览器的地址中输入URL地址http://localhost:8080/chapter05/RefreshServlet
访问RefreshServlet,发现浏览器2秒后自动跳转到了传智播客的官网首页,如图7所示。
图7 运行结果
有时候,我们希望当前页面可以自动刷新,例如,定时刷新火车票页面,查看车票的剩余情况。这时,我们可以通过response.setHeader("Refresh","3")语句使当前页面定时刷新。接下来,对例1进行修改,使当前页面每隔3秒自动刷新,修改后的代码如例2所示。
例2 RefreshServlet.java
1 package cn.itcast.chapter05.response;
2 import java.io.*;
3 import javax.servlet.*;
4 import javax.servlet.http.*;
5 public class RefreshServlet extends HttpServlet {
6 public void doGet(HttpServletRequest request,
HttpServletResponse response)
7 throws ServletException, IOException {
8 // 每隔3秒定时刷新当前页面
9 response.setHeader("Refresh","3");
10
11 response.getWriter().println(new java.util.Date());// 当前时间
12 }
13 public void doPost(HttpServletRequest request,
HttpServletResponse response)
14 throws ServletException, IOException {
15 doGet(request, response);
16 }
17 }
启动Tomcat服务器,在浏览器的地址栏中输入URL地址http://localhost:8080/chapter05/RefreshServlet
访问RefreshServlet,可以看到浏览器每隔3秒刷新一次,并且输出了当前的时间值。