forward(转发)和redirect(重定向)的区别

8 篇文章 0 订阅
订阅专栏

也就是浏览器经过一次请求,但是在服务器中经历了多个servlet进行处理,地址栏的地址始终没有改变,始终是第一个servlet的地址,这就叫做联动操作处理请求。

 

       不同的servlet之间,除了可以继续传递之前的request对象,还可以继续进行数据的流动,但是这个流动要将需要增加的数据放在request对象中。

       也就是那些联动操作的servlet之间是共用request对象的,然后request对象中还可以继续放入需要传递或者保存的数据。

 

总结:request的作用域只在一次请求内,下一次再请求就没有了,又变成一个新的请求了。

请求转发的地址栏的地址不改变。

 

 

    其中表单数据也就是请求实体内容

关键在于重定向就相当于两次请求,一开始是一个地址,后来到了另一个地址,因此里面有两个request对象

 

Servlet的转发与重定向:

       转发和重定向都能让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有着很大的区别。

1、转发:有两种方式获得转发对象(RequestDispatcher):一种是通过HttpServletRequest的getRequestDispatcher()方法获得,一种是通过ServletContext的getRequestDispatcher()方法获得;

     以前的request范围中存放的变量不会失效,就像把两个页面拼到了一起。 例如:

request.getRequestDispatcher (“demo.jsp"). forward(request, response);//转发到demo.jsp

     详解:假设浏览器访问servlet1,而servlet1想让servlet2为客户端服务。此时servlet1调用forward()方法,将请求转发给servlet2。但是调用forward()方法,对于浏览器来说是透明的,浏览器并不知道为其服务的Servlet已经换成Servlet2,它只知道发出了一个请求,获得了一个响应。浏览器URL的地址栏不变。

 

2、重定向:HttpServletResponse的sendRedirect()方法。

     服务器根据此请求寻找资源并发送给客户,它可以重定向到任意URL,不能共享request范围内的数据。例如:response.sendRedirect(“demo.jsp");//重定向到demo.jsp

     详解:假设浏览器访问servlet1,而servlet1想让servlet2为客户端服务。此时servlet1调用sendRedirect()方法,将客户端的请求重新定向到Servlet2。接着浏览器访问servlet2,servlet2对客户端请求作出反应。浏览器URL的地址栏改变。

 

3、主要区别:

(1)sendRedirect()方法不但可以在位于同一个主机上的不同Web应用程序之间进行重定向,而且可以将客户端重定向到其他服务器上的Web应用程序资源。而forward()方法只能将请求转发给同一Web应用的组件。

(2)sendRedirect()方法不能转发到“/WEB-INF/”路径下的jsp页面资源,而getRequestDispatcher().forword()可以重定向到“/WEB-INF/”路径下的jsp页面资源。如 request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);

(3)转发:浏览器URL的地址栏不变。

        重定向:浏览器URL的地址栏改变

 

更具体来说就是这样的:

redirect 会首先发一个response给浏览器, 然后浏览器收到这个response后再发一个request给服务器, 然后服务器发新的response给浏览器. 这时页面收到的request是一个新从浏览器发来的.

forward 发生在服务器内部, 在浏览器完全不知情的情况下发给了浏览器另外一个页面的response. 这时页面收到的request不是从浏览器直接发来了,可能己经用request.setAttribute在request里放了数据.在转到的页面可直接用request.getAttribute获得数据。

二:转发与重定向的区别

(1).重定向的执行过程:Web服务器向浏览器发送一个http响应--》浏览器接受此响应后再发送一个新的http请求到服务器--》服务器根据此请求寻找资源并发送给浏览器。它可以重定向到任意URL,不能共享request范围内的数据。

(2).重定向是在客户端发挥作用,通过新的地址实现页面转向。

(3).重定向是通过浏览器重新请求地址,在地址栏中可以显示转向后的地址。

(4).转发过程:Web服务器调用内部方法在容器内部完成请求和转发动作--》将目标资源发送给浏览器,它只能在同一个Web应用中使用,可以共享request范围内的数据。

(5).转发是在服务器端发挥作用,通过forward()方法将提交信息在多个页面间进行传递。

(6).转发是在服务器内部控制权的转移,客户端浏览器的地址栏不会显示出转向后的地址。

 

转发(Forward)和重定向(Redirect)的区别
heima201907的博客
02-11 256
转发是服务器行为,重定向是客户端行为。转发Forward)通过RequestDispatcher对象的forward(HttpServletRequest request,HttpServletResponse response)方法实现的。RequestDispatcher可以通过HttpServletRequest 的getRequestDispatcher()方法获得。例如下面的代码就是跳...
请求转发和响应重定向区别
qq_45947664的博客
09-27 2462
请求转发:request.getRequestDispatcher(URL地址).forward(request, response) 重定向:response.sendRedirect(URL地址) 一、处理流程不同 请求转发:客户端发送一次请求,Servlet做出业务逻辑处理并调用forword()方法,把目标资源返回给客户端浏览器。 响应重定向: 客户端可能发送请求,Servlet做出业务逻辑处理,调用response.sendReadirect()方法,把要访问的目标资源作为respons
forwardsendRedirect区别
热门推荐
学习亦游戏
07-17 2万+
SendRedirect Forward 不同的request 不同的对象,但是可以渠道上一个页面的内容 send后面的语句会继续执行,除非return Forward后面的语句不会继续发送给客户端 速度慢 速度快 需要到客户端的往返,可以跳转到任何页面 服务器内部转换 地址栏有变化 地址栏没有变化 可以传参数,直接写
linux的redir命令实现端口转发
最新发布
西京刀客
09-18 976
redir命令是一个有用的工具,可以在Linux系统上进行网络流量的重定向。使用Redir命令,您可以轻松地将TCP、UDP和ICMP流量从一个端口或IP地址重定向到另一个端口或IP地址。
JAVA常见面试题之ForwardRedirect区别
weixin_33908217的博客
05-20 260
  用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用户是感觉不到请求转发的。根据转发方式的不同,可以区分为直接请求转发(Forward)和间接请求转发(Redirect),那么这两种转发方式有何区别呢?本篇在回答该问题的同时全面的讲解两种请求转发方式的原理和区别。 【出现频率】  【关键考点】 请求转发...
