揭露forward和redirect的本质(区别)

来源:互联网 发布:rfid 室内定位算法 编辑:程序博客网 时间:2024/05/16 13:53

前言

forward和redirect,一个转发,一个重定向,我们再熟悉不过了。回忆大二学习JSP,servlet的时候很多书中和网上的都有很多关于两者区别的介绍,大多数都是那几点,包括Struts2里的Action,SpringMVC里,几乎概念和原理都是一样的。今天处理一些问题的过程中,又让我想起来了它们2个及其区别,确实是,当时无论在大三还是准备面试时的大四,都经常特意的记忆和回忆一下它们的区别。现在的我,再一想,呵呵,与其“死记硬背”,不如我们就从本质上揭露它们一下,理解它们,然后再想想它们的区别,就会迎刃而解,在此呢,抛砖引玉,并把笔记本上记的东西搬到博客里,作为永久的参考记录,并与大家分享!

 

forward过程

转发,服务器端行为。web服务器把接受的请求,调用内部的方法在容器内部完成请求处理和转发动作,然后响应客户端,在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。

redirect过程

重定向,客户端行为。客户端发送http请求,web服务器接受后发送3**状态码响应及对应新的location给客客户端,客户端发现是3**响应,则自动再发送一个新的http请求,请求url是新的location地址,在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。重定向行为是浏览器做了至少两次的访问请求的。

通俗的比喻

forward:你先去A局办事,A局看了以后,知道这个事情其实应该B局来管,但是他没有把你退回来,而是让你坐一会儿,自己到后面办公室联系了B的人,让他们办好后,送了过来。

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

当然,这个比喻也不是很准确,理解表达的意思就行。

进而带来的区别

forward方式客户端肯定不知道啊,所以地址栏不变,中间过程加上其他参数地址栏也看不到,转发的url肯定不能是外部的,直接在服务器端内部的周转,所以request的参数能在新的方法里获取到,所以效率也比较高一些。redirect方式就与其相反了!

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 住房公积金贷款额度 沧州住房公积金查询 个人住房公积金查询入口 银行住房贷款利率计算器 合肥市住房公积金管理中心 山东省住房和城乡建设厅 2019商业住房贷款利率 住房和城乡建设部 长春住房公积金 四川省住房城乡建设厅首页 新乡市住房公积金管理中心 住房贷款利率计算器 邵阳市住房公积金管理中心 邵阳住房公积金 商业住房贷款利率 陕西省住房公积金管理中心 合肥住房公积金管理中心 长春市住房公积金 山东省住房城乡建设厅 2019各银行住房商贷利率一览表 住房公积金查询入口 陕西省住房和城乡建设厅网 沧州住房公积金个人查询入口 包头市住房公积金管理中心 佛山住房公积金中心 个人住房商业性贷款 住房公积金装修贷款能贷多少 邵阳住房公积金管理中心 工资4000住房公积金一般交多少 西安住房保障管理局网站 佛山住房公积金 住房城乡建设部 河南省住房和城乡建设厅网 北京住房公积金 广州住房公积金管理中心 西安住房公积金 成都住房公积金管理中心 宜春住房公积金 安徽省住房和城乡建设厅 四川城乡住房建设厅 陕西省住房公积金中心