forward与redirect的区别(SpringMVC )

Veritas NetBackup 10.1 Windows安装指南:从账户配置到完整部署 本文详细介绍了Veritas NetBackup 10.1在Windows系统上的完整安装流程,从账户配置到部署验证。重点讲解了创建专用服务账户、安装组件选择、许可证输入等关键步骤,并提供了常见问题排查和进阶配置建议,帮助用户顺利完成企业级备份解决方案的部署。 阅读详情

参考博客地址:

https://www.cnblogs.com/lexiaofei/p/7044429.html?utm_source=itdadao&utm_medium=referral

参考博客地址: 

https://blog.youkuaiyun.com/senmon2004/article/details/654049


下面是关于forward和redirect方式的区别(SpringMVC中):

1  forward

 forward方式相当于request.getRequestDispatcher().forward(request,response)。 

 外部特征:浏览器地址显示的路径是转发前的路径。 


工作方式是这样: 

forward 发生在服务器内部,在前一个控制器处理完毕后,直接进入下一个控制器处理, 并将最后的response发给浏览器. 


这种方式的特点: 

A.转发前后是同一个request,后一个控制器可共享前一个控制器的参数与属性; 

B.因为是同一个request,拦截器只会拦截前一个url,如果前一个url在映射时未配置到拦截器拦截,则拦截后一个

   url,即只拦截一次; 

C.最后返回到浏览器后,因为地址栏显示的是转发前的url,所以刷新页面时会依次执行前后两个控制器.


2 redirect


redirect方式相当于”response.sendRedirect()”,就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址

外部特征:浏览器地址显示的路径是转发后的路径。 


工作方式是这样的: 

redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址(服务器端会首先发一个response给浏览器, 然后浏览器收到这个response后再发一个requeset给服务器),然后服务器发新的response给浏览器. 这时页面收到的request对象是重新从浏览器发来的,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取


这种方式的特点: 

A.在转发前后有两个不同的request对象,转发前后的两个控制器在request上的参数(request.getParameter())

   和 request属性(request.getAttribute())不能共享; 

B.如果转发前后的两个控制器都配置在spring 拦截器范围内,这样拦截器会拦截前后两个request,即会拦截两次; 

C.最后返回到浏览器后,因为地址栏显示的是转发后的url,所以刷新页面时只会执行后面的url映射的控制器. 


  • 举例如下:

a页面-------->b页面(-->代表两种方法的一种)

a 页 面里有一个 动 作: request.setAttribute("temp",object);
 
Response.forward()---->用 这 个方法到达 b,可以在b里通 过 request.getAttribute("temp")得到存 储 的 object 对 象, 这 个方法 扩 大了 request里保存的 值 的作用范 围 ;
Response.redirect()---->用 这 个方法到达 b,object 对 象将 丢 失。
 
如果想到达b 页 面(无 论 是哪个方法)而有想得到 object 对 象, 则 最好将 object 对 象保存在 request.getSession()里,也就是Session 对 象 里


3. forward和redirect的区别

forward仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;

redirect则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。

所以,forward更加高效,在forward可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。

在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。


4. 小提示

  •  如果逻辑视图名为 hello,框架通过 forward 的方式转发到了 /WEB-INF/jsp/hello.jsp。
  • 如果逻辑视图名是 /hello,框架还是转发到了 /WEB-INF/jsp/hello.jsp,即 /WEB-INF/jsp//hello.jsp 等同于 /WEB-INF/jsp/hello.jsp。  
【QGIS、OSM】利用python开源工具实现指定区域的交通分配 如果从osmgnms和grid2demand得到的node.csv,我们要修改path4gnms代码中的utils.py的四处设置。利用QGIS实现可视化,得到的link_performance.csv,参数有volume和VOC。改完这四处代码,就可以运行path4gnms中的tutorial.ipynb了。 阅读详情

相关推荐

使用moveit中的报错及解决

1.fatal error: moveit/move_group_interface/move_group.h: 没有那个文件或目录。// #include <moveit/move_group_interface/move_group.h> 改为。问题1 moveit/move_group_interface/move_group.h: 没有那个文件或目录。在运行c++程序时报错。

qq_60566155的博客 2286

SpringMVC中redirect与forward的区别

此文大部分是自己的观点,如果有误请大家多多指导,提出问题。 转发 1.forward转发:可以传输数据 2.使用于一个模块与另一个模块的转换 3.只是与服务器交互一次 重定向 1.redirect不能传输数据:如果使用重定向传输Mode中的数据到另一个视图模块,该数据会以get的形式出现在地址栏 2.适用于账号退出,以及网页的跳转 3.与服务器交互两次 4.效率比forward低 https://blog.youkuaiyun.com/weixin_37766296/article/details/803751

XiaoCoder的博客 873

北京绿盟科技安服实习生面经

记一次绿盟校招技术面经历,人生第一次面试,该说不说还是很紧张的,以下是技术面的一些问题,欢迎各位大佬在评论区补充纠正对于面试的问题,都应该自己下来深度去拓展学习,面试官问的问题刚好可以检测我们自己对某个模块的学习情况,借此更好的进行总结和学习。

