servlet请求转发与重定向的对比

本文探讨了在web应用中servlet的两种页面请求方式——请求转发和重定向。请求转发地址栏不变更,适合同一服务器内部操作,可使用request.setAttribute()传递数据。而重定向地址栏会改变,适用于跨服务器跳转,需通过session传递数据。请求转发仅请求一次,重定向则请求两次。

在web应用中,有两种页面请求方式,如servlet跳转index.jsp:
1:请求转发

request.getRequestDispatcher("index.jsp").forward(request,response);

2:请求重定向。

response.sendRedirect("index.jsp");

转发 与 重定向 的区别

1.前者:跳转之后,地址还在servlet页面,没有真正回到index.jsp页面,地址栏没变,还是servlet页的地址。
后者:跳转后回到了index.jsp页面,地址栏改变。

2.前者:由于是request请求,所以在值得作用域方面,可以用request.setAttribute() 赋值。
后者:不能用request的域,但可以用session的域request.getSession().setAttribute(“x”, x);

3.在请求的资源需要在多台服务器上跳转时,就用重定向。
服务器使用的少时,用转发。

4.前者:请求一次
后者:请求两次(请求一个servlet情况下)

图解请求与转发

  1. 这里写图片描述

2.这里写图片描述

图一是转发:张三找李四借钱,李四说我没有,我朋友王五有,于是李四向王五去借钱,借到后给了张三,在这个过程中,张三只进行了一次请求,本来是请求的李四,但是李四将请求转发到王五这里。

对应向服务器发送请求也就是一个道理了。

图二是重定向:张三向李四发送借钱请求,李四回应请求,说我没有,王五有,你去找王五。于是张三发送第二次请求,请求王五,王五给张三借钱了。

张三就是你自己,李四和王五就是不同的服务器,上面有不同的服务读到这里,你应该了解转发与重定向的区别的吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值