JAVA高级开发 加入小组

28个成员 9个话题 创建时间:2020-02-09

转发和重定向的区别

发表于2020-02-25 1211次查看

区别是什么,什么时候用转发什么时候用重定向

9回复
  • 2楼 吕昕 2020-02-26

    转发发生在jsp中,由转发器发送到要转发到那个文件的jsp中,浏览器不知道发生的过程,而重定向是向浏览器的url中直接发送命令的语句指定跳转页面。

  • 3楼 b0302张爽 2020-02-27

    转发是一种服务器的行为,客户端只有一次请求,服务器端转发后会将请求对象保存,地址栏中的l地址不会改变,得到相应后服务器端再讲相应发给客户端,通常是携带数据的。

    重定向是一种客户端的行为,本质上有两次请求,前一次请求对象不会保存,但是地址栏的地址会发生改变。

  • 4楼 彭存钰 2020-02-27

    转发可以访问web-inf下资源,重定向不可以访问web-inf下资源

  • 5楼 b0310季恒羽 2020-02-27

    转发是servlet 发送到 jsp ,servlet只接收到一个请求。

    重定向是 servlet 接受一个请求后,本身的代码又想servlet发送一个请求,一共是两个请求。

  • 6楼 b0302付星贺 2020-02-27

    转发的地址栏不会发生变化,重定向的地址栏会发生新的改变,转发是一组请求响应,重定向是两组请求响应,所以感觉转发的速度应该比重定向快。

  • 7楼 于德龙 2020-02-27

    转发是JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。 重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。

  • 8楼 大龙 2020-02-28

    1,浏览器地址栏的变化 转发 地址栏不变化,重定向变

    2,请求次数,转发请求一次,重定向请求两次

    3,转发需要携带数据,重定向不需要携带数据

  • 9楼 b0310何东泽 2020-02-28

    重定向访问服务器两次,转发只访问服务器一次。

    重定向可以看见目标页面的URL,转发只能看见第一次访问的页面URL,以后的工作都是有服务器来做的。 

  • 10楼 王仲禹 2020-02-28

    重定向到某一个页面,sendRedirect()这个方法属于response的方法,当这个请求处理完之后,response.senRedirect()将立即返回客户端,然后客户端再重新发送一个请求,去访问xx.jsp页面。

    在response.sendRedirect(“xx.jsp”);里面是两个请求,两个响应,地址栏会发生改变。

     

    转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request,转发行为是浏览器只做了一次访问请求。当发送请求时,服务器会根据请求创建一个代表请求的request对象和一个代表响应的response对象。
    当response返回数据时,并不是直接提交到页面上,而是先存储在了response自己的缓存区,当整个请求结束的时候,服务器会将response缓存区中的内容全部取出,返回给页面。
     

    重定向可以跨域访问,而转发是在web服务器内部进行的,不能跨域访问。

发表回复
你还没有登录,请先 登录或 注册!
话题作者
JAVA高级讲师/企业级架构师