欢迎光临
我们一直在努力

response vs request对象

文章目录

  • 从一个例子说起
      • 它的作用就是:
      • 详细拆解
      • 常见用法场景
      • 小拓展
  • response vs request
  • 1. 先搞懂两个对象的身份
    • **request = 请求(浏览器 → 服务器)**
    • **response = 响应(服务器 → 浏览器)**
  • 2. 跳转是谁发给谁?
  • 3. 为什么不能用 request?
  • 4. 最形象的比喻
  • 5. 再看两个跳转,全都是 response
    • **服务器告诉浏览器要跳转**

从一个例子说起

response.setHeader("refresh", "3;url=login.jsp");

它的作用就是:

让浏览器等待 3 秒,然后自动跳转到 login.jsp 页面。

详细拆解

  • refresh:告诉浏览器“我要定时刷新/跳转”
  • 3:等待 3 秒 再执行跳转
  • url=login.jsp:3 秒后跳去哪个页面
  • 常见用法场景

    • 登录失败:账号或密码错误,3秒后返回登录页
    • 登出成功:已退出登录,3秒后返回登录页
    • 操作成功:添加成功,2秒后返回列表页

    小拓展

    • 想立刻跳转(0 秒):response.setHeader("refresh", "0;url=login.jsp");
    • 跳转前可以先输出提示文字,用户体验更好:out.println("账号或密码错误!");
      response.setHeader("refresh", "3;url=login.jsp");

    response vs request

    1. 先搞懂两个对象的身份

    request = 请求(浏览器 → 服务器)

    • 浏览器发给服务器的包裹
    • 里面装的是:账号、密码、参数、Cookie
    • 方向:浏览器 → 服务器
    • 它是**“送来的包裹”**

    response = 响应(服务器 → 浏览器)

    • 服务器回复给浏览器的包裹
    • 里面装的是:HTML、状态码、跳转指令、Cookie
    • 方向:服务器 → 浏览器
    • 它是**“返回的指令”**

    2. 跳转是谁发给谁?

    跳转指令 = 服务器告诉浏览器:“你3秒后去别的页面”

    这是服务器对浏览器的命令,所以必须放在 response 里。

    response.setHeader("refresh", "3;url=login.jsp");

    意思就是: 服务器 → 响应头 → 浏览器:等3秒,跳转到登录页。

    3. 为什么不能用 request?

    因为 request 是浏览器发给服务器的,不是服务器发给浏览器的!

    你如果写:

    request.setHeader... ❌ 错误

    就等于: 浏览器告诉服务器:我等会儿跳走 这完全逻辑颠倒!

    4. 最形象的比喻

    • request = 学生交作业(浏览器→服务器)
    • response = 老师批改作业(服务器→浏览器)

    setHeader("refresh") 相当于: 老师对学生说:你3秒后离开教室 → 这是老师的指令,必须写在 response(老师的回复) 里!

    5. 再看两个跳转,全都是 response

    response.sendRedirect("xxx"); // 立即跳转
    response.setHeader("refresh", "3;url=xxx"); // 延时跳转

    两个跳转,全都是 response 调用!

    因为跳转永远是:

    服务器告诉浏览器要跳转

    • request:浏览器 → 服务器(只能拿数据,不能跳转)
    • response:服务器 → 浏览器(才能输出、跳转、设置头)

    所以跳转必须用 response,绝对不能用 request!

    赞(0)
    未经允许不得转载:171主机测评 » response vs request对象
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址