请求重定向和请求转发的区别

1)转发只能将请求给同一个WEB应用中的组件;重定向可以重定向到一个站点上的其它应用程序的资源,还可以使用绝对URL重定向到其它站点的资源。

2)重定向需要的路径是针对浏览器的,也就是说相对URL以“/”开头,它是相对于整个WEB站点的根目录;转发需要的路径是相对于服务器的,也就是说相对URL以“/”开头,它是相对于当前WEB应用程序的根目录。

3)重定向浏览器地址栏发生变化;转发浏览器地址栏不发生变化。这是因为重定向对浏览器的请求直接作出响应,然后让浏览器去访问它给出的地址;转发是把浏览器的请求转发给另外一个资源,浏览器并不知道服务器程序内部发生了什么,它只等待程序响应的结果。

4)转发共享一个request和response对象,它们属于同一个访问请求和响应过程;重定向是产生了两个request和response对象,也就说服务器在这个过程中接到的是两次请求。

时间: 2024-08-10 02:10:12

请求重定向和请求转发的区别的相关文章

请求转发:MVC设计模式、细节、请求域属性的编程实例、请求重定向和请求转发的区别

MVC设计模式将一次请求的响应过程分成三个功能模块(一般称之为层)来协同完成,这三个模块分别是Model(模型层).View(视图层).Controller(控制层). Model是可作为JavaBean使用的业务对象:View是负责创建显示界面的JSP页面:Controller通常是一个接收用户请求的Servlet程序,它根据请求创建相应的model对象和调用model对象的业务方法,最后再选择一个View去创建网页文档内容并回送给客户端. Controller调用RequestDispatc

请求重定向与请求转发的区别

请求重定向:客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次的请求对象不会保存,地址栏的URL地址会改变.请求转发:服务器行为,request.getRequestDispatcher().forward(req,resp);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变.

Servlet中请求重定向和请求转发和include

响应的重定向 response.sendRedirect("ShowMSgSerlet1");//请求重定向 会将后面的浏览器的url改变. 请求转发 RequestDispatcher rd=request.getRequestDispatcher("../index.jsp");//创建对象 rd.forward(request, response);//将对象进行转发 不会浏览器的url改变 include RequestDispatcher rd=reque

3--springMVC中redirect重定向和forward转发的区别---一些简单的问题的解决

https://www.cnblogs.com/conswin/p/6973528.html SpringMvc请求方式分为转发.重定向两种,是用forward和redirect关键字在controller层进行处理. 下面代码实现了这两种不同的请求方式: import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.stereotyp

JSP内置对象---请求重定向与请求转发的区别

视频地址:http://www.imooc.com/video/3306 方便理解:

举例说明重定向和请求转发的区别

重定向 HttpServletResponse对象的sendRedirect(java.lang.String location)方法称作重定向. 如果location地址前面加上“/”,则表示相对于Servlet容器的根来请求,比如http://localhost:8080:如果location地址前面没有加上“/”,则表示相对于当前请求的URI来寻找地址. 请求转发 RequestDispatcher的:forward(ServletRequest request, ServletRespo

HttpServletRequest对象请求转发和HttpServletResponse对象请求重定向之间的区别

HttpServletRequest对象request代表浏览器请求对象,HttpServletResponse对象代表服务器响应对象,当用浏览器访问web服务器,发出请求时,Servlet调用service方法并传入该两个对象,然后通过请求转发或者重定向到下一个jsp页面或者Servlet,下面是request对象请求转发和response对象请求重定向的区别: 区别一.RequestDispatcher.forward方法只能将请求转发给同一个WEB应用中的组件:而HttpServletRe

请求转发(Forward)和重定向(Redirect)的区别

forward(转发): 是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,因为这个跳转过程实在服务器实现的,并不是在客户端实现的所以客户端并不知道这个跳转动作,所以它的地址栏还是原来的地址. redirect(重定向): 是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL. 转发是服务器行为,重定向是客户端行为. 区别: 1. 从地址栏显示来说for

请求转发与请求重定向的区别

1,请求重定向: 客户端行为:response.sendRedirect(),从本质上讲等同于两次请求,前一次的请求对象不会保持,地址栏的URL地址会改变. 2,请求转发: 服务器行为:request.getRequsetDispatcher().forward(requset,response);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变.(服务器内部转发,所有客户端看不到地址栏的改变) 下面举个生活中的实例来说明: 请求重定向: 就好比我们找一个A广告公司给设计名片,A明确