一个故事看懂请求转发与重定向的区别

1.request的概念
request是servlet.Service()方法中的一个参数。由服务器创建用来接收客户端请求的一个对象。
流程:
(1)浏览器发送请求给服务器。
(2)服务器创建request对象。
(3)request对象获取客户端数据并存储。
(4)以形参的形式放进service()方法中。
2.response的概念
在客户端发出每个请求时,服务器都会创建一个response对象,并传入给Servlet.service()方法。response对象是用来对客户端进行响应的,这说明在service()方法中使用response对象可以完成对客户端的响应工作。
3.转发与重定向的区别
请求转发:张三(用户)去政府单位盖章,问了业务员A(地址栏url),然后A盖了一个章,A又找B(请求转发后的url)盖了一个章。最后两个章子盖好以后才把表单交给张三。以上流程,张三只和A接触,没有和B接触,就完成了盖章。所以请求转发,地址栏信息不变,只交流了一次,所以只有一次请求。
重定向:张三找A盖章,A说不行,你得先找B盖章。然后张三又带着表单去找B盖章。以上流程,张三和A接触,也与B接触。所以重定向地址栏信息改变,与两个人交流,所以重定向有两次请求。
总结如下:
1.实现
转发:
request.getRequestDispatcher(“路径”).forward(request, response);
重定向:
response.sendRedirect(“路径”);
2.地址栏
转发:不变,不会显示出转向的地址
重定向:会显示转向之后的地址
3.请求
重定向:至少提交了两次请求
4.数据
转发:对request对象的数据不会丢失,可在多个页面交互过程中实现请求数据共享
重定向:request数据将丢失

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值