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状态码时,完全没有讲清楚为什么要有 ...
随机推荐
- 免费大数据搜索引擎 xunsearch 实践
以前在IBM做后端开发时,也接触过关于缓存技术,当时给了n多文档来学习,后面由于其他紧急的项目,一直没有着手去仔细研究这个技术,即时后来做Commerce的时候,后台用了n多缓存技术,需要build ...
- serialize可以获取form表单里面的数值
serialize属性 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- JS中的Promise
Promise 对象有以下两个特点. (1)对象的状态不受外界影响.Promise 对象代表一个异步操作,有三种状态:Pending(进行中).Resolved(已完成,又称 Fulfilled)和 ...
- ajax跨域上传图片
前台页面 var data = new FormData(); data.append('file', file); data.append('app', 'goods'); $.ajax({ url ...
- jmeter 连接 sqlite 进行压力测试
- 【C++】模板简述(五):类型萃取
功能 类型萃取,在STL中用到的比较多,用于判断一个变量是否为POD类型. 简述来说可以用来判断出某个变量是内置类型还是自定义类型. 通过类型萃取,萃取到变量类型,对不同变量进行不同处理,可以提升程序 ...
- Websocket 关闭浏览器报错
这个报错,是因为你关闭之后,websocket 自动连接失败造成的 只要在你的websocket 运行的类里面加上: @OnError public void onError(Throwable e, ...
- CentOS7 Install Consul
Centos7 Install Consul 原文链接:http://www.cnblogs.com/caoguo/p/5959962.html 1) 环境 2) 安装 # yum install - ...
- jquery中ajax使用error调试错误
error:function (XMLHttpRequest, textStatus, errorThrown) { } XMLHttpRequest.readyState状态码 0:未初始化还没有 ...
- vue之Render函数
(1)什么是Render函数 先来看一个场景,在博客网中,一般有一级标题.二级标题.三级标题...,为了方便分享url,它们都做成了锚点,点击后,会将内容加载网址后面,以#分隔. 例如‘特性’是一个& ...