HttpServletResponse类

Posted 淡无心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HttpServletResponse类相关的知识,希望对你有一定的参考价值。

  当客户端浏览器请求服务器后,该服务器就会将返回信息封装到HttpServletResponse里进行响应,返回信息中的第一行为状态行,共分为5类,

  100-199:表示服务端成功接受请求,但要求客户端继续提交下一次请求才能完成全部处理过程。

  200-299:表示服务端已成功接受请求,并完成了全部处理过程。

    300-399:表示客户端请求资源已经到了别的位置,并向客户端提供了一个新地址,一般这个新地址由HTTP响应头的Location字段指定。

  400-499:表示客户端请求有误。

  500-599:表示服务端出现错误。

  response.setStatus(*);//设置状态

  response.sendReadirect("URL") //可以是绝对路径www.baidu.com  也可以是相对的(webdemo/test.html);

  响应浏览器请求,返回数据例子 

  //设置响应头数据

  //在浏览器页面上输出YES

  //输出字符流 PrintWriter out = response.getWriter();

  //输出字节流 OutputStream out = response.getOutputStream();

 

 1 package com.demo.servlet;
 2 
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 import java.util.Calendar;
 6 
 7 import javax.servlet.ServletException;
 8 import javax.servlet.http.HttpServlet;
 9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11 
12 /**
13  * 
14  * ClassName: ExploreResponseHeader
15  * @Description: 验证响应消息头设置情况
16  * @author zgb
17  * @date 2016-7-2
18  */
19 public class ExploreResponseHeader extends HttpServlet {
20 
21     
22     private static final long serialVersionUID = 1L;
23 
24     //处理客户端的get请求
25     protected void doGet(HttpServletRequest request, HttpServletResponse response)
26             throws ServletException, IOException {
27         
28         response.setContentType("text/html;charset=UTF8");
29         response.setHeader("Content-Length", "1234");
30         //加一个NewFileld1字段
31         response.addHeader("NewFileld1", "value1");
32         //获得Calender对象
33         Calendar calendar = Calendar.getInstance();
34         calendar.set(2016, 07,02);
35         //增加一个Mydate字段
36         response.addDateHeader("MyDate", calendar.getTimeInMillis());
37         //加一个NewFileld2字段
38         response.addIntHeader("NewFileld2", 3000);
39         //设置状态为500
40         response.setStatus(500);
41         //获取用于输入输出消息的PrintWriter对象
42         PrintWriter out = response.getWriter();
43         out.println("YES");
44         
45     }
46 
47 }

文件下载

 1 package com.demo.servlet;
 2 
 3 import java.io.FileInputStream;
 4 import java.io.IOException;
 5 import java.io.InputStream;
 6 import java.io.OutputStream;
 7 
 8 import javax.servlet.ServletException;
 9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12 
13 /**
14  * 
15  * ClassName: DownFlieServlet
16  * @Description: 下载文件
17  * @author zgb
18  * @date 2016-7-2
19  */
20 public class DownFlieServlet extends HttpServlet{
21 
22     /**
23      * @Fields serialVersionUID : TODO
24      */
25     private static final long serialVersionUID = 1L;
26 
27     @Override
28     protected void doGet(HttpServletRequest requset, HttpServletResponse response)
29             throws ServletException, IOException {
30         //1.获取要下载文件的绝对路径
31         String realPath = this.getServletContext().getRealPath("/download/2.png");
32         //2.获取下载文件的名称
33         String fileName = realPath.substring(realPath.lastIndexOf("\\")+1);
34         //3.设置content—dispositon响应控制浏览器以下载的形式打开文件
35         response.setHeader("content-disposition", "attachment;fileName="+fileName);
36         //4.获取要下载的文件输入流
37         InputStream stream = new FileInputStream(realPath);
38         
39         int len = 0;
40         
41         byte[] buffer = new byte[1024];
42         
43         OutputStream out = response.getOutputStream();
44         
45         while((len = stream.read(buffer))>0){
46             
47             out.write(buffer,0,len);
48             
49         }
50         stream.close();
51         
52     }
55 
56 }

 

 

 

以上是关于HttpServletResponse类的主要内容,如果未能解决你的问题,请参考以下文章

servlet HttpServletResponse类

Servlet进阶4(HttpServletResponse 类)

HttpServletResponse 工具类

HttpServletResponse类

HttpServletResponse类

HttpServletResponse工具类和HttpServletRequest工具类,前台参数接收方式和后台返回(JSON)数据格式