转发forward()和重定向redirect()有什么区别
Jayphone17的博客
12-17 511
1.转发是在服务器端完成的;重定向是在客户端完成的。 2.转发的速度快;重定向速度慢。 3.转发是同一次请求;重定向是两次不同请求。 4.转发不会执行转发后的代码;重定向会执行重定向之后的代码。 5.forward将当前request和response对象保存,交给指定的url处理。并没有表示页面的跳转,所以地址栏不会有变化。而redirect重定向包含两次浏览器请...
forward转发redirect重定向区别.zip
01-24
在Web开发中,"转发"(Forward)和"重定向"(Redirect)是两种常见的请求处理方式,它们在实现客户端和服务器之间的交互时起到至关重要的作用。了解它们的区别对于优化用户体验和提高应用性能至关重要。 首先,让...
转发(forward)和重定向(redirect)的区别
weixin_44589334的博客
06-24 396
Forward转发): 是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,因为这个跳转过程实在服务器实现的,并不是在客户端实现的所以客户端并不知道这个跳转动作,所以它的地址栏还是原来的地址; Redirect重定向): 是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址...
请求转发Forward)和重定向Redirect)的区别
qq_66664846的博客
02-06 614
forward转发):是服务器请求资源,服务器直接访问目标地址的URL,把URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,因为这个跳转过程实在服务器实现的,并不是在客户端实现的所以客户端并不知道这个跳转动作,所以它的地址栏还是原来的地址. redirect重定向):是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL. 转发是服务器行为,重定向是客户端行为。 区别:1. 从地址栏显示来说forward是服务器
简单谈谈SpringMVC转发重定向区别
08-30
SpringMVC 转发重定向区别 SpringMVC 框架中,转发重定向是两个常用的请求跳转方式,但它们之间有着本质的区别。本文将详细讲解 SpringMVC 中的转发重定向区别,并给出实践示例。 一、转发Forward) ...
转发Forward重定向sendRedirect区别
weixin_37327955的博客
09-19 1960
重定向(Redirect):通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。(百度百科) forward:用于将请求转发给一个HTML文件,JSP文件,或者是一个程序段。这里的转发是指:之前的request不变,而继续由转发后的文件或程序处理。(百度百科) 总结: 转发在服务器端完成的;重定向是在客户端完成的 转...
重定向(forwardsendRedirect)区别
zhouysh的专栏
05-25 2万+
quote from: http://kevinmro.blogchina.com/重定向(forwardsendRedirect)区别 最近有网友和我谈起他上次面试被别人问forwardsendRedirect没理解太清楚,搞得比较尴尬。现将自己对这个问题的体会写在下面。期望能对一些人有帮助。1.RequestDispatcher.forward()    是在服务器端起作用,当使用forw
转发forward)和重定向redirect)的区别
yxyy_yyqx的博客
04-07 399
转发重定向有很大的区别,它们的区别如下:request.getRequestDispatcher().forward() 方法只能将请求转发给同一个WEB应用组件;而response.sendRedirect()方法还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。如果传递给response.sendRedirect()方法的相对URL以“/”开头...
Forward转发)和Redirect重定向)的区别
金科APP社团_卞慧君
09-15 646
一:间接请求转发(Redirect) 二:直接请求转发(Forward)   用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用户是感觉不到请求转发的。根据转发方式的不同,可以区分为直接请求转发(Forward)和间接请求转发(Redirect),那么这两种转发方式有何区别呢?本篇在回答该问题的同时全面的讲解两
转发forward)和重定向redirect)的区别
qq_42306104的博客
01-03 1318
答:重定向会改变URL地址,请求转发不会 重定向可以用URL绝对路径访问其他web服务器的资源,而请求转发只能在一个web应用程序内进行资源转发 重定向效率低,相当于再一次请求,请求转发跳转仅发生在服务器端。 ...
请求转发(forword)与重定向sendredirect)的区别
yuting0787的博客
03-22 677
1. 跳转方式 http://localhost:8080/Test应用 运用forward方法只能重定向到同一个Web应用程序中的一个资源。而sendRedirect方法可以让你重定向到任何URL。 表单form的action= "/uu ";sendRedirect( "/uu ");表示相对于服务器根路径。如http://localhost:8080/Test应用(则提交至http://
redirect重定向forward请求转发有何区别
05-29
在Spring MVC中,redirect重定向forward请求转发都是用于实现服务器端跳转的方式,但它们有以下几个区别: 1. 执行顺序不同:在执行重定向时,浏览器会收到来自服务器的一个HTTP响应,然后根据响应的重定向地址...
写文章

