JSP中HTTP状态码
以下内容引用自http://wiki.jikexueyuan.com/project/jsp/http-status-codes.html:
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版本(例子中的HTTP/1.1),状态码(例子中的200)和对应状态代码的短消息(例子中的OK)。
下面是HTTP状态代码和相关可能从Web服务器返回的消息的一个列表:
| 编码: | 消息: | 描述: |
|---|---|---|
| 100 | Continue | 只有一部分的服务器请求已经收到,但只要没有被拒绝,客户端应该继续请求 |
| 101 | Switching Protocols | 服务器交换了协议。 |
| 200 | OK | 请求是OK |
| 201 | Created | 请求已经完成,新的资源被创建 |
| 202 | Accepted | 请求被接受处理,但是处理还没有完成。 |
| 203 | Non-authoritative Information | |
| 204 | No Content | |
| 205 | Reset Content | |
| 206 | Partial Content | |
| 300 | Multiple Choices | 一个链接列表。用户可以选择一个链接然后跳转到那个位置。最多可选择5个地址 |
| 301 | Moved Permanently | 请求页面已经被移到新的URL中 |
| 302 | Found | 请求页面暂时被移到新的URL中 |
| 303 | See Other | 请求页面可在不同的URL中找到 |
| 304 | Not Modified | |
| 305 | Use Proxy | |
| 306 | Unused | 该代码是在前一版本使用的。它已不再使用,但该代码保留下来了。 |
| 307 | Temporary Redirect | 请求页面被暂时移到新的URL中。 |
| 400 | Bad Request | 服务器没有理解请求。 |
| 401 | Unauthorized | 请求页面需要用户名和密码 |
| 402 | Payment Required | 不能使用这个代码 |
| 403 | Forbidden | 不允许访问请求页面 |
| 404 | Not Found | 服务器找不到请求页面。 |
| 405 | Method Not Allowed | 在请求中指定的方法不允许使用。 |
| 406 | Not Acceptable | 服务器只能生成一个不被客户端接收的响应。 |
| 407 | Proxy Authentication Required | 在这个请求得到服务之前,必须验证一个代理服务器。 |
| 408 | Request Timeout | 请求花费的时间比服务器准备等待的时间长。 |
| 409 | Conflict | 由于冲突请求不能实现。 |
| 410 | Gone | 请求页面不再可用。 |
| 411 | Length Required | "内容-长度" 没有被定义。没有它服务器不会接受请求。 |
| 412 | Precondition Failed | 服务器给出给定的请求评估的前提为假。 |
| 413 | Request Entity Too Large | 服务器不会接受请求,因为请求实体太大。 |
| 414 | Request-url Too Long | 服务器不会接受请求,因为URL太长。当把“POST”请求转换为带有很长的查询信息的“GET”请求时,这种情况就会发生 |
| 415 | Unsupported Media Type | 服务器不会接受请求因为媒体类型不支持。 |
| 417 | Expectation Failed | |
| 500 | Internal Server Error | 请求未完成。服务器遇到了意外情况。 |
| 501 | Not Implemented | 请求未能完成。服务器不支持所需的功能。 |
| 502 | Bad Gateway | 请求未能完成。服务器从上游服务器收到无效响应 |
| 503 | Service Unavailable | 请求未能完成。服务器暂时过载或瘫痪。 |
| 504 | Gateway Timeout | 网关超时。 |
| 505 | HTTP Version Not Supported | 服务器不支持“HHTP协议”版本。 |
设置HTTP状态码的方法:
有以下方法可以用来设置 servlet 程序的 HTTP 状态码。有了 HttpServletResponse 对象,这些方法都是可用的。
| 方法 | 描述 |
|---|---|
| public void setStatus ( int statusCode ) | 此方法设置一个任意的状态码。setStatus方法接受一个 int(状态码)作为参数。如果响应包含一个特殊的状态码和文档,在实际中用PrintWriter返回任何内容之前一定要调用setStatus。 |
| public void sendRedirect(String url) | 该方法生成一个302响应以及一个位置标题给出新文档的URL。 |
| public void sendError(int code, String message) | 这种方法发送一个状态码(通常是404)以及一个在HTML文档内自动格式化的短消息并发送到客户端。 |
HTTP 状态码实例:
下面的例子将发送407错误代码到客户端浏览器,浏览器将显示“需要验证! ! !”的消息。
<html>
<head>
<title>Setting HTTP Status Code</title>
</head>
<body>
<%
// Set error code and reason.
response.sendError(407, "Need authentication!!!" );
%>
</body>
</html>
现在调用上述代码,JSP将显示如下所示的结果:

