JSP中forward和redirect有什么区别?什么时候必须用哪个

如题所述

forward和redirect都是请求自动转向的方式,流程如图示:
forward:浏览器(我有问题)-->服务器ServletA(不会,我要问B)-->服务器ServletB(是这样的)-->服务器ServletA(是这样的)-->浏览器(噢,我明白了)
redirect:浏览器(我有问题)-->服务器ServletA(不会,去问B)-->浏览器(我有问题)-->服务器ServletB(是这样的)-->浏览器(噢,我明白了)
所以redirect过程发生了两次请求,而forward只有一次;地址栏forward是转向前(ServletA)的地址,redirect是转向后(ServletB)的地址;forward时浏览器发送的数据ServletB可以拿到(A交给B的),redirect时浏览器发送的数据ServletB拿不到(只给了A)。
一个操作结束想转向的另一个操作,forward和redirect都可以用(建议用redirect);而如果需要转向后传递数据,只能用forward。
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-11-24

    forward是请求转发的意思,地址栏的地址不会发生改变,可以传递参数

    redirect是重定向的意思,地址栏的地址会发生改变,不能带参数

第2个回答  2016-08-06
最主要的区别是
forward在浏览器地址看不出url有变化,还是原url
redirect在浏览器地址栏能看到目标url
第3个回答  2016-08-09
forward是转发,可以带着请求里的参数,转发后浏览器地址不会改变。
redirect反之

JSP中forward和redirect有什么区别?什么时候必须用哪个
JSP中forward和redirect的区别:1、forward仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址,他是不会改变Request的值,如果你需要在下一个页面中能从中获取新的信息的话,你可以Request.setAttribute()来放置一些标志,这样从下一个页面中获取;后者则是完全的跳转,浏览器将会得...

JSP中forward和redirect有什么区别?什么时候必须用哪个
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.2.从数据共享来说 forward:转发页面和转发到的页面可以共享request里面的数据.redirect:不能共享数据.3.从运用地方来说 forward:一般用于用户登陆的时候,根据角色转发到相应的模块.redirect:一般用于用户注...

JSP中forward和redirect有什么区别?什么时候必须用哪个
forward: 用于站内跳转,共享同一个Request和Response redirect:可站内跳转,但是会新器一个Request和Response; 还可以用于站外跳转,比如可以跳转到baidu等等

JSP中forward和redirect有什么区别?什么时候必须用哪个
forward 表示的是转发,redirect 表示的是重定向 转发 只请求一次URL 而重定向是经过两次URL转变 转发:比如你登录的时候成功跳转到指定页面 重定向: 比如你注销时候.注销成功,跳转一次,然后再重定向到登录页面, 这是经过两次的

JSP中forward和redirect有什么区别?什么时候必须用哪个
(1).Request Dispatcher.forward()是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;(2).response.sendRedirect()则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。前者更加高效,在前者可以满足需要时,尽量使用...

JSP中forward和redirect有什么区别?什么时候必须用哪个
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求...

JSP中forward和redirect有什么区别?什么时候必须用哪个
forward是基于响应的,是在服务器端将请求消息发送给另一个页面,我们在地址栏看不到变化,redirect是基于请求的,它会先向用户的浏览器发送包括了重定向uri的响应,然后浏览器会基于这个uri再次发送请求消息,我们会在地址栏看到变化

JSP中forward和redirect有什么区别?什么时候必须用哪个
response.sendRedirect("new.jsp"); \/\/重定向到new.jsp 在jsp页面中你也会看到通过下面的方式实现转发:<jsp:forward page="apage.jsp" \/> 当然也可以在jsp页面中实现重定向:<%response.sendRedirect("new.jsp"); %> \/\/重定向到new.jsp 二、本质区别 解释一 一句话,转发是服务器行为,重...

jsp开发中两种跳转的区别
JSP开发中两种跳转的区别是:重定向(Redirect)和转发(Forward)。在JSP和Servlet开发中,重定向和转发是两种常用的页面跳转方式,它们在实现机制、使用场景和效果上有所不同。1. 实现机制:重定向是通过HTTP协议中的重定向机制实现的,当服务器需要重定向到另一个资源时,会向浏览器发送一个特殊的响应...

jsp中“forward”和“redirect”的区别是什么?
jsp中forward转发和重定向区别在于:1.forward转发是服务器内部的事情,客户端是不知道的,就是说,客户端地址栏不会发生改变 2.forward本质上,客户端只发送了一次请求,而对于重定向,redirect是服务器告知客户端重新想目标地址请求,就是说,客户端二次发起请求向另一个地址,客户端的url地址栏会发生...

相似回答