Http响应

来源:互联网 发布:新开淘宝店铺如何引流 编辑:程序博客网 时间:2024/06/01 09:47

Http响应

HTTP/1.1 200 OK                --响应行Server: Apache-Coyote/1.1         --响应头(key-vaule)Content-Length: 24Date: Fri, 30 Jan 2015 01:54:57 GMT                                   --一个空行this is hello servlet!!!                  --实体内容

响应行

#http协议版本
#状态码: 服务器处理请求的结果(状态)
常见的状态:
200 :  表示请求处理完成并完美返回
302:   表示请求需要进一步细化。
404:   表示客户访问的资源找不到。
500:   表示服务器的资源发送错误。(服务器内部错误)
#状态描述
Ok
Not Found
Internal Server Error

常见的响应头
Location: http://www.it315.org/index.jsp   -表示重定向的地址,该头和302的状态码一起使用。Server:apache tomcat                 ---表示服务器的类型Content-Encoding: gzip                 -- 表示服务器发送给浏览器的数据压缩类型Content-Length: 80                    --表示服务器发送给浏览器的数据长度Content-Language: zh-cn               --表示服务器支持的语言Content-Type: text/html; charset=GB2312   --表示服务器发送给浏览器的数据类型及内容编码Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT  --表示服务器资源的最后修改时间Refresh: 1;url=http://www.it315.org     --表示定时刷新Content-Disposition: attachment; filename=aaa.zip --表示告诉浏览器以下载方式打开资源(下载文件时用到)Transfer-Encoding: chunkedSet-Cookie:SS=Q0=5Lb_nQ; path=/search   --表示服务器发送给浏览器的cookie信息(会话管理用到)Expires: -1                           --表示通知浏览器不进行缓存Cache-Control: no-cachePragma: no-cacheConnection: close/Keep-Alive           --表示服务器和浏览器的连接状态。close:关闭连接 keep-alive:保存连接
HttpServletResponse对象
1.tomcat服务器把请求信息封装到HttpServletRequest对象中,且把响应信息封装到HttpServletResponse对象中
2.tomcat服务器调用doGet方法,传入request,response对象

HttpServletResponse对象修改响应信息:
响应行: 
response.setStatus()  设置状态码
响应头: 
response.setHeader("name","value")  设置响应头
实体内容:
response.getWriter().writer();   发送字符实体内容
response.getOutputStream().writer()  发送字节实体内容 
使用OutputStream流输出中文注意问题:
   在服务器端,数据是以哪个码表输出的,那么就要控制客户端浏览器以相应的码表打开,比如:outputStream.write("中国".getBytes("UTF-8"));使用OutputStream流向客户端浏览器输出中文,以UTF-8的编码进行输出,此时就要控制客户端浏览器以UTF-8的编码打开,否则显示的时候就会出现中文乱码,那么在服务器端如何控制客户端浏览器以以UTF-8的编码显示数据呢?可以通过设置响应头控制浏览器的行为,例如:response.setHeader("content-type", "text/html;charset=UTF-8");通过设置响应头控制浏览器以UTF-8的编码显示数据
package com.servlet;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.Arrays;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ResponseDemo1 extends HttpServlet {/** * 1.tomcat服务器把请求信息封装到HttpServletRequest对象中,且把响应信息封装到HttpServletResponse对象中 * 2.tomcat服务器调用doGet方法,传入request,response对象 */public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {/* * 3.通过response对象改变响应信息 *//* * 3.1响应行 *///response.setStatus(404);//修改状态码//response.sendError(404);//发送404的状态码+404的错误页面/* * 3.2响应头 */response.setHeader("server", "bigman");response.setContentType("text/html; charset=utf-8");/* * 3.3实体内容 *///response.getWriter().write("我的字符实体内容");//字符内容/* * 使用OutputStream流输出中文注意问题:  在服务器端,数据是以哪个码表输出的,那么就要控制客户端浏览器以相应的码表打开,比如:outputStream.write("中国".getBytes("UTF-8"));使用OutputStream流向客户端浏览器输出中文,以UTF-8的编码进行输出,此时就要控制客户端浏览器以UTF-8的编码打开,否则显示的时候就会出现中文乱码,那么在服务器端如何控制客户端浏览器以以UTF-8的编码显示数据呢?可以通过设置响应头控制浏览器的行为,例如:response.setHeader("content-type", "text/html;charset=UTF-8");通过设置响应头控制浏览器以UTF-8的编码显示数据 */response.getOutputStream().write("我的字节实体内容".getBytes("utf-8"));//字节内容}}

0 0