今天在来看一下Response容器的相关知识,其实这篇blog早就应该编写了,只是最近有点忙,所以被中断了。下面我们就来看一下Response容器的相关知识吧。Response和我们即将在后面说到的Request容器是一一对应的,他是web容器在用户每次请求服务端的时候,创建的一对容器对象,Response容器是服务端返还给客户机的一个响应内容对象容器,比如说:响应头,响应行,实体数据等信息,而Request容器对象是,代表用户请求服务端的的一个容器对象,比如客户机的请求头,请求行,以及携带的参数信息等。所以说Request容器对象和Response容器对象是一一对应的,他们两的生命周期也是一样的,就是在一次用户请求中。下面就来详细说一下Response容器对象的相关知识吧!
下面先来看一下Response对象的相关方法吧:
addCookie(Cookie cookie):这个方法是向Response容器中添加一个Cookie,然后服务器容器会自动的将这个Cookie回写给客户机的,至于Cookie的相关知识我们会在后面的文章中进行详解,这篇文章中这个方法暂时用不到。
addDateHeader(String name ,long date):这个是向客户机添加一个时间值属性的响应头信息,比如那个缓存的响应头expires
addHeader(String name,String value)这个是向客户机添加一个字符串值属性的响应头信息,比如重定向的响应头location
addIntHeader(String name ,int value)这个是向客户机添加一个字符串属性的响应头信息
containsHeader(String name)这个方法是判断是否含有这个响应头信息字段
encodeURL(String name)这个方法是用于url改写的功能的,这个和session有关,等到说session那篇文章的时候在详细说明
sendRedirect(String name)这个方法是用于请求重定向的,和响应头中的location字段的作用相同
setHeader(String name,String value)/setIntHeader(String name,int value)/setDateHeader(String name,long date)这些方法和addHeader方法是相对应的,唯一和addHeader不同的是,addHeader是向Response中添加一个响应头信息,而setHeader是修改一个响应头信息的。
setStatus(int value):通过这个方法是设置响应码的,比如:200,304,404等。
getOutputStream():通过这个方法可以拿到一个字节流,然后可以向Response容器中写入字节数据,最后客户机向Response容器中拿去数据进行显示
getWriter():通过这个方法可以拿到一个字符流(PrintWriter),然后可以向Response容器中写入字符数据,最后客户机向Response容器中拿去数据进行显示
setContentLength()通过这个方法设置服务器向用户返回的数据长度,我们在HTTP协议详解这篇blog中的那个压缩数据的返回的例子中有说到
setContentType()方法可以直接设置响应头content-type的内容
下面我们就来详细介绍一下这些方法的使用吧:
第一个例子:通过Response进行数据的输出,下面是一个测试的方法,这个方法只要在service方法中调用即可,传递一个HttpServletResponse对象,就可以进行输出的
[java] view plaincopy
public void test(HttpServletResponse response) throws Exception{
// 使用OutputStream字节流进行数据的输出
response.getOutputStream().write("Hello World".getBytes());
}
评论