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进阶4(HttpServletResponse 类)
HttpServletResponse工具类和HttpServletRequest工具类,前台参数接收方式和后台返回(JSON)数据格式