Http状态代码
1、指定状态码:
setStatus
HttpServletResponse的setStatus方法。如果响应的状态代码比较特殊,并且伴有相关的文档内容,那么一定要在用PrintWriter实际返回任何内容之前调用setStatus,因为没有明确规范规定servlet一定要一个空行、因此,必须在使用PrintWriter之前设置状态代码,或者在设置状态代码时,仔细核实缓冲区尚未被清楚,内容尚未实际发往浏览器。
setStatus最好不要直接设置明确的数字,而使用HttpServletResponse中定义的常量。

sendRedirect和sendError
HttpServletResponse专为两种常见的情况提供了快捷方法。两个方法都抛出IOException。
public void sendRedirect(String url)
状态码302命令连接到新的位置。sendRedirect生成302响应以及Location报头
public void sendEoor(int code, String message)
状态码404用于服务器没有找到文档的情况。sendError方法发送状态代码以及一段简短的消息,这段消息被自动安排到HTML中发送给客户。

2、状态码
100-199:10~199间的代码都是信息性的,标示客户应该采取的其他动作
200-299:200~299间的值表示成功
300-399: 300~399间的值用于那些已经移走的文件,常常包括Location报头,指出新的地址
400-499: 400~499间的值标示由客户引发的错误
500-599:500~599表示由服务器引发的错误
常见码:
100:Continue继续
200:OK,一切正常
202:Accepted,已接受
204:No Content,没有新文档
205:Reset Content,重置内容
301:Moved Permanently,被永久移动
302:Found,找到
有一个专门的方法,sendRedirect,用response.setStatus(),以及response.setHeader("Location",url)相比,使用response.sendRedirect(url)有许多优点。首先,他更简短,使用也更容易。其次,使用sendRedirect(url)时,servlet自动构建含有链接的页面,引导那些不能自动跟重定向信息的老版本浏览器。最后sendRedirect还可以处理相对URL,自动将它们转换成对应的绝对URL。
技术上一般认为仅当最初的请求为GET时,浏览器才应自动执行重定向。
303:See Other,检查其他文档
304:Not Modified,未发生更改
307:Temporary Redirect,临时重定向
400:Bad Request,错误请求
401:Unauthorized,未授权
403:Forbidden,资源不可用
404:Not Found,未找到
405:Method Not Allowed,方法不允许
415:Unsupported Media type不支持的媒体类型
417:Expectation Failed,期望不能满足
500:Internal Server Error,服务器内部错误
501:Not Implemented,未实现
503:Service Unavailable,服务不可用
505:Http Version Not Supported,不支持的HTTP版本

3、将用户重定向到浏览器相关页面的servlet

Http响应报头的生成:
最通用的方法是HttpServletResponse.setHeader方法
setHeader(String headerName, String headerValue)
除了通用的setHeader方法之外,HttpServletResponse还有两个专门的方法,用来设置含有日期和整数的报头:
setDateHeader(String header, long milliseconds)
setIntHeader(String header, int headerValue)
HTTP允许相同的报头多次出现,有时候我们希望加入新的报头,而非替换已有的同名报头。可以使用containsHeader进行检查。
HttpServletResponse还提供许多方便的方法来指定常用的报头:
setContentType
setContentLength
addCookie
sendRedirect
理解Http响应报头:
allow:指定服务器支持的请求方法
cache-control:这个报头告诉浏览器或其他客户,什么环境可以安全地缓存文档
public 文档可以缓存