测试工程:https://github.com/easonjim/5_java_example/tree/master/jspbasics/test6
JSP中HTTP状态码的更多相关文章
- 19.在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?)写出http常见的状态码和含义,至少5个.[完善题目]
状态401代表未被授权,header("Location:www.xxx.php"); 100-199 用于指定客户端应相应的某些动作. 200-299 用于表示请求成功. 300 ...
- 网站建设中HTTP状态码的奥秘
在网络营销中,站长经常会遇到一些HTTP状态码的问题,不懂HTTP状态码那么做SEO优化就无从谈起,下面是脉凌网络对HTTP状态码总结的一览表. 1xx:请求收到,继续处理 2xx:操作成功收到,分析 ...
- php笔记06:http响应中的状态码
首先我们看一个360浏览器中使用开发截图如下: 上面的Status Code: OK (这个就是状态码) 1.状态码主要用于服务器对请求的处理结果,它是一个三位的十进制数.响应状态码分为5类,如下所 ...
- 关于 RESTful API 中 HTTP 状态码的定义
最近正好使用了一会儿 Koa ,在这说一下自己对各个 请求码的见解和使用场景,懒人直接看 200.400.401.403.404.500 就可以了. 其中 2XX/3XX 其实都是请求成功,但是结果不 ...
- http协议中的状态码(status code),超文本传输协议状态码
HTTP协议,又叫超文本传输协议. 在项目的开发过程中,前后端交互,这个用的是最多的,在后端给我的的接口调用时,我们往往先查看这个协议的状态码,状态码正常了,才进一步去看我们从后太拿的数据,是否为我们 ...
- JSP常见的状态码
1.404错误 -- 找不到访问的页面或资源 a.URL输入错误: b.未部署项目. 2.500错误 -- JSP页面代码有错误 3.302状态码+200状态码 -- 重定向 4.200状态码 -- ...
- Shell中退出状态码exit
shell中运行的每个命令都使用退出状态码(exit status)来告诉shell它完成了处理.退出状态码是一个0~255之间的整数值,在命令结束时由命令传回shell. 1 .查看退出状态码 Li ...
- HTTP/1.0中,状态码200 301 304 403 404 500的含义?
200 OK 服务器成功处理了请求 301 重定向,请求的URL已移走 304未修改,客户的缓存资源是最新的,要客户端使用缓存 403禁止,请求被服务器拒绝了 404未找到资源 500内部服务器错误, ...
- HTTP状态码302、303和307的故事
今日读书,无法理解HTTP302.303.307状态码的来龙去脉,决定对其做深究并总结于本文. <HTTP权威指南>第3章在讲解30X状态码时,完全没有讲清楚为什么要有 ...
随机推荐
- Android学习笔记(八) CheckBox和RadioGroup
一.CheckBox 1.CheckBox的常用方法: boolean isChecked() :返回当前CheckBox的选中状态 void setChecked(boolean isChecked ...
- Android Studio 打包APK时,出现3个或多个APK
Android Studio 打包APK时,原来只会出现一个apk,结果现在出现3个apk,仔细检查了一下项目文件发现: Android Studio 的 buid.gradle文件里有个配置项被更改 ...
- postgresql update from
1,update from 关联表的更新 update table a set name=b.name from table B b where a.id=b.id; update test ...
- 数据库系统概论(1)——Chap. 1 Introduction
数据库系统概论--Introduction 一.数据库的4个基本概念 数据(data):数据是数据库中存储的基本单位.我们把描述事物的符号记录称为数据.数据和关于数据的解释是不可分的,数据的含义称为数 ...
- Swift - 值类型与引用类型的初步探究
前言 swift中的结构体和类在组成和功能上具有一定的相似性.两者都可以含有成员属性.成员方法用于数据存储和功能性模块封装.往往造成不知如何对二者进行区分和使用 值类型概念和引用类型概念 值类型的概念 ...
- dxf组码
值 说明 -5 APP:永久反应器链 -4 APP:条件运算符(仅与 ssget 一起使用) -3 APP:扩展数据 (XDATA) 标记(固定) -2 APP:图元名参照(固定) -1 APP:图元 ...
- C# WebService 的缓存机制
C# WebService 的缓存机制 [转]WebService的缓存机制 2008年02月19日 星期二 11:22 WebService的缓存分为两种,一种是简单的输出缓存,一种是强大的数据 ...
- JAVA基础——内存流
掌握内存操作流 输入和输出都是从文件中来的,当然,也可将输出的位置设置在内存上,这就需要ByteArrayInputStream和ByteArrayOutputStream ByteArrayInpu ...
- NOIp模拟赛 西行妖下
题目描述: 给出一棵n个节点的树,每个点初始m值为1. 你有三种操作: 1.Add l r k ,将l到r路径上所有点m值加k. 2.Multi l r k ,将l到r路径上所有点m值乘k. 3.Qu ...
- 【thinking in java】ArrayList源码分析
简介 ArrayList底层是数组实现的,可以自增扩容的数组,此外它是非线程安全的,一般多用于单线程环境下(Vector是线程安全的,所以ArrayList 性能相对Vector 会好些) Array ...