请求转发和重定向

野性酷女 2022-02-17 12:19 530阅读 0赞

1. 请求的转发

1)什么是请求转发?

是指Servlet对一个请求进行初步的处理,然后交给另一个组件(Servlet,JSP,Html)来生成响应内容

一般情况下,都是Servlet对请求进行处理,然后交给JSP来生成响应内容

2) 为什么用请求转发?

充分利用不同组件的特点,发挥组件的优势,让组件配合工作,提高开发的效率

3)如何实现转发?

  1. 1. request中绑定数据
  2. 存:request.setAttribute(String name,Object value);
  3. 取:Object value=request.getAttribute(String name)
  4. 2. 获取请求转发器
  5. RequestDispatcher rd=
  6. request.getRequestDispatcher("/login.jsp");
  7. 3. 转发请求
  8. rd.forward(request,response);

在这里插入图片描述

4) 请求转发的特点

  1. 1. 一次请求,一次响应
  2. 2. 地址栏不会发生改变
  3. 3. 转发经过的所有组件使用的是同一个request对象,因此可以使用request来共享数据
  4. 4. 请求转发的目的地只能是当前项目中的组件,不能是其他项目或网站的内容

5)常见面试题

请简述2种常见的请求(资源)跳转方式的区别

  1. 2种常见的资源跳转方式:请求转发和请求重定向
  2. 请求重定向:服务器在一次响应中,通知浏览器去请求一个新的url
  3. 请求转发:Servlet对请求进行初步的处理,交给另一个组件来生成响应内容
    在这里插入图片描述
  4. 什么时候用转发?什么时候用重定向?

    1. 目的地是当前项目内部还是外部? 外部 -> 重定向
    2. 是否需要使用request共享数据? 需要 -> 转发
    3. 如果是内部且不用共享数据,优先用转发,效率更高
      在这里插入图片描述

1. 重定向

服务器在一次响应中,通知浏览器去请求一个新的url
在这里插入图片描述
##1) 为什么要学重定向

  1. 业务需要:比如未登录不能购买,先登录
  2. 优化用户体验:比如登录成功后,自动跳转商品购买页面

##2)如何实现重定向
原理:302响应状态码+location的响应头

在这里插入图片描述
API:
response.sendRedirect(“url”)

##3)重定向的特点

  1. 一共是2次请求,2次响应
  2. 地址栏会发生变化,显示的是第二次请求的地址
  3. 重定向既可以定向到当前服务器内部的资源,也可以定向到其它的网站
  4. 服务器内部资源: listUser
  5. 其它网站的资源: http://www.baidu.com

发表评论

表情:
评论列表 (有 0 条评论,530人围观)

还没有评论,来说两句吧...

相关阅读