西安列举网 > 教育培训 > 电脑/网络 > 西安Java开发中Forward和Redirect
西安
[切换城市]

西安Java开发中Forward和Redirect

更新时间:2019-08-27 10:54:55 浏览次数:46次
区域: 西安 > 西安周边
类别:SEO培训
地址:周边地区
西安Java开发中Forward和Redirect的区别
  用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用户是感觉不到请求转发的。根据转发方式的不同,可以区分为直接请求转发(Forward)和间接请求转发(Redirect),那么这两种转发方式有何区别呢?
  一、从定义上看:
  forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器。浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址。
  ? redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址。所以地址栏显示的是新的URL。所以redirect等于客户端向服务器端发出两次request,同时也接受两次response。
  二、从原理上看:
  Forward(直接转发方式)用的更多一些,一般说的请求转发指的就是直接转发方式。Web应用程序大多会有一个控制器。由控制器来控制请求应该转发给那个信息资源。然后由这些信息资源处理请求,处理完以后还可能转发给另外的信息资源来返回给用户,这个过程就是经典的MVC模式。
  Redirect(间接转发方式),有时也叫重定向,它一般用于避免用户的非正常访问。例如:用户在没有登录的情况下访问后台资源,Servlet可以将该HTTP请求重定向到登录页面,让用户登录以后再访问。
  三、从工作流程上看:
  forword过程:客户浏览器发送http请求--->web服务器接受此请求--->调用内部的一个方法在容器内部完成请求处理和转发动作--->将目标资源 发送给客户。
  ?redirect过程:客户浏览器发送http请求--->web服务器接受后发送302状态码响应及对应新的location给客户浏览器--->客户浏览器发现 是302响应,则自动再发送一个新的http请求,请求url是新的location地址--->服务器根据此请求寻找资源并发送给客户。
  四、从运用的地方上看
  forword?一般用于用户登录的时候,根据角色转发到相应的模块;
  ?redirect一般用于用户注销登录时返回主页面或者跳转到其他网站。
  五、从效率上看:
  forword效率高,而redirect效率低。
  以上就是专业人士对Forward和Redirect的区别的总结介绍,欢迎大家一起交流补充!
千锋教育:http://www.mobile***/
千锋西安校区:http://xa.mobile***/
西安校区地址:西安市雁塔区高新六路52号立人科技C座西区4楼
培训咨询专线:029-85363390
咨 询 Q Q : 1976279437   联 系 人   :任老师
面授课程:全栈WEB+培训、全链路设计培训、PHP全栈+服务器集群培训、JavaEE+分布式开发培训、大数据+人工智能培训、 Unity游戏开发培训、Python培训、云计算+Python运维培训、全栈软件测试培训、Android培训、iOS培训
西安电脑/网络相关信息
9月3日
2023-10-19
2023-09-08
2023-08-29
注册时间:2017年01月05日
UID:349452
---------- 认证信息 ----------
手机已认证
查看用户主页