HttpServletResponse对象

.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编码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HttpServletResponse对象是Java Servlet API中的一个类,它代表了服务器向客户端发送的HTTP响应。它提供了一系列方法,用于设置响应头、响应状态码、响应内容等信息,以及向客户端发送响应数据。通过HttpServletResponse对象,开发人员可以控制服务器向客户端发送的HTTP响应,实现Web应用程序的交互功能。 ### 回答2: HttpServletResponse对象是Java中的一个类,用于处理HTTP响应。它提供了一组方法,用于向客户端发送响应数据,比如HTML页面、图像、JSON数据等等。在web开发中,每次请求都会对应一个HttpServletResponse对象,该对象包含响应的所有信息。 HttpServletResponse对象的主要功能包括: 1. 设置响应头:可以使用setHeader方法来设置响应头信息,比如Content-Type、Content-Length、Cache-Control等。 2. 获取输出流:使用getOutputStream方法可以获取到一个字节流输出流,通过该流可以向客户端发送响应数据,如文本、图像、视频等。 3. 管理Cookies:HttpServletResponse对象中还提供了一些方法来处理Cookies,可以通过addCookie()方法添加Cookie,通过getCookies()方法获取存储在客户端的所有Cookie信息。 4. 处理重定向:如果需要重定向到另一个URL,可以使用sendRedirect()方法将请求重定向到指定的URL。 5. 设置响应状态:可以使用setStatus()方法来设置响应状态码,例如:200表示成功、404表示页面未找到、500表示服务器错误等。 除此之外,HttpServletResponse对象还包括其他一些方法,例如:设置响应的字符编码、设置响应的缓存等等。 总的来说,HttpServletResponse对象在web开发中扮演着非常重要的角色,它负责将服务器端的数据传输到客户端浏览器中,并且还能够处理一些与HTTP请求相关的信息。 ### 回答3: HttpServletRequest对象是JavaWeb开发中常用的一个对象,它代表了客户端HTTP请求。而对于服务器返回给客户端的响应,需要使用HttpServletResponse对象HttpServletResponse对象提供了给客户端发送响应的方法,例如发送HTML、文本或二进制流等。通过设置响应头,可以控制如何处理响应内容,例如指定编码方式、缓存控制、重定向等。常用的响应方法包括发送错误码、重定向、设置响应头、发送cookie等。 以下是HttpServletResponse对象的一些重要方法: 1. setStatus(int statusCode): 设置HTTP响应的状态码,例如设置200表示成功,404表示文件未找到,500表示服务器内部错误等。 2. sendRedirect(String location): 重定向到指定URL,告诉客户端用新的URL请求。 3. setContentType(String type): 设置响应内容类型,例如设置"text/html"表示HTML文档,"application/json"表示JSON数据等。 4. addCookie(Cookie cookie): 添加cookie到响应中,可以通过cookie来在客户端和服务器之间传递信息。 5. setDateHeader(String name, long date): 设置指定响应头的值,例如设置"Expires"头表示响应过期时间等。 HttpServletResponse对象是HttpServletRequest对象的补充,是Web开发中不可或缺的一个对象。它帮助开发者控制HTTP响应内容,实现了客户端和服务器之间的信息交互。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值