http指定状态码
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指定状态码的更多相关文章
- 选择一个 HTTP 状态码不再是一件难事 – Racksburg
原文链接:http://racksburg.com/choosing-an-http-status-code/ 打开双语对照阅读 有什么能比 HTTP 响应状态码更简单呢?页面渲染了吗?好极了,返回 ...
- JavaWeb_Day10_学习笔记1_response(3、4、5、6、7、8、9)发送状态码、响应、重定向、定时刷新、禁用浏览器缓存、响应字节数据、快捷重定向方法、完成防盗链
今天学习重点: 1.response和request响应和应答分别学习: 请求响应流程图 response 1 response概述 response是Servlet.service方法 ...
- Javaweb学习笔记——(十)——————response对象,response字符流缓冲器,响应头,状态码,重定向,requset对象,路径和乱码
请求响应对象: request和response *当服务器接收都请求后,服务器会创建request和response对象,把请求数据封装到request对象中: *然后调用Servlet的sevic ...
- 选择一个 HTTP 状态码不再是一件难事 – Racksburg《转载》
本文转载自:众成翻译 译者:十年踪迹 链接:http://www.zcfy.cc/article/904 原文:http://racksburg.com/choosing-an-http-status ...
- Http状态码之:301、302重定向
概念 301 Moved Permanently 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一.如果可能,拥有链接编辑功能的客户端应当自动把请求的地 ...
- HTTP常用状态码分析
不管是面试还是工作中,经常会碰到需要通过HTTP状态码去判断问题的情况,比如对于后台RD,给到前端FE的一个接口,出现502或者504 error错误,FE就会说接口存在问题,如果没有知识储备,那就只 ...
- Java发送Http请求并获取状态码
通过Java发送url请求,查看该url是否有效,这时我们可以通过获取状态码来判断. try { URL u = new URL("http://10.1.2.8:8080/fqz/page ...
- HTTP各状态码解释
状态码 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必 ...
- HTTP状态码(HTTP Status Code)
一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 所有状态解释: 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码. 代码 说 ...
随机推荐
- CodeCombat多人游戏Greed
题目的意思在于,更高效的Collect Gold:然后合理的安排生产出来的士兵: // This code runs once per frame. Build units and command p ...
- BZOJ1307: 玩具 单调队列
Description 小球球是个可爱的孩子,他喜欢玩具,另外小球球有个大大的柜子,里面放满了玩具,由于柜子太高了,每天小球球都会让妈妈从柜子上拿一些玩具放在地板上让小球球玩. 这天,小球球把所有的N ...
- github上不去了
这几天发现github.com上不去了 可能是由于要杜绝国外的人使用最新的技术??从而屏蔽了吗?
- java 如果仅输出一位和要输出多位格式的输出问题,利用boolean值.
package com.ykmimi.testtest; /** * 第七周第二题,来自网络 */ import java.util.Scanner; public class NumberPerfe ...
- C语言优先级
条件1 && 条件2,如果条件1为假,则条件2语句不执行,因为能判断该表达式为假 条件1 || 条件2,如果条件1为真,则条件2语句不执行,因为能判断该表达式为真 优先级 运算符 名称 ...
- Fast R-CNN论文理解
论文地址:https://arxiv.org/pdf/1504.08083.pdf 翻译请移步:https://blog.csdn.net/ghw15221836342/article/details ...
- select 操作
一:JavaScript 1:拿到select对象: var myselect=document.getElementById(“test”); 2:拿到选中项的索引:var index=mysele ...
- 音视频学习系列第(七)篇---MediaCodec的使用
音视频系列 什么是MediaCodec MediaCodec是安卓官方提供的一套用于音视频编码和解码的API,该API是在安卓4.1(API 16)引入的,因此只能用于4.1以上的手机 MediaCo ...
- Codeforces 893E - Counting Arrays
893E - Counting Arrays 思路:质因子分解. 对于每个质因子,假设它有k个,那么求把它分配到y个数上的方案数. 相当于把k个小球分配到y个盒子里的方案数. 这个问题可以用隔板法(插 ...
- C#中正确使用enum做Key的姿势
C#中自定义enum,然后将其作为Dictionary的Key,通常的做法如下: using System; using System.Text; using System.Collections.G ...