`
lorenhood
  • 浏览: 56328 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

RequestDispatcher 和 Response.SendRedirect

阅读更多
RequestDispatcher.forward 和  Response.sendRedirect 都可以改变 Request请求。

但是两者是有区别的。

先来看一下Request请求,从客户端发起一个 Request请求,WEB 服务器收到请求后,先经过N个过滤器,最后达到访问的页面(Servlet)。然后再原路返回Response。

RequestDispatcher.forward 它是在Servlet之间跳转,它可以把原先请求的Request原封不动的转给下一个Servlet,也可以在request和 response中添加内容。所有的Servlet处理完成后,再返回客户端。

而sendRedirect则不同,它是将新的URL 返回给客户端。 客户端再根据response 中的URL发起新的请求。此时,它又经过了一次Filter的过滤。


对客户端来说,RequestDispatcher.forward 的跳转,是透明的,客户端没有任何察觉。地址中的仍是最原先的请求地址。

Response.sendRedirect则是,客户端收到第一次请求返回后,根据新的URL 再一次发起请求,实际上是2次Request请求,而第2次请求中,也不会包含第一次请求中的参数了。地址栏中的页面,也变成了新的URL。
0
0
分享到:
评论

相关推荐

    数据库测试test.sql

    response.sendRedirect(request.getContextPath()+"/admin/login.jsp"); } public void register(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //...

    JSP中5种跳转foward,request等等的详细区别

    JSP 中有五种跳转方式,包括 RequestDispatcher.forward()、response.sendRedirect()、jsp:forward、RequestDispatcher.include() 和 HttpServletResponse.sendRedirect()。下面我们将详细介绍这五种跳转方式的区别...

    jsp和servlet中实现页面跳转的方式实例总结.docx

    使用 response.setHeader 和 response.setStatus 方法可以将请求重定向到另一个 JSP 页面。例如: ```jsp response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); String newLocation = "test2.jsp"; ...

    Servlet转发与重定向

    4. 请求与响应的对象:RequestDispatcher.forward 方法的调用者与被调用者之间共享相同的 request 对象和 response 对象,而 HttpServletResponse.sendRedirect 方法调用者与被调用者使用各自的 request 对象和 ...

    jsp跳转的五种方式

    与 `RequestDispatcher.forward()` 不同,`response.sendRedirect()` 是一种客户端的跳转方式。这意味着它可以在用户的浏览器端完成跳转操作,并且可以携带参数进行传递。例如,从一个页面传递参数到另一个页面。 *...

    Servlet跳转方式sendReDirect

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

    JSP跳转方式总结.doc

    本文将重点讨论两种主要的JSP跳转方式:`RequestDispatcher.forward()` 和 `response.sendRedirect()`,以及JSP标签 `<jsp:forward page="">`。 1. `RequestDispatcher.forward()` `RequestDispatcher.forward()` ...

    JSP页面的五种跳转方法

    这里主要介绍五种常见的JSP页面跳转方法,包括RequestDispatcher.forward()、response.sendRedirect()、、Meta标签以及JavaScript的location对象。 1. RequestDispatcher.forward() 这种方法在服务器端执行,它允许...

    JSP页面跳转的五种方法

    本文将详细介绍JSP页面跳转的五种方法:`RequestDispatcher.forward()`、`response.sendRedirect()`、`jsp:forward`、修改HTTP header `Location`以及利用`<meta>`标签实现自动跳转。 #### 1. RequestDispatcher....

    servlet跳转的几种情况

    * `response.sendRedirect()`: 与 Servlet 的 sendRedirect() 方法相同。 * `response.setHeader("Location","")`: 设置 HTTP 头的 Location 字段来实现跳转。 * `<jsp:forward page="" />`: 使用 JSP 的 forward ...

    response设置的实例源码

    2. 转发:`RequestDispatcher`的`forward(ServletRequest request, ServletResponse response)`方法可以在服务器端将请求转发到另一个资源。这不会改变客户端的URL。 ```java RequestDispatcher dispatcher = ...

    JSP与Servlet传值技术总结

    5. 使用RequestDispatcher对象和url参数:使用RequestDispatcher对象来forward请求,并在url中传递参数,例如:RequestDispatcher rd = application.getRequestDispatcher("/queryResult.jsp?a="+000); request....

    jsp跳转详情

    本文将详细介绍JSP(Java Server Pages)中实现页面跳转的五种常见方法:`RequestDispatcher.forward()`、`response.sendRedirect()`、`jsp:forward`标签、通过修改HTTP Header `Location`来跳转以及利用`<meta>`...

    response 对象:页面跳转.pptx

    RequestDispatcher 接口提供了两个方法:`void forward(ServletRequest request, ServletResponse response)` 和 `void include(ServletRequest request, ServletResponse response)`。这两个方法可以用来实现页面...

    小结jsp页面跳转问题

    通过本文档,我们将深入探讨几种常用的JSP页面跳转方式:`response.sendRedirect()`、`response.setHeader()`以及`<jsp:forward>`指令,并通过具体的示例代码来解析这些方法的工作原理及注意事项。 #### 一、`...

    JSP中5种跳转的方法

    除了 `forward()` 和 `sendRedirect()` 方法之外,还可以利用 `RequestDispatcher` 来实现值栈的跳转。这种跳转方式通常是在需要保持上下文信息的同时进行页面跳转。 #### 使用场景 - 当需要在跳转过程中保留一些...

    jsp页面跳转的五中方法

    本文将详细介绍五种常用的JSP页面跳转方法:`RequestDispatcher.forward()`、`response.sendRedirect()`、`jsp:forward`、`request.getRequestDispatcher().include()`以及`<jsp:include>`。这些方法各有特点,适用...

    java web知识集锦2.doc

    通常我们有两种常用的方法:`RequestDispatcher`和`sendRedirect`。这两种方法虽然都能实现页面的跳转,但其内部的工作机制却大不相同。本文将详细解析这两种跳转方式的区别及其应用场景。 #### RequestDispatcher...

    JSPServlet的重定向技术综述

    这两种技术分别是`RequestDispatcher.forward()`和`response.sendRedirect()`,它们各有特点和应用场景。 首先,`RequestDispatcher.forward()`方法是在服务器端内部完成的转发操作。这意味着当一个请求到达Servlet...

    第20章 Request和Response.pdf

    - `RequestDispatcher.forward(ServletRequest request, ServletResponse response)`:在服务器端内部将请求转发到其他资源,客户端浏览器并不感知这一过程。 2. **重定向**: - `sendRedirect()`:客户端浏览器...

Global site tag (gtag.js) - Google Analytics