了解基本的响应头信息的使用。
01.常见MIME类型
02.常见HTTP 1.1响应报头
– Cache-Control (1.1) 和Pragma (1.0)
no-cache值阻止浏览器缓存页面。
– Content-Disposition
通过这个报头,可以请求浏览器询问用户将响应存储到磁盘上给定名称的文件中 Content-Disposition: attachment; filename=file-name
– Content-Encoding
文档的编码方式
– Content-Length
响应中的字节数
– Content-Type
返回文档时所采用的MIME类型。
使用setContentType设置这个报头。
– Expires
特定的一段时间,这段时间后应该将文档认作是过期,不应该再继续缓存
使用setDateHeader设置这个报头
– Last-Modified
文档最后被改动的时间
不要直接设置这个报头,而应该提供getLastModified方法
–Location
浏览器应该重新连接到的URL
不要直接设置这个报头,而要使用sendRedirect进行设定
–Refresh
多少秒后浏览器应该重新载入页面
–Set-Cookie
浏览器应该记下来的cookie。不要直接设置这个报头,而应该使用addCookie
–WWW-Authenticate
授权的类型和范围需要在Authorization报头中给出
03.构建Excel电子表格
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/vnd.ms-excel");
PrintWriter out = response.getWriter();
out.println("\tQ1\tQ2\tQ3\tQ4\tTotal");
out.println("Apples\t78\t87\t92\t29\t=SUM(B2:E2)");
out.println("Oranges\t77\t86\t93\t30\t=SUM(B3:E3)");
}
04.动态生成JPEG图像
response.setContentType("image/jpeg");
InputStream in = this.getClass().getClassLoader().getResourceAsStream("girl.jpg");
int len = in.available();
byte[] buffer = new byte[len];
in.read(buffer);
//输出流
OutputStream out = response.getOutputStream();
out.write(buffer);
05.定时刷新页面
response.setHeader("refresh", "1");
response.setContentType("text/html;charset=gbk");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML>");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" 当前页面刷新时间为: ");
out.print(new Date().toLocaleString());
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();