JAVA WEB:请求转发和重定向的区别

sevlet response有一个重定向的方法我们先介绍一下。

1.HttpServletResponse对象的sendRedirect(String local)方法称作重定向。如果location地址前面加上

"/",则表示相对于Servlet容器的根来请求,即http://localhost:8080,如果location地址钱没有加上“/”,则表示相对于当前请求的url来寻找地址。

2.RequestDispatcher的forward(request, response)称作请求转发。

3.

请求转发和请求重定向本质的区别是:是否结束了一个request周期,而产生的新的请求

  1)请求转发,整个过程处于同一个请求当中。

  2)重定向,实际上游览器会像服务器发送两个请求。

  3)RequestDispatch是通过HttpServlet对象的getRequestDispatch()方法得到,是属于请求对象的方法。

  4)sendRedirect是HttpServletResponse对象的方法,即响应对象的方法, 既然调用了响应对象的方法,那就表明整个请求过程已经结束了,服务器开始想客户端返回执行的结果。

  5)重定向在firebug中的示意图

时间: 2024-10-07 20:43:01

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

请求转发和重定向的区别以及他们的实现方式?

1.请求转发是什么? 答:请求转发是RequestDispatcher.forword方法:作用是:在服务器端内部将请求转发给另一个资源,浏览器只知道发出请求并得到响应结果,但不知道在服务器程序内部发生了转发行为. 举例:别名为“浏览器”的人写信找张三100块,张三只有50块,于是张三找李四借了50块,然后将钱转给“浏览器”.可知,“浏览器”只发出一封信和收到一次回复,他只知道钱是张三借给他的,并不知道有一部分是李四的. 2.重定向是什么? 答:重定向是HttpServletResponse.s

idea创建简单web项目分析Servlet的请求转发与重定向的区别

注:如需转载,请附上原文链接,如有建议或意见,欢迎批评指正! 需求说明: // index.jsp页面 1 <% 2 String basePath = request.getScheme()+":"+"//"+request.getServerName()+":"+request.getServerPort()+"/" 3 +request.getServletContext().getContextPath()+&q

web开发中请求转发和重定向的区别

请求转发流程及定义 重定向流程及定义

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

1.请求转发(forward) request.getRequestDispatcher("parameter").forward(request,response);跳转到指定的服务器资源,地址栏URL不变,请求响应不变. 2请求包含(include)request.getRequestDispatcher("parameter").include(request,response);跳转到指定的服务器资源且包含之前的资源,地址栏URL不变,请求响应不变. 注* 

请求转发和重定向的区别

请求转发 是服务器内部把对一个request/response的处理权,移交给另外一个.对于客户端而言,它只知道自己最早请求的那个A,而不知道中间的B,甚至C.D. 传输的信息不会丢失. 重定向,是两次request 客户端request A,服务器响应,并response回来,告诉浏览器,你应该去B. 重定向可以访问自己web应用以外的资源. 在重定向的过程中,传输的信息会被丢失. 原文地址:https://www.cnblogs.com/sketeton/p/11672567.html

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

重定向和转发有一个重要的不同:当使用转发时,服务器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程. 与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求.因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL, 而当使用转发时,该URL会保持不变.重定向的速度比转发慢,因为浏览器还得发出一个新的请求.同时,由于重定向方式产生了一个新的请求,所以经过一次重 定向后,request内的对象将无法使用. 怎么选择是重定向还是转发呢

servlet请求转发与重定向的区别------用生活实例来形象说明两者的区别

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

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

Servlet跳转到另一个Servlet中: request.getRequestDispatcher().forward();代表默认的是post方法,即在被跳转的Servlet的doPost()方法中接收或写代码 response.sendRedirector()代表默认的是get方法.//因为重定向,又重新从页面发送请求到服务端

请求转发与重定向详解(模拟系统维护中提示的实现)

简介 转发和包含 Servlet对象由Servlet容器创建,并且Servlet对象的service()方法也由容器调用.一个Servlet对象可否直接调用另一个Servlet对象的service()方法呢?答案是否定的,因为一个Servlet对象无法获得另一个Servlet对象的引用. 在旧版的Servlet API中,ServletContext接口中的getServlet(Stringname)方法能根据参数给定的名字返回相应的Servlet对象的引用.从Servlet API2.1开始,