HttpServletResponse详解

HttpServletResponse详解

Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对 象。
request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了。
1.负责向客户端(浏览器)发送响应头的相关方法

void addDateHeader(String name, long date)添加指定名称的响应头和日期值
void addHeader(String name, String value)添加指定名称的响应头和值
void addIntHeader(String name, int value)添加指定名称的响应头和int值
boolean containsHeader(String name)返回指定的响应头是否存在
void setHeader(String name, String value)使用指定名称和值设置响应头的名称和内容
void setIntHeader(String name, int value)指定 int 类型的值到 name 标头
void setDateHeader(String name, long date)使用指定名称和值设置响应头的名称和内容

2.负责向客户端(浏览器)发送响应状态码的相关方法

void setStatus(int sc)设置响应的状态码

3.常见应用
3.1:OutputStream流向客户端浏览器输出中文数据
核心代码

      String data = "心若静,风奈何";
		OutputStream outputStream = resp.getOutputStream();// 获取输出流
		// 通过设置响应头控制浏览器以UTF-8的编码显示数据,如果不加这句话,那么浏览器显示的将是乱码
		resp.setHeader("content-type", "text/html;charset=UTF-8");
		// 将字符转换成字节数组,指定以UTF-8编码进行转换
		byte[] dataByteArr = data.getBytes("UTF-8");
		//使用OutputStream流向客户端输出字节数组
		outputStream.write(dataByteArr);
		outputStream.flush();
		outputStream.close();

在这里插入图片描述
3.2PrintWriter流向客户端浏览器输出中文数据
核心代码:

       String data = "心若静,风奈何";
		resp.setCharacterEncoding("UTF-8");// 设置将字符以"UTF-8"编码输出到客户端浏览器
		PrintWriter out = resp.getWriter();// 获取输出流
		// 将字符转换成字节数组,指定以UTF-8编码进行转换
		  resp.setHeader("Content-type",  "text/html;charset=UTF-8");  
		out.write(data);// 使用PrintWriter流向客户端输出字符
		out.flush();
		out.close();

在这里插入图片描述
3.3:OutputStream或者PrintWriter向客户端浏览器输出数字

     OutputStream  outputStream=resp.getOutputStream();
		  resp.setHeader("Content-type",  "text/html;charset=UTF-8");  
		outputStream.write("使用OutputStream流输出数字1:".getBytes("UTF-8"));
		//outputStream.wait(1)如果木有转换就是下载
		 outputStream.write((1+"").getBytes());
		  outputStream.close();
      resp.setHeader("content-type", "text/html;charset=UTF-8");
	 resp.setCharacterEncoding("UTF-8");
	 PrintWriter out = resp.getWriter();//获取PrintWriter输出流
	         out.write("使用PrintWriter流输出数字1:");
		       out.write(1+"");

解决浏览器乱码的问题:

     //这句话的意思,是让浏览器用utf8来解析返回的数据  
        resp.setHeader("Content-type",  "text/html;charset=UTF-8");  
        //servlet 使用UTF-8 而不是默认的
        resp.setCharacterEncoding("Utf-8");
  • 9
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值