找回密码
 加入怎通
查看: 172|回复: 0

Servlet HTTP 状态码(servlet-mapping url-pattern)

[复制链接]
我来看看 发表于 2023-03-06 15:24:35 | 显示全部楼层 |阅读模式
% S1 e. N6 ^) h7 Y1 s1 g/ m8 ?

HTTP 请求和 HTTP 响应消息的格式是类似的,结构如下:初始状态行 + 回车换行符(回车+换行)零个或多个标题行+回车换行符一个空白行,即回车换行符一个可选的消息主体,比如文件、查询数据或查询输出

# d+ |, Q% h% a( L6 ?' n8 i

例如,服务器的响应头如下所示:HTTP/1.1 200 OKContent-Type: text/htmlHeader2: ......HeaderN: ... # ~0 _; y# A* @5 c8 q; i7 P# J0 | (Blank Line)......

( Q+ z. \: f) T( l! b. w

状态行包括 HTTP 版本(在本例中为 HTTP/1.1)、一个状态码(在本例中为 200)和一个对应于状态码的短消息(在本例中为 OK)。

# N5 H3 v7 M8 Y; U: y

以下是可能从 Web 服务器返回的 HTTP 状态码和相关的信息列表:代码消息描述100Continue只有请求的一部分已经被服务器接收,但只要它没有被拒绝,客户端应继续该请求101Switching Protocols。

* z& q6 O% Z F" Z7 G

服务器切换协议200OK请求成功201Created该请求是完整的,并创建一个新的资源202Accepted该请求被接受处理,但是该处理是不完整的203Non-authoritative Information。

) I2 O: c" p! R

204No Content205Reset Content206Partial Content300Multiple Choices链接列表用户可以选择一个链接,进入到该位置最多五个地址301Moved Permanently。

# F6 ?8 A9 T. X) r1 U" O, c& Y

所请求的页面已经转移到一个新的 URL302Found所请求的页面已经临时转移到一个新的 URL303See Other所请求的页面可以在另一个不同的 URL 下被找到304Not Modified305

' K6 y! [- A. e1 {( h# f/ N! r% {; _

Use Proxy306Unused在以前的版本中使用该代码现在已不再使用它,但代码仍被保留307Temporary Redirect所请求的页面已经临时转移到一个新的 URL400Bad Request。

! n5 H: G$ D8 d P/ L0 t1 F5 h" l

服务器不理解请求401Unauthorized所请求的页面需要用户名和密码402Payment Required您还不能使用该代码403Forbidden禁止访问所请求的页面404Not Found服务器无法找到所请求的页面。

5 m: P& j& ]" _* S7 b

.405Method Not Allowed在请求中指定的方法是不允许的406Not Acceptable服务器只生成一个不被客户端接受的响应407Proxy Authentication Required。

$ F( _9 F5 x! _' k/ D8 c

在请求送达之前,您必须使用代理服务器的验证408Request Timeout请求需要的时间比服务器能够等待的时间长,超时409Conflict请求因为冲突无法完成410Gone所请求的页面不再可用411

6 B% H+ g) w. f9 N) N F

Length Required"Content-Length" 未定义服务器无法处理客户端发送的不带 Content-Length 的请求信息412Precondition Failed请求中给出的先决条件被服务器评估为 false。

