HttpServletResponse对象应用浅析

                               HttpServletResponse对象

1、HttpServletResponse对象

(1).Web服务器收到一个http请求,会针对每个请求创建一个HttpServletRequest和HttpServletResponse对象,向客户端发送数据找HttpServletResponse,从客户端取数据找HttpServletRequest;

(2).HttpServletResponse对象可以向客户端发送三种类型的数据:a.响应头b.状态码c.数据

(3).自己去看HttpServletResponse的API

(4).rsponse常见应用:

    a.使用OutputStream向客户端写入中文:

    String data = "中国";

    OutputStream stream = response.getOutputStream();//获取一个向Response对象写入数据的流,当tomcat服务器进行响应的时候,会将Response中的数据写给浏览器

    stream.write(data.getBytes("UTF-8"));

    //此时在html页面会出现乱码,这是因为:服务器将"中国"按照UTF-8码表进行编码,得到对应的码值假设是98,99,服务器将码值发送给浏览器。浏览器默认按照GB2312进       行解码,在GB2312码表中对应的字符已不是"中国"

    正确代码如下:

    response.setHeader("Content-type","text/html;charset=UTF-8");//向浏览器发送一个响应头,设置浏览器的解码方式为UTF-8

    String data = "中国";

    OutputStream stream = response.getOutputStream();

    stream.write(data.getBytes("UTF-8"));

    b.使用Writer向客户端写入中文:

    PrintWriter writer = response.getWriter();

    writer.write("中国");//同样会出现乱码,这是因为我们将"中国"写入response对象时,tomcat服务器为了将数据通过网络传输给浏览器,必须进行编码,由于没有指定编码方     式,默认采用ISO8859-1,

    当浏览器接收到数据后,根据GBK解码必然出现乱码

    正确代码如下:

    response.setCharacterEncoding("UTF_8");//设置Response的编码方式为UTF-8

    response.setHeader("Content-type","text/html;charset=UTF-8");//向浏览器发送一个响应头,设置浏览器的解码方式为UTF-8,其实设置了本句,也默认设置了Response的    编码方式为UTF-8,但是开发中最好两句结合起来使用

    //response.setContentType("text/html;charset=UTF-8");同上句代码作用一样

    PrintWriter writer = response.getWriter();

    writer.write("中国");

    c.使用Response实现文件下载:

    String path = this.getServletContext.getRealPath(“/中国.jpg”);

    String fileName = path.subString(path.lastIndexOf(“\\”));

    Response.setHeader(“content-disposition”,”attachment;filename”+URLENcode    r.encode(fileName,”UTF-8”));//设置响应头,告诉浏览器,该响应是下载响应,如果文件名包含中文,必须使用URL编码


本文转载自HttpServletResponse对象

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值