请求转发(request对象)和重定向(response)的区别及何时使用请求转发和重定向

标题request和response主要区别:

1、 请求转发使用 request对象,重定向使用 response 对象
2、 请求转发使用服务器端路径,重定向使用客户端路径
3、 请求转发不能跳转外网,重定向可以跳转外网
4、 请求转发是服务器内部的跳转,不依赖网速,跳转速度极快
——重定向是依赖浏览器的跳转,严重依赖网速,跳转速度略慢
5、 请求转发:请求一次,响应一次, 占用资源少
——重定向:重定向 N 次,响应 n+1 次,占用大量资源
6、 请求转发可以访问受保护目录资源WEB-INF,重定向不能访问受保护目录
7、 请求转发不会改变地址栏路径,重定向会改变路径。
——安全:请求转发。会隐藏后面转发程序的访问路径。
——程序 BUG:由于请求转发不会更改地址,会导致用户重复访问某个 Servlet程序。解决方案:建议改为重定向
8、 请求转发可以使用 request 作用域,重定向不能使用request作用域

何时使用request和response

何时使用请求转发
1、 为了安全,隐藏某些程序的访问路径
2、 为了效率
3、 为了内存占用率低
4、 访问受保护目录资源
5、 使用 request 作用域

何时使用重定向
1、 跳转外网路径
2、 改变地址栏访问路径

除了以上 7 种情况外,两种跳转方式可以相互替代使用

请求转发&重定向图示

请求外网,用重定向,其他所有使用请求转发即可
在这里插入图片描述
在这里插入图片描述

request原理简述&继承树&行头体操作

原理

request原理&简述

继承树

request继承树

public void t2(){
   
    //http://localhost:8080/day05/d1?method=t2
    //操作请求行
    System.out.println(getRequest().getRemoteAddr());//0:0:0:0:0:0:0:1   因为是服务器自己开浏览器访问自己,所以客户端地址仍然是服务器的
    System.out.println(getRequest().getContextPath());//   /day05
    System.out.println(getRequest().getMethod());//GET
    System.out.println(getRequest().getRequestURI(
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自律的代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值