javaweb笔记6多个响应头以及 HttpServletResponse对象
1 常见的响应头
Location: http://www.it315.org/index.jsp 重定向的地址。配合302的状态码一起使用,实现重定向效果。
Content-Type: text/html; charset=GB2312 服务器发送内容的数据类型及编码格式
Refresh: 1;url=http://www.it315.org 隔n秒之后跳转到另一个页面 / 每隔n秒刷新当前页面
Content-Disposition: attachment; filename=aaa.zip 告诉浏览器以下载的方式打开文件
2 HttpServletResponse对象
通过HttpServletResponse对象方法设置响应信息
响应头
设置响应头:
response.setHeader("响应头名称" ,"响应头的值");
实体内容
response.getWriter(); 向浏览器输出字符数据
response.getOutputStream(); 向浏览器输出字节数据
4
1 public class ResponseDemo extends HttpServlet { 2 3 public void doGet(HttpServletRequest request, HttpServletResponse response) 4 throws ServletException, IOException { 5 //状态行 6 //状态码 7 //response.setStatus(404); //发送404 状态码 8 //response.sendError(404); //发送404 状态码 + 404 错误页面内容 9 10 //response.sendError(500); 11 12 /** 13 * 302+location = 重定向(跳转到另一个资源) 14 */ 15 /* 16 response.setStatus(302);//设置302的状态码 17 18 //响应头 19 /************重定向***************/ 20 //response.setHeader("location", "/day09/testParam.html"); //设置location响应头 21 22 23 /*重定向的简写方法*/ 24 //response.sendRedirect("/day09/testParam.html"); 25 26 /*************定时刷新******************/ 27 //response.setHeader("refresh","1"); //每隔1秒刷新请求 28 29 //response.setHeader("refresh", "3;url=/day09/adv.html"); //3秒之后,跳转到 /day09/adv.html 30 31 //response.setHeader("content-type", "image/jpg"); //设置服务器发送给浏览器的数据内容的格式 32 /*设置content-type的简写形式*/ 33 /*设置浏览器打开数据的编码*/ 34 response.setContentType("text/html;charset=utf-8"); 35 36 //设置数据内容输出的编码 37 response.setCharacterEncoding("utf-8"); 38 39 // 实体内容(服务器发送给浏览器的数据内容) 40 PrintWriter writer = response.getWriter(); // 用于向浏览器输出字符数据。 html / xml / text 41 //OutputStream out = response.getOutputStream(); //用于向浏览器输出字节数据。 images / vedio / 文档文件(zip/rar) 42 43 writer.write("<html><head><title>this is title</title></head><body>传智播客</body></html>"); 44 //writer.write("<student><name>eric</name><age>18</age></student>"); 45 46 /*************以下载方式打开文件*****************/ 47 /* 48 response.setHeader("Content-Disposition", "attachment; filename=aaa.jpg"); 49 50 /**************把字节文件(图片)发送到浏览器***************************/ 51 //把图片内容发送给浏览器 52 //1.读取到图片内容 53 /* 54 InputStream in = new FileInputStream("e:/testImg.jpg"); 55 56 //2.把图片数据发送到浏览器 57 OutputStream out = response.getOutputStream(); 58 byte[] buf = new byte[1024]; 59 int len = 0; 60 while( (len=in.read(buf))!=-1 ){ 61 out.write(buf,0,len); 62 } 63 64 //3.关闭资源 65 in.close(); 66 */ 67 } 68 69 }