热门文章

  • Jar包修改并重新打包(完整版攻略) 54687
  • 真正例、假正例、真负例、假负例、精确度、召回率快速理解 16712
  • 上采样与下采样 12255
  • javaweb学习路线 8753
  • caffe深度学习框架入门 7881

分类专栏

  • 科研学习 4篇
  • 各种快捷键和实用技巧 9篇
  • 深度学习 2篇
  • Git和Github学习 4篇
  • 机器学习 7篇
  • java学习 8篇
  • python学习 16篇
  • 吴恩达机器学习课程学习
  • 其它综合 2篇
  • 爬虫学习
  • 数据挖掘
  • 算法学习 9篇
  • 数字图像处理 1篇
  • 英语学习
  • 计算机学习规划 1篇
  • 推荐系统学习 2篇
  • 前端学习 1篇
  • C或C++ 14篇
  • javaweb学习 11篇

最新评论

  • 真正例、假正例、真负例、假负例、精确度、召回率快速理解

    啊蕾蕾: 感谢,终于弄懂了这些概念

  • javaweb学习路线

    ꧁寂寞与永恒꧂: 这文章原创是知乎某博主的回答

  • 真正例、假正例、真负例、假负例、精确度、召回率快速理解

    听雨347: 怎样算得TP、FN、FT 及 TN呢,大佬

  • servlet中的service()方法,get和post方式

    BUG马: 详细,就是没人点赞😂

  • javaweb学习路线

    Coder-chen:

最新文章

  • word文章中参考文献编号统一更新方法
  • 在CLion的一个工程中如何创建并运行多个cpp文件
  • CLion 控制台输出中文乱码的解决方法
2023年4篇
2022年6篇
2021年9篇
2020年48篇
2019年1篇
2018年9篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家玻璃钢雕塑卡通动物成都玻璃钢雕塑加工视频卫滨玻璃钢雕塑设计玻璃钢红军雕塑原理东营玻璃钢仿真水果雕塑价格玻璃钢雕塑产品生产许可证漯河玻璃钢坐凳雕塑定做扬州玻璃钢雕塑人物设计玻璃钢老虎雕塑厂家武汉个性化玻璃钢雕塑定做价格白银玻璃钢动物雕塑价格凉山玻璃钢花盆花器鹤壁玻璃钢卡通雕塑定制岳阳湖南玻璃钢雕塑厂家哪家好北京盛方玻璃钢雕塑沁阳商场美陈植物墙黄石玻璃钢雕塑驻马店玻璃钢雕塑制作价格上海动物玻璃钢雕塑生产厂家呈贡玻璃钢雕塑产品厂家多少钱四川商场美陈研发自发光动物玻璃钢雕塑制作宁波做玻璃钢雕塑衢州多彩玻璃钢雕塑来宾玻璃钢雕塑价格深圳室内商场美陈供货商东莞玻璃钢读书人物雕塑定制云浮楼盘玻璃钢人物雕塑靖宇玻璃钢雕塑厂家辽源玻璃钢雕塑设计香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化