1. 程式人生 > >javaweb之response refresh響應頭控制瀏覽器重新整理(幾秒後跳轉頁面)

javaweb之response refresh響應頭控制瀏覽器重新整理(幾秒後跳轉頁面)

package test.response;

import java.io.IOException;
import java.util.Random;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//控制瀏覽器定時重新整理,這個經常用,比如股票軟體
public class ResponseDemo4 extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		test3(request, response);
	}

	// 實際開發中實用的,就是用<meta>標籤模擬http響應頭
	private void test3(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 假設是一個處理使用者登入的servlet,假設使用者已經成功登入,需要三秒後跳轉首頁
		// servlet是不適合做資料展現的,所以要在jsp中輸出
		String message = "<meta http-equiv='refresh' content='3;url=/day06/index.jsp'/>恭喜您登入成功,將在3秒後跳轉到首頁,如果沒有跳轉,請點選<a href=''>超連結</a>";
		request.setAttribute("message", message);
		this.getServletContext().getRequestDispatcher("/message.jsp")
				.forward(request, response);
	}

	private void test2(HttpServletResponse response) throws IOException {
		// 假設是一個處理使用者登入的servlet,假設使用者已經成功登入,需要三秒後跳轉首頁
		response.setCharacterEncoding("UTF-8");
		response.setHeader("Content-type", "text/html;charset=UTF-8");
		response.setHeader("refresh", "3;url='/day06/index.jsp'");
		response.getWriter().write(
				"恭喜您登入成功,將在3秒後跳轉到首頁,如果沒有跳轉,請點選<a href=''>超連結</a>");
	}

	private void test1(HttpServletResponse response) throws IOException {
		// 發響應頭控制瀏覽器每隔三秒重新整理一次
		response.setHeader("refresh", "3");
		String data = new Random().nextInt(100000000) + "";
		response.getWriter().write(data);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
  	<%
  		String message = (String)request.getAttribute("message");
  		out.write(message);
  	%>
  </body>
</html>