响应重定向和请求转发的区别,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

相关推荐

  • 微信小程序必须是https请求方式吗

    我们在学习一个新东西时,往往会遇到这样那样的障碍,让人尝试它的兴趣减少,特别是个人用户(不像公司那样有各种资源),一些硬性的指标,我们不太好达到,就只能停留下来了。 就比如,你在开…

    2023年 9月 2日
  • 12306账号的找回方式你知道么

    由于长时间未使用12306账户 登陆密码忘记了 无法登陆原有账户进行购票 这可怎么办? 其实这个问题很好处理哦 当忘记12306账户密码时 可以使用铁路12306手机APP 在登录…

    2023年 4月 25日
  • steam可不可以用微信扫码支付

    今日,Steam国区正式加入微信支付方式,玩家可通过微信扫码直接购买游戏了。 在此之前,Steam国区一度有过支持支付宝结算的美好时光,只是这项服务几乎一直处于半瘫。 支付宝在表面…

    2023年 8月 2日
  • excel如何批量合并相同内容的单元格?

    在数据的处理和分析中,经常会遇到较多的重复字段,看上去比较复杂,可观性比较差,那如何才能将相同的内容批量合并到同一个单元格中呢?此方法肯定能帮助到你! 一、效果图 从上图中可以看出…

    2023年 4月 26日
  • 骁龙8超燃剪辑登场,骁龙8 工程样机

    7月13日晨,这是为您推送的科技消息 01 真我GT2大师探索版,骁龙8+芯片降价 真我GT2大师探索版新机发布,搭载骁龙8+处理器,首发LPDDR5x超低功耗内存,Pixelwo…

    2023年 2月 4日
  • 从哪里入手比特币(在哪儿入手比特币)

    提及比特币购买,我们首先要做的就是找一家专业的平台。国内欧易OKEx平台提供多种形式的比特币交易产品和工具,主要有法币交易、币币交易和合约交易等,可以一站式满足用户多元化交易需求。…

    2023年 8月 23日
  • 微信变声器男变女官方最新版,有什么免费微信变声软件吗

    哈喽,大家好,我是桃桃。 以后桃桃会经常给大家写一些有趣,好玩的事儿。没事记得来找我哦! 都是老马的产品,怎么这么好玩的功能,微信却没有呢,我也表示很无奈。 不过今天,桃桃给大家今…

    2022年 12月 27日
  • 手机文件夹相片在哪儿(手机备份图片文件在哪里找)

    本文以安卓系统手机为例,各大品牌的安卓手机雷同。 拿起你的手机数据线(充电线),把手机接入电脑的USB口,在手机上选择传输文件。 这时候你打开电脑就有一个下面这个类似的图,一般都是…

    2023年 7月 10日
  • h3c入门教学(h3cmini交换机配置教程)

    弱电学习圈VIP群已经建立,欢迎大家进群后讨论技术问题,设计方案,投标、施工,工程合作,产品对接等方面,都可以。其中VIP群里大部分人员都是工程商,施工分包商,设计院设计师,公司老…

    2023年 7月 26日
  • 大学生常见的金钱骗局,大学生诈骗案件的种类

    据了解,2022年暑假期间,家住湖北宜昌伍家岗区的小羽(化名)通过一个粉丝群获得一则信息,支付8.88元就能获得某明星的签名照。 为了支持自己喜爱的偶像,13岁的小羽通过手机扫码支…

    2023年 1月 29日