响应重定向和请求转发的区别,ajax请求是重定向还是转发

一次重定向的过程

我的代码里面已经写好了,redirectAndFoward.jsp页面上有一个表单,表单重定向到redirectAndFowardTarget.jsp,那么这一次的重定向过程为:

1、以指定方式(表单看method,直接URL发起就是GET)发一次请求到后台,后台处理重定向,返回一个302的HTTP状态码给客户端,并在response里面带一个Location用于标识重定向的地址

WEB之重定向和请求转发的区别

2、以Location的地址为目标地址,客户端再发起一次请求

WEB之重定向和请求转发的区别

一次请求转发的过程

以指定方式(表单看method,直接URL发起就是GET)发一次请求到后台,后台直接跳转到将要重定向的地址,如果成功则返回状态码200给客户端:

WEB之重定向和请求转发的区别

重定向和请求转发的区别

1、从上面的一次重定向和一次转发的过程来看,我们可以得出第一个差别点,就是重定向是两次请求,转发是一次请求,因此转发的速度要快于重定向

2、第二个差别点也很明显,重定向之后地址栏上的地址会发生变化,变化成第二次请求的地址,转发之后地址栏上的地址不会变化,还是第一次请求的地址

网上关于重定向和请求转发的区别的文章有很多,里面的区别点也有很多,但是总结起来无非就是这两点,再多的区别点也都是这两点的扩充,所以,重定向和请求转发的区别理解了这两点的差别就可以了。另外还有一点,不是重定向和请求转发之间的区别,但是值得注意,那就是重定向和请求转发之后的代码都会运行,直到方法结束或者遇到了return语句

重定向和请求转发URL参数的解读

我们知道在Java Web中,一个Servlet分别是这么写重定向和转发的代码的:

1、response.sendRedirect(“XXX”);

2、request.getRequestDispatcher(“XXX”).forward(request, response);

这个括号里面的参数也是有一定的规则的,我自己的总结如下:

1、重定向的时候,如果参数为”http://xxxxxxxxxx”,那么重定向到的是指定的重定向地址,无论该重定向地址是内部的还是外部的

2、如果参数不是”http://xxxxxxxxxx”的样子,而是一般的写法,那么都是Tomcat内部跳转(注意是Tomcat内部跳转而不是项目内部跳转),重定向和请求转发的时候有些区别:

(1)重定向,如果XXX以”/”开头,则表示目标地址为http://ip:port/XXX;如果不以”/”开头,则表示目标地值为http://ip:port/项目名/XXX

(2)请求转发,无论XXX是否以”/”开头,都跳转到http://ip:port/项目名/XXX

重定向和请求转发选择的个人建议

页面跳转建议使用重定向,有内部Servlet跳转建议使用转发。

选择重定向作为页面跳转的理由

1、转发请求地址不会变化,这就导致了开发者并不知道实际转发的目标页面是哪个,对于开发者来说这真的是一件糟糕的事,不知道转发的目标页面会在出错的时候给定位问题带来很大的麻烦

2、假如开发者在Servlet中做了耗时间的查询数据库操作,然后放到session里面去,让目标页面拿session显示给用户。此时如果使用转发,那么在刷新这个页面的时候,该Servlet会被再请求一遍,也就是说把查询数据库->设置session这个步骤再做一遍,而实际上这是毫无意义的。重定向则不会有问题,由于重定向之后的是一个.jsp页面,刷新页面无非是让页面重新加载一次罢了。

3、转发只能在站内跳转,重定向可以跳转到任意想要的地址—-只要这个地址存在,所以请求页面的时候转发相比重定向也有局限性

因此,虽然转发的速度比重定向快,但是从规避问题的角度而言,页面跳转使用重定向绝对是比转发更好的选择。

选择转发作为内部Servlet跳转的理由

如果代码逻辑是ServletA->ServletB->*.jsp,使用转发,那么这三次操作都在一次请求中,而如果使用重定向,那么客户端将发起三次请求,这真的毫无必要。因此,如果代码逻辑中含有内部的Servlet跳转,使用转发会使一个好的选择。

WEB之重定向和请求转发的区别

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com

(0)
上一篇 2023年 8月 3日 上午10:28
下一篇 2023年 8月 3日 上午10:37

相关推荐

  • 怎样查看微信撤回的消息

    有时候,你在给朋友发微信时,对方可能趁你不注意发了消息然后,撤回了。也不知道对方到底说了些什么? 比如,在找借钱的朋友要钱时,如下图; 我们不注意的时候,对方发来2条信息,可是都撤…

    2023年 9月 19日
  • 小米路由器怎么设置(小米wifi放大器怎么设置)

    小米路由器是一款非常好用的智能路由器,它不仅外观设计时尚,功能也十分强大,能够满足我们的各种网络需求。在使用小米路由器之前,我们需要进行一些必要的设置,才能让它更好地为我们服务。 …

    2023年 9月 2日
  • 在家也能拍出生日感大片

    生日蛋糕合影这么拍! 如何自己拍一组赞爆朋友圈的生日大片? ·首先穿一条漂亮到家的公主裙,再找一面绿布背景。要没条件的家里白墙应该都有吧?主要为了方便后期p图,我挑了几个姿势,亲测…

    2023年 6月 19日
  • photoshop常用基本知识

    Photoshop常用基本知识 1、Photoshop软件处理的图像是位图及矢量图 2、打开多个图像文件时,如果选择连续的多个文件,应Shift按键。 3、打开多个图像文件时,如果…

    互联网 2022年 12月 26日
  • NCBI怎么查一个基因的功能,ncbigene基因相关信息查询

    我们在进行基因相关研究的时候,如果要研究一个基因,那么首先要知道这个基因的一些基本信息,检索基因相关的网站还是很多的。其中比较出名的还是genecards。一个汇总的了很多数据库的…

    2022年 12月 20日
  • 关于不同区域的亚马逊账号!你知道多少呢英文

    静读君有时候会听到小伙伴遇到这样的问题:明明已经在Kindle上成功注册了,却无法正确访问中国区亚马逊的 Kindle 商店,在亚马逊后台也无法看到绑定的设备。 这是因为小伙伴对亚…

    2023年 3月 7日
  • 友谊的巨轮多久不聊天会消失(友谊的小船一天没聊天会消失吗)

    友谊的巨轮或许也是爱情的见证 在扣扣里有一个标识:“友谊的巨轮”。 当一个月后,我们拥有了这个标识,在名字的备注后好不惹眼。 标识消失,巨轮翻船 或许永远不会有标识消失的时候,除非…

    2023年 5月 13日
  • 三种excel函数应用,excel70个高频函数应用

    本期利用Excel如此强大的工具做一些稀奇古怪的事情。。◕ᴗ◕。以此说明几个Excel函数的应用。 一、相对微信,QQ比较复杂一些。现在貌似QQ的使用率下降了不少。QQ等级由用户的…

    2023年 6月 23日
  • 2016年度十大网络用语出炉(2017年十大网络用语)

    7月18日,教育部在北京发布了2016年中国语言文字事业发展状况,并发布了《中国语言文字事业发展报告(2017)》。 教育部语用司、语信司司长田立新向澎湃新闻(***)表示,截至2…

    互联网 2023年 3月 26日
  • 旧书插图100幅

    旧书中的精美插图,绘画精致细腻,给书增色不少, 令人过目难忘,历经数十年仍然魅力不减,这也是许多人喜欢旧书的原因,上世纪50年代到80年代出版的很多书籍都配有精美的插图,许多著名国…

    2023年 9月 27日