`
小哥1900
  • 浏览: 56500 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

sendRedirect()与forward()方法的区别

阅读更多
   HttpServletResponse接口的sendRedirect()方法和RequestDispatcher接口的forward()方法都可以利用另外的资源(Servlet,JSP页面或HTML文件)来为客户端进行服务,但是这两种方法有着本质上的区别。
   sendRedirect()方法的工作原理图如下:
  

   上图交互过程如下:
   (1)浏览器访问Servlet1;
   (2)Servlet1想让Servlet2为客户端服务;
   (3)Servlet1调用sendRedirect方法,将客户端的请求重定向到Servlet2;
   (4)浏览器访问Serlvet2;
   (5)Servlet2对客户端的请求作出响应;
    从以上交互过程可以看出,调用sendRedirect方法,实际上是告诉浏览器Servlet2所在的位置,让浏览器重新访问Servlet2。调用sendRedirect方法,会在响应中设置location响应报头。要注意的是:这个过程对于用户是透明的,浏览器会自动完成新的访问。最终浏览器地址栏显示的URL是重定向后的URL。
   forward()方法工作原理图如下:
  

   上图交互过程如下:
   (1)浏览器访问Servlet1;
   (2)Servlet1想让Servlet2对客户端的请求进行响应,于是调用forward()方法,将请求转发给Servlet2进行处理;
   (3)Servlet2对请求作出响应。
    从以上交互过程可以看出,调用forward方法,对浏览器来是透明的,浏览器并不知道为其服务的Servlet已经换成了Servlet2,它只知道发出了一个请求,获得了一个响应,浏览器的地址栏中显示的URL还是原始请求的URL。
   这两个方法还有一个区别:sendRedirect方法不但可以在位于同一个主机上的不同Web应用程序之间进行重定向,而且可以将客户端重定向到其他服务器上的Web应用程序资源。
  • 大小: 20.6 KB
  • 大小: 19.5 KB
分享到:
评论

相关推荐

    sendRedirect()和forward()

    sendRedirect()和forward()方法的区别 sendRedirect()和forward()方法都是Servlet编程中常用的方法,它们可以将客户端的请求重定向或转发到其他的资源,如Servlet、JSP页面或HTML文件中。但是,这两个方法之间存在...

    sendredirect()和forward()方法的区别_xyy511的专栏-CSDN博客.mht

    sendredirect()和forward()方法的区别_xyy511的专栏-CSDN博客.mht

    forward PK sendredirect

    这里我们将深入探讨这两种方法的区别。 首先,`jsp:forward page="转的页面"`是JSP中的动作标签,用于将当前请求转发到指定的页面。这种方式属于服务器端的跳转。当浏览器向服务器发送请求时,服务器接收到请求后,...

    java 中sendredirect()和forward()方法的区别

    Java 中 sendRedirect() 和 forward() 方法的区别 Java 中的 sendRedirect() 和 forward() 方法都是用于页面跳转的,但是它们之间存在着一些关键的区别。 1. 跳转方式 sendRedirect() 方法可以将请求重定向到任何...

    forward-sendRedirect

    与`forward()`不同,`sendRedirect()`实际上是向客户端浏览器发送一个HTTP状态码302(临时重定向)或303(见其他),并附带一个新的URL,指示浏览器发起一个新的GET请求到这个新URL。因此,`sendRedirect()`会生成一...

    response_sendRedirect和request_getRequestDispatcher()_forward的区别.

    跳转方式 ...运用forward方法只能重定向到同一个Web应用程序中的一个资源。...Forward代码中的"/uu"则代表相对与WEB应用的路径。如http://localhost:8080/Test应用(则提交至http://localhost:8080/Test/uu);

    jsp中页面之间的跳转forward与sendRedirect的区别

    页面之间的跳转可以通过两种方式实现:forward和sendRedirect。 forward:可以在JSP页面中使用,可以在Servlet中实现。 在JSP页面中使用”目标文件”/>,例如要跳转到userlist.jsp,可以写: 代码如下: ”userlist...

    Servlet之forward、sendRedirect、 include区别与使用实例

    Servlet之forward、sendRedirect、 include区别与使用实例 ,具体效果和过程看博文http://blog.csdn.net/evankaka/article/details/45169569

    Servlet跳转方式sendReDirect

    在Servlet中,有两种主要的跳转方式:`RequestDispatcher.forward()`和`ServletResponse.sendRedirect()`。这两种方法在处理客户端请求时有不同的行为和应用场景。 1. `RequestDispatcher.forward()` - `forward()...

    forward方法实现请求转发

    ### forward方法实现请求转发 #### 一、概述 在Web应用开发中,`RequestDispatcher`对象的`forward`方法被广泛用于实现请求转发。通过该方法可以将当前请求转发到另一个资源(如Servlet或JSP页面)进行处理,并且...

    jsp:forward方法实例

    请求转发与URL重定向(`response.sendRedirect()`)有显著区别。URL重定向会向客户端浏览器发送一个HTTP响应,告知浏览器加载新的URL,从而创建了一个新的HTTP请求。而`jsp:forward`是在服务器端完成的,用户浏览器...

    java中dispcter和forward的区别

    而`forward()`方法是`RequestDispatcher`的一个关键方法,它用于在服务器端将请求转发到另一个资源,如JSP或Servlet。`forward()`操作发生在服务器端,对客户端浏览器而言是透明的,即浏览器的URL不会改变,而且请求...

    forward与redirect区别

    在Java Servlet中,通常通过`HttpServletResponse.sendRedirect()`方法实现。 - 重定向后,浏览器的URL会显示新请求的地址,用户可以看到页面跳转的过程。 - 由于是浏览器重新发起请求,所以原有的Request数据不会被...

    jsp跳转getRequestDispatcher()和sendRedirect()的区别.docx

    ### jsp跳转getRequestDispatcher()和sendRedirect()的区别 在Java Web开发中,经常会遇到页面间的跳转操作,其中两种常见的方法是`getRequestDispatcher()`和`sendRedirect()`。这两种方式虽然都能实现页面跳转,...

    Servlet转发与重定向

    RequestDispatcher.forward 方法与 HttpServletResponse.sendRedirect 方法的区别 RequestDispatcher.forward 方法和 HttpServletResponse.sendRedirect 方法的主要区别在于: 1. 转发的范围:RequestDispatcher....

    转发和重定向的区别 forward和redirect的区别

    - 使用`RequestDispatcher.forward()`方法实现。 - 请求转发是在服务器内部完成的,客户端浏览器并不知情。这意味着,浏览器的URL不会改变,因为请求并没有离开当前应用。 - 转发路径可以是相对路径,也可以是...

    jsp跳转getRequestDispatcher()和sendRedirect()的区别

    - `RequestDispatcher.forward()`方法的请求转发是在服务器内部进行的,不需要与客户端进行第二次通信,因此速度较快,效率较高。 - `HttpServletResponse.sendRedirect()`方法需要通过客户端再次发送请求,进行二...

    jsp forward与redirect实探

    当我们需要在不同的页面之间导航时,`forward`和`redirect`是两种常见的处理请求转发和重定向的方法。本文将深入探讨这两种机制及其区别。 首先,`forward`是通过服务器端内部跳转实现的。它使用`RequestDispatcher...

    JAVA面试题之Forward与Redirect的区别详解

    "JAVA面试题之Forward与Redirect的区别详解" 本文主要讲解了在JAVA面试中可能遇到的问题,即JAVA中Forward与Redirect两者之间的区别。文中详细介绍了两种请求转发方式的原理和区别,包括请求转发的含义、Forward...

Global site tag (gtag.js) - Google Analytics