Java的重定向与请求转发

本文详细解析了重定向与请求转发在Web开发中的不同之处,包括行为主体、方法使用、作用范围、请求次数、对象共享及URL变化等方面,通过生动的例子帮助读者理解两者概念。

重定向与请求转发的区别:

1、请求转发是服务器行为;重定向是客户端行为。
2、请求转发是RequestDispatcher.forward()方法;重定向使用HttpServletResponse.sendRedirect()方法。
3、请求转发只能将请求转发给同一个web项目中的其他页面;重定向不仅可以重定向到当前项目的其他页面,还可以重定向到另一个站点上的页面。
4、请求转发是一次请求,;重定向是多次请求。 请求转发是同一个请求,由最后一个转发页面向浏览器响应页面; 重定向是前一个请求结束了,一个新的请求发出了。
5、请求转发的转发者与接收转发者之间共享相同的request对象和response对象,他们属于同一个访问请求和响应过程;重定向的调用者与被调用者使用各自的request对象和response对象,他们属于多个独立的访问请求和响应过程;
 6、请求转发URL地址不会变化;重定向地址栏URL会变化。

    1
    2
    3
    4
    5
    6

实现代码:

重定向到index.jsp页面:
response.sendRedirect(request.getContextPath()+"/index.jsp");

将请求转发到index.jsp文件:
request.getRequestDispatcher("/index.jsp").forward(request, response);

    1
    2
    3
    4
    5

举一个例子,理解请求转发和重定向。假设你去办理某个执照:

重定向:
你先去了A地,A地的人说:“这个事情不归我们管,去B地”,然后,就从A退了出来,自己乘车去了B地。

请求转发:
你先去了A地,A地看了以后,知道这个事情其实应该B地来管,但是他没有让你自己去B地,而是让你等
---------------------  
作者:沁子凡  
来源:优快云  
原文:https://blog.youkuaiyun.com/qq_40785225/article/details/82947679  
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值