转发与重定向

使用转发跳转时,跳转是在服务器端实现的,客户端浏览器并不知道该浏览的动作,而使用重定向跳转的社会化,跳转实在客户端实现的,也就是说客户端浏览器实际上请求了两次服务器,语法格式如下:
response.sendRedirect("/a.jsp");
页面的路径是相对路径,sendRedirect可以将页面跳转到任何页面,不一定局限于本web应用中,例如:
response.sendRedirect("URL");
跳转后浏览器地址栏发生变化,这种方式要传值出去的话,只能在url中带parameter或者是放在seesion中,无法使用request.setAttribute来传递。接着小编以画图的形式来解释一下转发和重定向的区别:
转发
a、转发不会改变浏览器的地址栏
b、转发共享同一个request
c、转发只能在同一个web应用中使用
如下图:

接着,我们来看重定向:
a、重定向会改变浏览器的地址栏
b、重定向不共享request
c、可以重定向到任意URL
如下图:

        一句话概括来说就是,转发是服务器行为,重定向是客户端行为,从请求次数和请求的资源地址两个方面来理解一下她们之间的区别,首先从请求次数来说,重定向行为是做了两次请求,以及产生了两个request对象,重定向会导致request对象信息丢失。转发是做了一次请求,浏览器地址栏一直是第一次请求的地址,转发是服务器内部request/response控制权的移交。

        从请求资源的角度来看,重定向是weib自荐可以将请求重定向到任意一个url,而不仅仅是同一个应用,重定向的源组件与目标组件不公用同一个HttpServletRequest对象,因此不能在request范围内共享数据。转发的源组件与目标组件必须在同一个应用总,两者可以在request范围内共享数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值