目录

JSP - Http状态代码( Http Status Codes)

在本章中,我们将讨论JSP中的Http状态代码。 HTTP请求的格式和HTTP响应消息类似,并具有以下结构 -

  • 初始状态行+ CRLF(回车符+换行符即新行)

  • 零个或多个标题行+ CRLF

  • 一条空行即。 一个CRLF

  • 可选的消息体,如文件,查询数据或查询输出。

例如,服务器响应头如下所示 -

HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
   (Blank Line)
<!doctype ...>
<html>
   <head>...</head>
   <body>
      ...
   </body>
</html>

状态行包括HTTP version (HTTP/1.1 in the example) ,状态代码(示例中为200),以及与状态代码对应的非常短的消息(OK in the example)

下表列出了可能从Web服务器返回的HTTP状态代码和相关消息 -

信息 描述
100Continue 服务器只收到请求的一部分,但只要它没有被拒绝,客户端就应该继续请求
101 切换协议 服务器切换协议。
200 OK 请求没问题
201 Created 请求已完成,并且已创建新资源
202 Accepted 请求被接受处理,但处理不完整。
203 非权威信息
204 无内容
205 重置内容
206 部分内容
300 多种选择 链接列表; 用户可以选择一个链接并转到该位置。 最多五个地址。
301 永久移动 请求的页面已移至新网址。
302 Found 请求的页面暂时移动到新的URL。
303 见其他 请求的页面可以在不同的URL下找到。
304 没有修改
305 使用代理服务器
306 Unused 此代码用于以前的版本。 它已不再使用,但代码保留。
307 临时重定向 请求的页面暂时移动到新的URL。
400 错误的请求 服务器不理解请求。
401 Unauthorized 请求的页面需要用户名和密码。
402 需要付款 You can not use this code yet.
403 Forbidden 禁止访问所请求的页面
404 未找到 服务器找不到请求的页面。
405 方法不允许 不允许在请求中指定的方法。
406 不能接受的 服务器只能生成客户端不接受的响应。
407 需要代理验证 在提供此请求之前,您必须使用代理服务器进行身份验证。
408 请求超时 请求花费的时间比服务器准备等待的时间长。
409 Conflict 由于冲突,请求无法完成。
410Gone 请求的页面不再可用。
411 长度要求 “内容长度”未定义。 没有它,服务器将不接受请求。
412 前提条件失败 请求中给出的前提条件由服务器评估为false。
413 请求的实体太大 服务器不接受请求,因为请求实体太大。
414 请求网址太长 服务器不接受请求,因为网址太长。 当您使用长查询信息将“发布”请求转换为“获取”请求时,会发生这种情况。
415 不支持的媒体类型 服务器不接受请求,因为不支持媒体类型。
417 期望失败
500 内部服务器错误 请求未完成。 服务器遇到意外情况。
501 未实现 请求未完成。 服务器不支持所需的功能。
502 错误的网关 请求未完成。 服务器从上游服务器收到无效响应。
503 暂停服务 请求未完成。 服务器暂时超载或关闭。
504 网关超时 网关已超时。
505 不支持HTTP版本 服务器不支持"http protocol"版本。

设置HTTP状态代码的方法

以下方法可用于在servlet程序中设置HTTP状态代码。 这些方法可用于HttpServletResponse对象。

S.No. 方法和描述
1

public void setStatus ( int statusCode )

此方法设置任意状态代码。 setStatus方法将int(状态代码)作为参数。 如果您的响应包含特殊状态代码和文档,请setStatus在使用PrintWriter实际返回任何内容之前调用setStatus

2

public void sendRedirect(String url)

此方法生成302响应以及提供新文档的URL的Location标头。

3

public void sendError(int code, String message)

此方法发送状态代码(通常为404)以及在HTML文档内自动格式化并发送到客户端的短消息。

HTTP状态代码示例

以下示例显示如何将407错误代码发送到客户端浏览器。 在此之后,浏览器会显示“ Need authentication!!! ”消息。

<html>
   <head>
      <title>Setting HTTP Status Code</title>
   </head>
   <body>
      <%
         // Set error code and reason.
         response.sendError(407, "Need authentication!!!" );
      %>
   </body>
</html>

您将收到以下输出 -

<h1 style="font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;">HTTP Status 407 - Need authentication!!!</h1>
<p><b style="font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;" class="notranslate">type</b> Status report</p>
<p><b style="font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;" class="notranslate">message</b> <u>Need authentication!!!</u></p>
<p><b style="font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;" class="notranslate">description</b> <u>The client must first authenticate itself with the proxy (Need authentication!!!).</u></p>
<h3 style="font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;">Apache Tomcat/5.5.29</h3>

要更加熟悉HTTP状态代码,请尝试设置不同的状态代码及其说明。

↑回到顶部↑
WIKI教程 @2018