8 `6 b2 Z( q1 p' T g

413Request Entity Too Large服务器不接受该请求,因为请求实体过大414Request-url Too Long服务器不接受该请求,因为 URL 太长当您转换一个 "post" 请求为一个带有长的查询信息的 "get" 请求时发生。

. z5 H5 _3 ]* R. x- z+ W. }

415Unsupported Media Type服务器不接受该请求,因为媒体类型不被支持417Expectation Failed500Internal Server Error未完成的请求服务器遇到了一个意外的情况。

2 s. t$ n) ?9 T1 ^

501Not Implemented未完成的请求服务器不支持所需的功能502Bad Gateway未完成的请求服务器从上游服务器收到无效响应503Service Unavailable未完成的请求服务器暂时超载或死机。

$ S' @; L R6 O6 ~3 S

504Gateway Timeout网关超时505HTTP Version Not Supported服务器不支持"HTTP协议"版本设置 HTTP 状态代码的方法下面的方法可用于在 Servlet 程序中设置 HTTP 状态码。

# Q0 T1 T+ [% @1 e) Q6 R% Z8 }

这些方法通过 HttpServletResponse 对象可用序号方法 & 描述1public void setStatus ( int statusCode )该方法设置一个任意的状态码setStatus 方法接受一个 int(状态码)作为参数。

: o% Z6 t2 i! y( N* y5 S6 R

如果您的反应包含了一个特殊的状态码和文档,请确保在使用 PrintWriter 实际返回任何内容之前调用 setStatus2public void sendRedirect(String url)该方法生成一个 302 响应,连同一个带有新文档 URL 的 Location 头。

8 `( m: J4 z+ w2 W3 B& K

3public void sendError(int code, String message)该方法发送一个状态码(通常为 404),连同一个在 HTML 文档内部自动格式化并发送到客户端的短消息HTTP 状态码实例

5 a6 e6 X, D$ [! V

下面的例子把 407 错误代码发送到客户端浏览器,浏览器会显示 "Need authentication!!!" 消息// 导入必需的 java 库import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import java.util.*;@WebServlet("/showError")// 扩展 HttpServlet 类public class showError extends HttpServlet { [9 X9 X( [; W' R8 ? // 处理 GET 方法请求的方法 7 s8 n4 ]9 z; {7 B" z, G% u7 P! L public void doGet(HttpServletRequest request, 9 c J# ]/ f9 O! X HttpServletResponse response)/ L9 P5 @ Y6 t6 J! ` throws ServletException, IOException 6 m$ \, ]2 G! `7 l {+ j1 {" W5 @$ B // 设置错误代码和原因 & V. r& H0 [8 q/ I response.sendError(407, "Need authentication!!!" );- Z) w3 E0 S0 k7 p% D+ v) B } 4 [. B+ E ~6 A' J! R // 处理 POST 方法请求的方法. `& w6 D3 r) Z8 d$ h public void doPost(HttpServletRequest request, 7 P' A: ]' z+ @1 a. P& H$ f4 m HttpServletResponse response) 9 u/ d/ I6 e+ q, ~ throws ServletException, IOException {7 c- J! T; K1 q3 U9 @) R! t doGet(request, response); , h* ?4 C! ~! M" x' d' X }}。

. b/ K" L1 O/ d' S" r/ \

现在,调用上面的 Servlet 将显示以下结果:HTTP Status 407 - Need authentication!!!type Status reportmessage Need authentication!!!

5 g. V" |, Q5 Y4 \ C5 A

description The client must first authenticate itself with the proxy (Need authentication!!!).Apache Tomcat/5.5.29

d+ c/ B4 R0 L- a5 c5 ~ ! k$ x2 ], {/ L. l' n% ^ ' e7 j8 J+ Q* J+ _4 V 3 `1 \- h) s4 `/ B2 J1 E' u. ~ [2 c$ j Z* ]

暂时无法加载帖子列表

回复

使用道具 举报

    您需要登录后才可以回帖 登录 | 加入怎通

    本版积分规则

    QQ|手机版|小黑屋|网站地图|真牛社区 ( 苏ICP备2023040716号-2 )

    GMT+8, 2026-10-1 20:14 , Processed in 0.091123 second(s), 24 queries , Gzip On.

    免责声明:本站信息来自互联网,本站不对其内容真实性负责,如有侵权等情况请联系420897364#qq.com(把#换成@)删除。

    Powered by Discuz! X3.5

    快速回复 返回顶部 返回列表