HTTP 报头设置实例、响应及总结

 eg:

@WebServlet("/Refresh")
public class Refresh extends HttpServlet{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//super.doGet(req, resp);
		// 设置刷新自动加载时间为 5 秒
		//Refresh:这个头信息指定浏览器应该如何尽快请求更新的页面。您可以指定页面刷新的秒数。
		resp.setIntHeader("Refresh", 500);
		System.out.println("req:"+req);
		System.out.println("resp:"+resp);
		resp.setContentType("text/html;charset=UTF-8");
		Calendar calendar=Calendar.getInstance();
		java.util.Date taskTime=calendar.getTime();
		SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
		//格式化输出  
        String nowTime = df.format(taskTime);
        PrintWriter out = resp.getWriter();
        String title = "自动刷新 Header 设置 - 菜鸟教程实例";
        String docType =
        "<!DOCTYPE html>\n";
        out.println(docType +
          "<html>\n" +
          "<head><title>" + title + "</title></head>\n"+
          "<body bgcolor=\"#f0f0f0\">\n" +
          "<h1 align=\"center\">" + title + "</h1>\n" +
          "<p>当前时间是:" + nowTime + "</p>\n");
    }
		

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//super.doPost(req, resp);
		doGet(req, resp);
	}

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		super.service(req, resp);
	}
	
}

效果:每隔500秒浏览器页面刷新一次,并显示当前时间。

总结:当浏览器第一次向服务器发请求的时候,服务器为请求设置请求头信息,

resp.setIntHeader("Refresh", 500);(本例中)

然后浏览器解析请求头并作出相应的反馈。服务器不会主动向浏览器发消息,只有当浏览器请求的时候服务器才会作出反馈。

猜你喜欢

转载自blog.csdn.net/zhaoliubao1/article/details/83412223