温馨提示

1、列表网提醒您:在交易前请仔细核实商家真实资质!如发现非法商家,欢迎广大网民举报,举报电话:4000-999-800。

2、该信息由列表网网友发布,其真实性及合法性由发布人负责,列表网仅引用以供用户参考,详情请阅读列表网免责条款。

3、在签订合同或相关协议之前,任何要求预付定金、汇款等方式均存在风险,谨防上当受骗!

详情描述

用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求 机制相互 请求,但是用户是感觉不到请求 的。根据 方式的不同,可以区分为直接请求 (Forward)和间接请求 (Redirect),那么这两种 方式有何区别呢?本文将由千锋Java培训老师跟大家分享一下。

一、从定义上看:

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器。浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址。

redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址。所以地址栏显示的是新的URL。所以redirect等于客户端向服务器端发出两次request,同时也接受两次response。

二、从原理上看:

Forward(直接 方式)用的更多一些,一般说的请求 指的就是直接 方式。Web应用程序大多会有一个控制器。由控制器来控制请求应该 给那个信息资源。然后由这些信息资源处理请求,处理完以后还可能 给另外的信息资源来返回给用户,这个过程就是经典的MVC模式。

Redirect(间接 方式),有时也叫重定向,它一般用于避免用户的非正常访问。例如:用户在没有登录的情况下访问后台资源,Servlet可以将该HTTP请求重定向到登录页面,让用户登录以后再访问。

三、从工作流程上看:

forword过程:客户浏览器发送请求web服务器接受此请求调用内部的一个方法在容器内部完成请求处理和 动作将目标资源 发送给客户。

redirect过程:客户浏览器发送请求web服务器接受后发送302状态码响应及对应新的location给客户浏览器客户浏览器发现 是302响应,则自动再发送一个新的请求,请求url是新的location地址服务器根据此请求寻找资源并发送给客户。

四、从运用的地方上看

般用于用户登录的时候,根据角色 到相应的模块;

redirect一般用于用户注销登录时返回主页面或者跳转到其他网站。

五、从效率上看:

forword效率高,而redirect效率低。

以上就是千锋Java培训机构讲师对Forward和Redirect的区别的总结介绍,欢迎大家一起交流补充!

学习java开发,可以参考千锋提供的java学习路线,该学习路线罗列了各阶段完整的java学习知识,根据千锋提供的java学习路线图,可以让你对学好java开发需要掌握的知识有个清晰的了解,并能快速入门java开发。

千锋教育:

千锋重庆校区:

重庆校区地址:重庆市高新区科园一路2号大西洋国际12-1


联系人:牟老师

面授课程:全栈Web开发+培训、全链路设计培训、PHP全栈+服务器集群培训、JavaEE+分布式开发培训、大数据+人工智能培训、 Unity游戏开发培训、Python培训、云计算+Python运维培训、全栈软件测试培训、Android培训、iOS培训、好程序员