http指定状态码的更多相关文章

  1. 选择一个 HTTP 状态码不再是一件难事 – Racksburg

    原文链接:http://racksburg.com/choosing-an-http-status-code/ 打开双语对照阅读 有什么能比 HTTP 响应状态码更简单呢?页面渲染了吗?好极了,返回  ...

  2. JavaWeb_Day10_学习笔记1_response(3、4、5、6、7、8、9)发送状态码、响应、重定向、定时刷新、禁用浏览器缓存、响应字节数据、快捷重定向方法、完成防盗链

    今天学习重点: 1.response和request响应和应答分别学习: 请求响应流程图 response 1        response概述 response是Servlet.service方法 ...

  3. Javaweb学习笔记——(十)——————response对象,response字符流缓冲器,响应头,状态码,重定向,requset对象,路径和乱码

    请求响应对象: request和response *当服务器接收都请求后,服务器会创建request和response对象,把请求数据封装到request对象中: *然后调用Servlet的sevic ...

  4. 选择一个 HTTP 状态码不再是一件难事 – Racksburg《转载》

    本文转载自:众成翻译 译者:十年踪迹 链接:http://www.zcfy.cc/article/904 原文:http://racksburg.com/choosing-an-http-status ...

  5. Http状态码之:301、302重定向

    概念 301 Moved Permanently 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一.如果可能,拥有链接编辑功能的客户端应当自动把请求的地 ...

  6. HTTP常用状态码分析

    不管是面试还是工作中,经常会碰到需要通过HTTP状态码去判断问题的情况,比如对于后台RD,给到前端FE的一个接口,出现502或者504 error错误,FE就会说接口存在问题,如果没有知识储备,那就只 ...

  7. Java发送Http请求并获取状态码

    通过Java发送url请求,查看该url是否有效,这时我们可以通过获取状态码来判断. try { URL u = new URL("http://10.1.2.8:8080/fqz/page ...

  8. HTTP各状态码解释

      状态码 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必 ...

  9. HTTP状态码(HTTP Status Code)

    一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 所有状态解释: 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码. 代码 说 ...

随机推荐

  1. [不屈的复习] - http://how2j.cn/

    http://how2j.cn/ 该教程网站分得比较规整!

  2. Select2下拉框总结

    用了这么久的Select2插件,也该写篇文章总结总结.当初感觉Select2不是特别好用,但又找不到比它更好的下拉框插件. 在我的印象里Select2有2个版本,最新版本有一些新的特性,并且更新了一下 ...

  3. UOJ #56. 【WC2014】非确定机

    题意大意:给出一个输出文件,求输入. 1.满足所求的输入文件是一张图,n个点,m条边,所用算法是k(k在给出的输出文件中给出了) 2.算法是图论算法?!k基本上→两位数组成,若十位数相同,说明基本算法 ...

  4. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks论文理解

    一.创新点和解决的问题 创新点 设计Region Proposal Networks[RPN],利用CNN卷积操作后的特征图生成region proposals,代替了Selective Search ...

  5. CSS3 媒体查询@media 查询(响应式布局)

    例:如果文档宽度小于 300 像素则修改背景颜色(background-color): @media screen and (max-width: 300px) { body { background ...

  6. canvas和图片之间的互相装换

    canvas和图片之间的互相装换 一.总结 一句话总结:一个是canvas的drawImage方法,一个是canvas的toDataURL方法 canvas drawImage() Image对象 c ...

  7. ubuntu server 无线网卡的处理

    1) iwconfig 确定一下接口的名称 2) 编辑 /etc/network/interfaces 加入下面的代码 auto wlan0 iface wlan0 inet dhcp wpa-ssi ...

  8. springboot集成mybatis及mybatis generator工具使用

    原文链接 前言mybatis是一个半自动化的orm框架,所谓半自动化就是mybaitis只支持数据库查出的数据映射到pojo类上,而实体到数据库的映射需要自己编写sql语句实现,相较于hibernat ...

  9. 雷林鹏分享:C# 事件(Event)

    C# 事件(Event) 事件(Event) 基本上说是一个用户操作,如按键.点击.鼠标移动等等,或者是一些出现,如系统生成的通知.应用程序需要在事件发生时响应事件.例如,中断.事件是用于进程间通信. ...

  10. LncRNA

    简介:长链非编码RNA(Long non-coding RNA, lncRNA)通过多种机制发挥其生物学功能, 这些机制包括基因印记.染色质重塑.细胞周期调控.剪接调控.mRNA降解和翻译调控等.ln ...