qq_51690690的博客 3237

【SpringMVC】比较转发Forward与重定向Redirect的区别

当在web.xml中配置了Thymeleaf解析器时,在Controller内返回会自动生成,找到html资源并通过Thymeleaf解析器将html资源渲染出来。

weixin_45873353的博客 261

AI在生物学领域的应用:基因序列分析和人工智能生物学

好的,非常感谢您提供的这个精彩的主题和详细的要求。我会全力以赴,遵循您的要求写一篇内容丰富、结构清晰、论述深入的专业技术文章。现在,就让我们开始这篇关于"AI在生物学领域的应用:基因序列分析和人工智能生物学"的博客文章吧! 1. 背景介绍 1.1 生物信息学的兴起

AI天才研究院 1415

Autosar配置——导入DBC后配置SecOC同步报文和同步请求报文

在Autosar中,安全性是一个重要的考虑因素,而SecOC(Secure On-Board Communication)是一种用于保护通信数据完整性和安全性的安全机制。在上述示例中,我们配置了同步报文和同步请求报文的属性。接下来,我们需要在Autosar中配置同步报文和同步请求报文。同步报文用于在通信双方之间同步SecOC状态,而同步请求报文用于请求SecOC的状态信息。通过以上配置,我们成功地导入了DBC文件,并在Autosar系统中配置了SecOC同步报文和同步请求报文。希望以上信息对您有所帮助!

CyberSphinx的博客 649

说说 Spring MVC 中 forward 与 redirect 之间的区别

forward(转发) 与 redirect(重定向) 是 servlet 提供的两种跳转方式。这两种跳转方式的具体区别如下表所述: forward redirect 地址栏 forword是服务器内部的重定向,即服务器直接访问目标地址的 url,并把其中的内容作为响应结果返回给浏览器,所以浏览器的地址栏不会发生变化。 服务器发送给浏览器一个 302 状态码,让其请求新的地址,所以地址栏中的地址会显示为新的地址。 共享数据 由于在服务器内部重定向的过程中,用的是同一个request,因

读万卷书,行万里路 808

2025B卷最新华为OD机试持续收录中 - 真题题库清单,按考点划分(Python / JS / C++ / JAVA / C语言)

2025B卷最新华为OD机试持续收录中 - 真题题库清单,按考点划分(Python / JS / C++ / JAVA / C语言)

算法大师! 3058

SpringMVC——核心技术:重定向(redirect:)、请求转发(forward:)

SpringMVC——核心技术:重定向(redirect:)、请求转发(forward:)

贝尔摩德苦艾酒 1万+

大津法(OTSU)点云强度信息分割

大津法(OTSU)是一种灰度图像自适应的阈值分割方法,大津法根据图像的灰度分布,将图像分成背景和前景两部分,前景就是需要按照阈值分割出来的部分。由于点云的强度信息的特性,也可以利用此方法进行分类,但需要保证信息干扰较少,例如道路标线分割等场景较为适用。

qq_48694523的博客 966

PyTorch深度学习实战(3)——使用PyTorch构建神经网络

PyTorch 是一个用于构建深度神经网络的库,具有灵活性和可扩展性,可以轻松自定义模型。在本节中,我们将使用 PyTorch 库构建神经网络,利用张量对象操作和梯度值计算更新网络权重,并利用 Sequential 类简化网络构建过程,最后还介绍了如何使用 save、load 方法保存和加载模型,以节省模型训练时间。

盼小辉丶的博客 8万+

SpringMVC中的请求转发和重定向区别以及举例说明

重定向需要创建两个请求对象和两个响应对象,因为是两个不同的请求对象,所以重定向是不共享Request域的,请求转发(forward)是服务器请求资源,服务器直接访问目标地址的url,把响应的内容读取过来,再发送给浏览器,这个跳转时由服务器实现的,而不是在客户端实现的,所以客户端实际上并不知道这个跳转,地址栏显示的还是之前的URL,2、资源使用范围不一样,请求转发是同一服务器中的资源,而重定向是任意服务器资源,所以请求转发也就更加的效率,但是仅能在服务器内访问,而重定向由于仅返回一个地址,所以可以跨域访问。

桂林电子科技大学 -芳 658

C#从入门到精通(35)—如何防止winform程序因为误操作被关闭

我们在开发的上位机软件运行起来以后,一般在右上角都有一个关闭按钮,正常情况下点击关闭按钮就能关闭软件,但是不排除我们不想关闭软件,但是因为不小心把鼠标点到了关闭按钮,如果这是一个正在生产的机器,突然关闭软件可能会导致产品损坏,那么我们如何去解决这个误操作的问题呢,本文就来讲解解决方案!

qq_34059233的博客 679

SpringMVC中redirect和forward的区别是什么?

redirect和forward: redirect方式相当于“response.sendRedirect()”,转发后浏览器的地址栏变为重定向后的地址,不共享之前请求的数据。 forward方式相当于“request.getRequestDispatcher().forward(request,response)”,转发后浏览器地址栏还是原来的地址,共享之前请求中的数据。 redirect...

