package response;
import java.io.IOException;
import java.util.Random;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//控制浏览器定时刷新
public class ResponseDemo5 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
test1(response);
//test2(response);
//test3(request,response);
}
//实用的跳转技术
private void test3(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
//假设这是一个用于处理登陆的servlet
//假设程序运行到此,用户登录成功了!
String message = "<meta http-equiv='refresh' content='3;url=/Servlet/servlet/ResponseDemo4'>恭喜你,登陆成功,本浏览器将在3秒后,跳到首页,如果没有跳,请点<a href=''>超链接</a>";
this.getServletContext().setAttribute("message", message);
this.getServletContext().getRequestDispatcher("/message.jsp").forward(request, response);
}
private void test2(HttpServletResponse response) throws IOException {
//假设这是一个用于处理登陆的servlet
response.setCharacterEncoding("UTF-8");//解决乱码
response.setContentType("text/html;charset:UTF-8");
//假设程序运行到此,用户登录成功了
response.setHeader("refresh", "3;url='/Servlet/servlet/ResponseDemo4'");
response.getWriter().write("恭喜你,登陆成功,本浏览器将在3秒后,跳到首页,如果没有跳,请点<a href=''>超链接</a>");
}
private void test1(HttpServletResponse response) throws IOException {
response.setHeader("refresh", "3");
String data = new Random().nextInt(100000)+"";
response.getWriter().write(data);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
测试test1,注释掉其他方法
浏览器输出:
每三秒换一次数字
测试test2,注释掉其他方法
浏览器输出:
3秒后跳转界面
测试test3,注释掉其他方法
浏览器输出:
3秒之后跳转界面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'message.jsp' starting page</title>
</head>
<body>
<%
String message = (String)application.getAttribute("message");
out.write(message);
%>
</body>
</html>