更新时间:2021年03月18日 08时58分12秒 来源:黑马程序员
当Servlet向客户端回送响应消息时,需要在响应消息中设置状态码。为此,在HttpServletResponse接口中,定义了两个发送状态码的方法,具体如下:
● setStatus(int status)方法
该方法用于设置HTTP响应消息的状态码,并生成响应状态行。由于响应状态行中的状态描述信息直接与状态码相关,而HTTP版本由服务器确定,因此,只要通过setStatus(int status)方法设置了状态码,即可实现状态行的发送。需要注意的是,正常情况下,Web服务器会默认产生一个状态码为200的状态行。
● sendError(int sc)方法
该方法用于发送表示错误信息的状态码,例如,404状态码表示找不到客户端请求的资源。在response对象中,提供了两个重载的sendError(int sc)方法,具体如下:
public void sendError(int code) throws java.io.IOException public void sendError(int code, String message) throws java.io.IOException
在上面重载的两个方法中,第一个方法只是发送错误信息的状态码,而第二个方法除了发送状态码外,还可以增加一条用于提示说明的文本信息,该文本信息将出现在发送给客户端的正文内容中。
由于响应状态码是一个三位的十进制数,非常难以记忆,为此,在HttpServletResponse接口中,定义了一系列响应状态码常量,如表1所示。
表1 常用的响应状态码常量
方法声明 | 功能描述 |
---|---|
static int SC_OK | 该常量代表状态码200,表示请求成功 |
static int [SC_FORBIDDEN](mk:@MSITStore:C:\Documents and Settings\Administrator\桌面\javaweb课件\Servlet-API.chm::/javax/servlet/http/HttpServletResponse.html#SC_FORBIDDEN) | 该常量代表状态码403,表示服务器接收到请求,但拒绝对请求进行处理 |
static int SC_NOT_FOUND | 该常量代表码状态码404,在HTTP1.1规范中的标准状态信息为Not Found,也就是没有找到资源,是最常见的一种状态码 |
static int [SC_CONFLICT](mk:@MSITStore:C:\Documents and Settings\Administrator\桌面\javaweb课件\Servlet-API.chm::/javax/servlet/http/HttpServletResponse.html#SC_CONFLICT) | 该常量代表状态码409,表示请求的资源与当前状态冲突 |
static int SC_MOVED_TEMPORARILY | 该常量代表状态码302,表示临时使用其它资源处理当前请求,但是,之后的请求还应该使用原来的地址。(Servlet API 2.4规范中, SC_FOUND常量用来对应状态码302) |
static int SC_INTERNAL_SERVER_ERROR | 该常量代码状态码500,表示服务器内部发生了错误 |
static int SC_HTTP_VERSION_NOT_SUPPORTED | 该常量代码状态码505,表示服务器不支持或拒绝支持请求行中给出的HTTP版本 |
static int SC_BAD_REQUEST | 该常量代表状态码400,表示客户端发送的请求语法有误 |
在表1列举的一系列状态码常量中,其中SC_OK和SC_NOT_FOUND是Web应用中最常遇见的,因此,建议大家深刻记忆这两个状态码常量。
猜你喜欢: