• 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 文档可以缓存

  • 相关阅读:
    zipkin启动报错(Caused by: java.lang.ClassNotFoundException: zipkin.Component)的解决方法
    Java中的long与double的区别
    redis使用笔记
    解决node编程频繁修改代码,需要重启服务器问题
    远程连接mysql要点 虚拟主机定义与分类
    详析静态网站与动态网站区别(服务器ip dns 端口)
    JavaEE-实验四 HTML与JSP基础编程
    JavaEE-实验三 Java数据库高级编程
    JavaEE-实验二 Java集合框架实验
    mysql中文乱码 常见编码问题解决方法分享
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/7833594.html
Copyright © 2020-2023  润新知