• Response对象详解


    简述

      设置响应行  当web应用接受到http请求的时候,可以通过操作response,然后tomcat就会将该response缓冲区获取响应内容,然后组成响应消息传输给客户端。response对象可以设置响应行、响应头、响应体。

      响应头格式:HTTP/1.1 200 ok

    setStatus(int sc)  设置状态码

    设置响应头

    setHeader(String name, String value)  设置响应头

    设置响应体

      我们想设置响应体的话就要先从response对象中获取输出流

    PrintWriter getWriter() 字符输出流
    ServletOutputStream getOutputStream() 字节输出流

      使用输出流,将数据输出到客户端浏览器

      浏览器收到数据后,会自动解析标签将数据展示出来

    实现重定向

      重定向是一种资源跳转方式,是通过各种方法将各种网络请求重新定个方向转到其它位置

      我们可以通过response对象设置状态码和响应头location完成重定向

      重定向的状态码是302,要设置状态码浏览器才知道接下来要重定向

    //1.设置状态码为302
    response.setStatus(302);
    //2.设置响应头location
    response.setHeader("location","/要重定向的资源路径");

      我们发现在重定向过程中,设置状态码和响应头location唯一可能需要改变的就是要重定向的资源路径

      所以这两行被封装到一个新方法

    response.sendRedirect("新的路径")
    重定向

    重定向的特点

      1. 地址栏发生变化

      2. 重定向可以访问其他站点(服务器)的资源

      3. 重定向是两次请求。不能使用request对象来共享数据

    转发的特点

      1. 转发地址栏路径不变

      2. 转发只能访问当前服务器下的资源

      3. 转发是一次请求,可以使用request对象来共享数据

    转发和重定向的路径问题

      转发和重定向都要设置新的路径,这里有个简单理解的规则:

      判断定义的路径是给谁用的?判断请求将来从哪儿发出

      给客户端浏览器使用:需要加虚拟目录(项目的访问路径)
        *建议虚拟目录动态获取:request.getContextPath()
        * <a> , <form> 重定向...
      给服务器使用:不需要加虚拟目录
        * 转发路径

     

    一点一点积累,一点一点蜕变!
  • 相关阅读:
    读取手机联络人实例
    MotionEvent中getX()和getRawX()的区别
    Android开源项目发现--- 效率开发工具篇(持续更新)
    开发资源收藏
    ViewHolder VS HolderView ?
    如何测试 Android 中的定时事件
    性能优化实例
    lamba
    并行操作多个序列map
    连续处理函数reduce
  • 原文地址:https://www.cnblogs.com/qq2210446939/p/14820770.html
Copyright © 2020-2023  润新知