【JavaWeb】HttpServletResponse响应即response

概述:继承了ServletResponse接口的子接口,功能和方法更加强大

1.通过response设置响应行

代码: setStatus(int sc)

2.通过response设置相应头

 setHeader(String name ,String value)

addHeader(String name,String value)

setIntHeader(String name,int value)

setDateHeader(String name,long date)

同样的

add....

add....

add表示在原有的后面添加,set表示重新设置

3. 通过resonse设置响应体

方法一:getWriter()方法:

代码:    PrintWriter writer =response.getWriter();

具体实现过程简介:把response的缓冲区Writer这一块的内容给到了writer,然后通过writerwriter()方法像writer

(也就是response缓冲区内写东西)

注意:

①设置响应体时需要告知response拿到缓冲内容时候所参照的编码表,

代码:  response.setCharacterEncoding("UTF-8")    -----这句代码可以不写,

因为设置了客户端之后,其实tomcat会自动的选择对应的参照的编码表

同时客户端解码也需要使用utf-8,因此需要通过文件头告知客户端

代码:response.setHeader("Content-Type","text/html;charset=UTF-8")

前一个参数是键,后一个参数是值

方法二:getOutputStream()

代码:

ServleOutputStream out = response.getOutputStream();
//获得web应用下的资源的绝对路径,想到了调用getRealPath()
String realPath=this.getServletContext().getRealPath("a.jpg");
InputStream in=new FileInputStream(realPath);//输入流中存入一个文件,即图片
int len=0;
byte[] buffer=new byte[1024];
while((len=in.read(buffer))>0){// 输入流对象in调用方法read(bayte b[]),一次读取一个数组的长度到数组b中,返回值len是这一次读入缓冲数组的字节总数
out.write(buffer,0,len);}//read读完时返回-1每次向,out输出流写入buffer中的字节数,从0开始长度为len
in.close();
out.close();

具体实现过程和writer是一样的


注意事项:

①request和response中获取资源存在中文的问题

②getWriter()和getOutputStream()不能同时调用



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值