javaweb之response refresh響應頭控制瀏覽器重新整理(幾秒後跳轉頁面)
阿新 • • 發佈:2019-02-03
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>