package org.nhooo.example.servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class ResponseStatus extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //所有响应状态都在HttpServletResponse类中定义。我们 // 然后可以使用这些常量值将过程状态返回到 // 浏览器。 response.setContentType("text/html"); //假设此Servlet仅处理对页面名称inputForm的请求。所以 // 当找不到其他页面名称错误页面的用户请求时404 // 返回,否则将为200,表示可以。 String page = request.getParameter("page"); if (page != null && page.equals("inputForm")) { response.setStatus(HttpServletResponse.SC_OK); } else { response.sendError(HttpServletResponse.SC_NOT_FOUND, "The requested page [" + page + "] not found."); } } }
这是HttpServletResponse类中定义的所有可用状态代码的列表。
状态码 | 描述 |
---|---|
SC_ACCEPTED | 状态码(202),指示请求已接受处理,但未完成 |
SC_BAD_GATEWAY | 状态码(502),指示HTTP服务器在充当代理或网关时从其查询的服务器接收到无效响应 |
SC_BAD_REQUEST | 状态码(400),指示客户端发送的请求在语法上不正确 |
SC_CONFLICT | 状态码(409),指示由于与资源的当前状态冲突而无法完成请求 |
SC_CONTINUE | 状态码(100),指示客户端可以继续 |
SC_CREATED | 状态码(201),指示请求已成功并在服务器上创建了新资源 |
SC_EXPECTATION_FAILED | 状态码(417),指示服务器无法满足Expect请求标头中给出的期望 |
SC_FORBIDDEN | 状态码(403),指示服务器理解了请求但拒绝执行 |
SC_FOUND | 状态码(302),指示资源暂时位于其他URI下 |
SC_GATEWAY_TIMEOUT | 状态码(504),指示服务器在充当网关或代理时未及时收到上游服务器的响应 |
SC_GONE | 状态码(410),指示资源在服务器上不再可用,并且未知转发地址 |
SC_HTTP_VERSION_NOT_SUPPORTED | 状态码(505),指示服务器不支持或拒绝支持请求消息中使用的HTTP协议版本 |
SC_INTERNAL_SERVER_ERROR | 状态码(500),指示HTTP服务器内部发生错误,导致该服务器无法满足请求 |
SC_LENGTH_REQUIRED | 状态码(411),指示没有定义的Content-Length无法处理请求 |
SC_METHOD_NOT_ALLOWED | 状态码(405),指示请求URI标识的资源不允许使用请求行中指定的方法 |
SC_MOVED_PERMANENTLY | 状态码(301),指示资源已永久移动到新位置,并且将来的引用应在请求中使用新的URI |
SC_MOVED_TEMPORARILY | 状态码(302),指示资源已临时移动到另一个位置,但以后的引用仍应使用原始URI来访问资源 |
SC_MULTIPLE_CHOICES | 状态码(300),指示所请求的资源与一组表示中的任何一个相对应,每个表示都有自己的特定位置 |
SC_NO_CONTENT | 状态码(204),指示请求成功,但没有新信息可返回 |
SC_NON_AUTHORITATIVE_INFORMATION | 状态码(203),指示客户端提供的元信息不是源自服务器 |
SC_NOT_ACCEPTABLE | 状态码(406),指示请求所标识的资源只能根据请求中发送的接受标头生成响应实体,该响应实体的内容特征不可接受 |
SC_NOT_FOUND | 状态码(404),指示请求的资源不可用 |
SC_NOT_IMPLEMENTED | 状态代码(501),指示HTTP服务器不支持满足请求所需的功能 |
SC_NOT_MODIFIED | 状态码(304),指示条件GET操作发现资源可用且未修改 |
SC_OK | 状态码(200),指示请求正常成功 |
SC_PARTIAL_CONTENT | 状态码(206),指示服务器已满足对资源的部分GET请求 |
SC_PAYMENT_REQUIRED | 状态码(402)保留供将来使用 |
SC_PRECONDITION_FAILED | 状态码(412),指示在服务器上测试时,在一个或多个请求标头字段中给出的前提条件被评估为false |
SC_PROXY_AUTHENTICATION_REQUIRED | 状态码(407),指示客户端务必先通过代理进行身份验证 |
SC_REQUEST_ENTITY_TOO_LARGE | 状态码(413),指示服务器由于请求实体大于服务器愿意或能够处理的大小而拒绝处理请求 |
SC_REQUEST_TIMEOUT | 状态码(408),指示客户端在服务器准备等待时未发出请求 |
SC_REQUEST_URI_TOO_LONG | 状态码(414),指示服务器拒绝处理请求,因为请求URI比服务器愿意解释的时间长 |
SC_REQUESTED_RANGE_NOT_SATISFIABLE | 状态码(416),指示服务器无法满足请求的字节范围 |
SC_RESET_CONTENT | 状态码(205),指示代理应该重置导致发送请求的文档视图 |
SC_SEE_OTHER | 状态码(303),指示可以在其他URI下找到对请求的响应 |
SC_SERVICE_UNAVAILABLE | 状态码(503),指示HTTP服务器暂时超载,无法处理请求 |
SC_SWITCHING_PROTOCOLS | 指示服务器正在根据升级标头切换协议的状态码(101) |
SC_TEMPORARY_REDIRECT | 状态码(307),指示所请求的资源临时位于其他URI下 |
SC_UNAUTHORIZED | 状态码(401),指示该请求需要HTTP身份验证 |
SC_UNSUPPORTED_MEDIA_TYPE | 状态码(415),指示服务器拒绝为请求提供服务,因为请求的实体的格式不符合所请求方法的所请求资源 |
SC_USE_PROXY | 状态码(305),指示必须通过位置字段给出的代理访问所请求的资源 |