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

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

[复制链接]
我来看看 发表于 2023-03-06 15:24:35 | 显示全部楼层 |阅读模式
. o) x3 D. l2 d5 _2 w

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

6 s0 u# d2 y6 F/ s

例如,服务器的响应头如下所示:HTTP/1.1 200 OKContent-Type: text/htmlHeader2: ......HeaderN: ... & u% [) d6 K n- p (Blank Line)......

4 N$ B$ G( A3 b( D8 R

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

) l% j- b$ k. z9 R; n

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

; k- ]5 D# c2 P' a% p9 g. L2 O

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

; m4 E7 b b& s# T5 m- d2 G

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

4 A" H5 Z: m9 r m+ P3 w

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

5 ^0 k, ?8 u$ ~

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

% F4 h4 N( b, |; q. S8 V) L6 e

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

! m' G9 ? @+ \) {# A

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

: }% @+ A- M7 n) R& W( j. W

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

9 D @, t2 O0 h6 X. i8 O

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

+ e6 n9 W7 X! H7 [9 C/ V

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

# N' V* u; S9 p6 C% X1 d# X

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

& x4 a3 {! O; O

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

9 s/ V5 | I8 v' v" d, T' {# g

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

/ p! M9 N6 U( x W$ r) [5 t s

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

+ B# t/ |3 Q. y- R

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

- T1 g& `# x2 j8 U, B; i* o8 { F

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

3 u, G( g$ v1 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 {. j( d! A+ L# {5 O // 处理 GET 方法请求的方法 3 U8 D$ }3 c# d! U9 z5 _ public void doGet(HttpServletRequest request, " t1 K* r. [* J8 S& d HttpServletResponse response); U1 A6 p( K& q) J- Y0 O$ m% y, W- D throws ServletException, IOException 6 ?7 N4 Y5 d' s' l {3 S" Z3 \& D4 X4 V9 G // 设置错误代码和原因 1 r1 n" J" d7 p6 g& ?: }7 F$ `7 p: o response.sendError(407, "Need authentication!!!" );6 l. o3 }; `2 q( | }7 F9 }7 y9 N( @. s+ C/ Z // 处理 POST 方法请求的方法 ( W( \& C! [! d, I! Y$ R) a public void doPost(HttpServletRequest request, 5 N9 ?5 ?; ]" ?$ [5 z H HttpServletResponse response) ) a" l$ O- f5 q A$ t throws ServletException, IOException {& S# [& f4 d1 |5 Y8 Z doGet(request, response);" h/ V* ]4 V/ u' Y }}。

1 j' M2 V( k S" s& P4 O1 T

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

, B+ z/ z+ w ~+ W0 }7 J

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

' W5 c! q3 }# x8 V1 h9 R6 K6 o - g# b% G r* K/ R# I0 `* }+ ] R 9 {% L# {, ~/ ^5 J, t 0 m- J5 k" o0 }$ _ \$ O& r& D8 r9 B" F' g! S7 U3 Y( m
回复

使用道具 举报

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

    本版积分规则

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

    GMT+8, 2026-4-4 19:20 , Processed in 0.082697 second(s), 23 queries , Gzip On.

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

    Powered by Discuz! X3.5

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