HttpServletResponse总结

web服务器收到客户端http请求,会针对每一次请求,分别创建一个代表请求的request对象,和代表响应的
response对象。
Request对象:获取客户端哪边传送过来的的数据
Response对象:向客户端输出数据.

一、HttpServletResponse对象的介绍

Interface HttpServletResponse

    public interface HttpServletResponse
    extends ServletResponse(子接口)

    HttpServletResponse对象代表服务器的响应。这个对象中封装了向客户端发送数据、发送响应头,
    发送响应状态码的方法。查看HttpServletResponse的API,可以看到这些相关的方法。

二、HttpServletResponse常用的方法

    1、负责向客户端发送响应的方法(父接口的方法)
    response.getWriter();向客户端写入数据(文本输入)
    PrintWriter out=response.getWriter();
    out.write("哈哈哈");

    response.getOutputStream();先客户端写入数据(字节输入 写二进制的文件)
    OutputStream out=response.getOutputStream();
    out.write("哈哈".getBytes());

 

    2、负责向客户端(浏览器)发送响应头的方法
    --void addDateHeader(java.lang.String name, long date) 
        Adds a response header with the given name and date-value. 

    --void addHeader(java.lang.String name, java.lang.String value) 
        Adds a response header with the given name and value. 

    --void addIntHeader(java.lang.String name, int value) 
        Adds a response header with the given name and integer value. 

    --boolean containsHeader(java.lang.String name) 
        Returns a boolean indicating whether the named response header has already been set. 
    3、负责向浏览器发送响应状态的相关方法:
    --void setStatus(int sc) 
        Sets the status code for this response. 
    4、响应状态码的常量:
    --static int SC_NOT_FOUND 
        Status code (404) indicating that the requested resource is not available. 

    --static int SC_OK 
        Status code (200) indicating the request succeeded normally.
    --static int SC_INTERNAL_SERVER_ERROR 
        Status code (500) indicating an error inside the HTTP server which prevented it from fulfilling the request.  

三、HttpServletResponse对象的常见应用:


    1、使用OutputStream流向客户端输出中文数据

    使用OutPutStraeam流输出中文的编码问题:
        在服务器端,数据是通过哪个码表输出的,那么要控制客户端使用哪种码表解读:
        outputStream.write("哈哈".getBytes("K"),);K 码表
        服务端是以K码表输出的所以客户端必须使用K码表来解读:
        --客户端自己选择码表解读的方式
        --服务端通过设置响应头的方式来控制码表解读
        response.setHeader("contene-type","text/html;charset=K");

package com.luther.servlet;

import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class response extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		OutputStream outputStream=resp.getOutputStream();
		//getBytes()方法如果不带参数,那么就会根据操作系统的语言环境来选择转换码表,如果是中文操作系统,那么就使用GB2312的码表
		byte[] data="哈哈".getBytes("GBK");
		resp.setHeader("content-type", "text/html;charset=GBK");
		outputStream.write(data);
		
		
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}

}


    2、使用PrintWriter来输出中文的编码问题:
        PrintWriter out=response.getWriter

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值