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

如题所述

forward是基于响应的,是在服务器端将请求消息发送给另一个页面,我们在地址栏看不到变化,redirect是基于请求的,它会先向用户的浏览器发送包括了重定向uri的响应,然后浏览器会基于这个uri再次发送请求消息,我们会在地址栏看到变化
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-04-22
其实讲这个的理论网上有很多,概括的讲就是:比如3个人,a、b、c,a给b一个苹果,b把这个苹果又给了c,这就是forward,a给b一个苹果,b给了一个梨子给c,这就是redirect。如果你这个参数的值在另一个页面也要用到,就用forward,如果你这个参数的值变了,或者就不是这个参数了,就用redirect本回答被网友采纳
第2个回答  2016-06-14
forward是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址,它是不会改变Request的值,如果你需要在下一个页面中能从中获取新的信息的话,你可以Request.setAttribute()来放置一些标志,这样从下一个页面中获取。

redirect是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,forward更加高效,在forward可以满足需要时,尽量使用Request.Dispatcher.forward()方法,并且,这样也有助于隐藏实际的链接。

在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用 HttpServletResponse.sendRedirect()方法。
第3个回答  2016-05-11
一个是转发一个是重定向,前面可以共享request对象 内容,后面的则不可以
第4个回答  2016-05-26
请求转发,你的请求是同一个请求,传的数据还在。重定向相当另外一个请求了

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地址栏会发生...

相似回答