javaweb笔记6多个响应头以及 HttpServletResponse对象

时间:2021-03-18 13:21:35

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 }