Hard_farmer的博客 1098

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

springMVC中的redirect和forward区别?

1.forward在跳转后可以取到message值,redirect在跳转后无法取到message值。 2.forward跳转后地址栏URL不会改变,而redirect会改变。 转载于:https://www.cnblogs.com/itxinke/p/7282606.html...

diaoxiyao7077的博客 184

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

3--springMVC中redirect重定向和forward转发的区别---一些简单的问题的解决

3--springMVC中redirect重定向和forward转发的区别---一些简单的问题的解决

qq_38472465的博客 126

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

redirect forward区别 转发和重定向的区别 在springmvc 中的应用

1.从地址栏显示来说 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址. redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL. 2.从数据共享来说 forward:转发页面和转发到的页面可以

497

SpringMVC-forward和redirect

1.redirect和forward * 在springmvc中 return中使用了关键字 redirect和forward时,不会走视图解析器去拼接路径了。 * 重定向时不能直接访问web-inf下的页面,只能通过controller来访问 return "redirect:/success.jsp"; return "forward:../success.html";

zcm_79328818的专栏 345

Redirect(重定向)和forward(请求转发)的区别。(springmvc)

Redirect(重定向) Contrller方法返回结果重定向到一个url地址,如下方式: return "redirect:https://www.baidu.com/"; redirect方式相当于“response.sendRedirect()”,转发后浏览器的地址栏变为转发后的地址,因为转发即执行了一个新的request和response。 由于新发起一个request原来的参数在转发时就不能传递到下一个url,如果要传参数可以url后边加参数。 forward(请求转发) controller

敏翰空的博客 682

#SpringMVC:转发、重定向(关键字方式) #forward、redirect关键字 @FDDLC

示例: 关于在SpringMVC中使用forward、redirect关键字的说明: 1、这两种方式都不经过视图解析器,因此需要自己加前后缀。 2、【SpringMVC中使用关键字的重定向】和【传统的重定向】(即使用servlet-api的方式)有些区别:传统的重定向要加contextPath,比如response.sendRedirect(request.getContextPath() + "/new.jsp");而关键字的方式不需要! 3、浏览器发出第一次请求后: 如果该请求被...

LiuXingchang的博客 2223

springmvc中controller内方法跳转forward?redirect?

使用springmvc的controller的时候,碰到controller内方法的跳转的问题,记录下问题以及自己测试的过程。 场景: 业务执行更新操作之后返回列表页面,列表页面需默认展示查询的列表数据,涉及到两个controller的跳转。 问题 ...

WGH100817的博客 143

spring mvc redirect/forward 表单重复提交

最近一直在用spring mvc,关于redirect forward和提交方面不是很通,整理一下。 spring mvc最后return 一个字符串,一般来说是webcontent 下面的一个页面路径,比如: return "/WEB-INF/view/login.jsp"; 上面这句就是说处理完一个请求之后,显示login.jsp这个页面,并且用request等一堆对象里面的数据

u010900754的专栏 2609

深入理解springmvc中controller内方法跳转forward与redirect

使用springmvc的controller的时候,碰到controller内方法的跳转的问题,记录下问题以及自己测试的过程。 场景: 业务执行更新操作之后返回列表页面,列表页面需默认展示查询的列表数据,涉及到两个controller的跳转。 问题 是使用forward还是redirect跳转 解决问题 其实使用forward或者redirect都能达到目的,但是有些问题在...

weixin_35381618的博客 1185

Forward & Redirect & Request getParameter/getAttribute 理解

上次为了防止当浏览器回退刷新时的重复提交而使用PRG(Post-Redirect-Get),但是重定向Redirect存在一个特点,比如Controller中使用ModelMap实例添加一个属性errorMsg,然后重定向到一个页面fail.jsp,浏览器在重定向的页面fail.jsp中通过request.getAttribute("errorMsg")返回的是null,因为redirect的两个

lgpjxjjxmumail的专栏 1665

在SpringMVC中使用forward和redirect

项目场景: 在使用SpringMVC开发时,我想使用JavaWeb的方式传递数据(形如如下代码): request.getRequestDispatcher().forward(request,response) response.sendRedirect() 发现SpringMVC通过视图解析器帮我们自动做了这一步,只需要在return语句中返回字符串形式就可以实现forward和redirect操作了。但是这个return语句应该怎么填才能被SpringMVC正确识别呢? 原因分析: First of

大吉的博客 2275

spring controller中默认转发、forward转发、redirect转发之间的区别

默认转发 @RequestMapping("/123") public String test(HttpSession session) { System.out.println("123"); return "456"; } 服务器在得到/123的请求后调用test方法,输出123然后寻找456.jsp(这里已经配置了视图,全路径为/WEB-INF/j...

weixin_30641465的博客 618
上一篇: jsp 页面 找不到 js 中的函数
下一篇: 静态资源访问 :SpringMVC (mvc:resources)
arashidemember
博客等级 码龄12年 0粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值