[Servlet] HttpServletResponse

来源:互联网 发布:免费流量软件下载 编辑:程序博客网 时间:2024/06/06 07:35

产生状态响应码

当客户端浏览器请求服务器时,该服务器就会将返回消息封装到HttpServletResponse里进行响应,返回消息中的第一行为状态行:HTTP/1.1 200 OK

上面的状态行分为三部分,分别是HTTP版本(HTTP/1.1)、状态响应码(200)以及状态消息(OK),HTTP协议的状态响应码为3位正整数:

  • 100-199:表示服务器成功接收请求,但要求客户端继续提交下一次请求才能完成全部处理过程
  • 200-299:表示服务器已成功接收请求,并完成了全部处理过程
  • 300-399:表示客户端请求的资源已经移到了别的位置,并向客户端提供了一个新的地址,一般这个新地址由HTTP响应消息头的Location字段指定
  • 400-499:表示客户端的请求有错误
  • 500-599:表示服务端有错误

设置状态响应码有以下几种方法:

  • 设置状态响应码setStatus方法

    setStatus()方法可以设置HTTP响应消息的任何状态响应码,并生成响应状态行,由于响应状态行中的协议版本和状态消息是由服务端决定的,因此只要设置响应状态码即可:

    public void setStatus(int sc);

    其中sc表示状态响应码,它可以直接使用整数表示,也可以使用HttpServletRequest中定义的常量,如200的常量为HttpServletRequest.SC_OK

  • 302状态响应码的具体应用sendRedirect方法

    该状态码可以实现客户端重定向到URL(由HTTP响应消息头的Location字段指定的地址),sendRedirect方法如下:

    public void sendRedirect(String location) throws IOException;

    通过sendRedirect方法可以将当前的Servlet重定向到其他的URL上,这个URL可以是绝对的,也可以是相对的。

  • 400-599状态响应码的具体应用sendError方法

    sendError方法用于发送表示错误信息的状态响应码,而且还可以设置状态消息:

    public void sendError(int sc) throws IOException;public void sendError(int sc, String msg) throws IOException;

设置响应消息头

返回信息中状态行下面的内容就是响应消息头,响应消息头由字段和字段值组成,在HttpServletReponse中有很多设置响应消息头的方法,比如addHeader()、setHeader()等等。addHeader()、setHeader()的不同点在于如果name所指的字段名已经存在,setHeader()方法会用value来覆盖旧的字段值,而addHeader()方法会增加一个同名的字段,因为HTTP响应消息头是允许同时存在多个同名的字段的。

原创粉丝点击