`
bjlf1105
  • 浏览: 25489 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

forward/redirect重定向

阅读更多

想要从一个Servlet转向另外一个Servlet,可以使用两种方法进行重定向:
forward(或称dispatch) - 服务器端重定向
redirect – 客户端重定向
forward
服务器端从一个Servlet转向另外一个Servlet,在一个Servlet中可以通过setAttribute往request中传递一些值
在另外一个Servlet中,可以通过getAttribute从request中取值
在两个Servlet中访问到的request的数据是一样的(同一个request)
redirect
服务器实际上已经向客户端产生了响应(302号响应)
客户端(即浏览器)根据响应的HTTP HEAD中包含的redirect地址,向服务器重新发起一个请求(用GET方式)
后面这个请求与一开始那个请求不是同一个请求,所以,在前一个请求中调用setAttribute放进去的数据已经丢失!


浏览器发起请求->服务器响应->浏览器解释响应,可以称为一个请求周期!
forward
浏览器请求Servlet1 -> Servlet1 forward到 Servlet2 ->Servlet2 forward到Servlet3 -> Servlet3响应,浏览器解释响应。这是一个请求周期 ,在这个请求周期中,request中的数据不会丢失!
redirect
浏览器请求Servlet1 -> Servlet1 redirect到Servlet2(实际过程是:Servlet1向浏览器响应 ->浏览器根据响应自动的再次向服务器发起请求到Servlet2 ->Servlet2向浏览器响应->浏览器解释响应)。所以,这是两个请求周期 。这意味着,在服务器端,是两个完全不同的request,所以request中的数据自然也就丢失了!

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    forward转发与redirect重定向的区别.zip

    在Web开发中,"转发"(Forward)和"重定向"(Redirect)是两种常见的请求处理方式,它们在实现客户端和服务器之间的交互时起到至关重要的作用。了解它们的区别对于优化用户体验和提高应用性能至关重要。 首先,让...

    Struts2中实现页面的跳转

    在Struts2框架中,页面跳转是常见的需求,它涉及到前端控制器的设计模式以及请求...同时,也要注意,在现代Web开发中,更多地使用`<s:redirect/>`标签进行重定向,以避免某些情况下可能出现的问题,比如防止重复提交。

    forward与redirect!转发和重定向 解析

    在Web开发中,Forward(转发)与Redirect(重定向)是两种常见的页面跳转方式。它们虽然都可以实现从一个页面跳转到另一个页面的功能,但在实现机制、应用场景以及对用户浏览器地址栏的影响等方面存在显著差异。 ##...

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

    2. 重定向(Redirect): - 使用`Response.sendRedirect()`方法实现。 - 重定向会导致浏览器发起一个新的HTTP请求,所以URL会显示为新的目标地址,客户端浏览器能够感知到这个变化。 - 重定向路径必须是绝对路径...

    request和response实现跳转和重定向的区别

    1. 请求重定向(Redirect): 请求重定向是通过`Response`对象来实现的,服务器在收到请求后,会返回一个状态码3xx(如301永久重定向,302临时重定向),并在响应头中设置`Location`字段,指示客户端应该去新的URL...

    jsp forward与redirect实探

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

    java web-转发、重定向(csdn)————程序.pdf

    在Java Web开发中,转发(Forward)和重定向(Redirect)是两种常见的请求处理方式,它们在处理客户端请求和服务器响应时有着不同的机制和应用场景。 1. **转发(Forward)** - **原理**:转发是在服务器端内部...

    Javaweb请求转发及重定向实现详解

    重定向可以使用redirect关键字来实现。例如: @RequestMapping("/testRedirect") public String testredirect1() { System.out.println("testRedirect执行了"); return "redirect:...

    详解spring mvc 请求转发和重定向

    在Spring MVC中,可以通过注解`@RequestMapping`结合`return "forward:/path"`或`return "redirect:/path"`来实现转发或重定向。如示例代码所示: ```java @RequestMapping(value="/users") @Controller public ...

    转发与重定向的区别

    在Web开发中,转发(Forward)和重定向(Redirect)是两种常见的页面跳转方式。这两种方法虽然都能实现页面的跳转,但其内部工作原理、对客户端的影响以及应用场景都有所不同。本文将详细介绍转发与重定向之间的区别...

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

    如果用户没有登录,Servlet可以使用Redirect转发请求来重定向到登录页面。 结论 Forward和Redirect是两种不同的请求转发方式,每种方式都有其特点和应用场景。了解这两种转发方式的区别和原理,对于JAVA web开发来...

    小谈“转发与重定向”

    转发(Forward)与重定向(Redirect)是Web开发中两种常见的页面跳转方式,它们各自有着不同的应用场景与特点。为了更好地理解这两种机制,我们首先来了解一下它们的基本概念。 1. **转发(Forward)**:转发是一种...

    转发和重定向的区别

    在Web开发中,"转发"(Forward)和"重定向"(Redirect)是两种常见的页面跳转方式,它们虽然在效果上看似相似,但其实有着本质的区别。理解这两种技术的工作原理及其应用场景对于优化应用程序的性能和用户体验至关...

    重定向和转发的区别

    在Web开发中,经常需要用到重定向(Redirect)与转发(Forward)这两种控制页面跳转的技术。尽管它们都能实现页面之间的跳转,但在具体的应用场景和技术实现上却有着本质的不同。下面将从多个角度来详细阐述两者的...

    Ext做的例子右键菜单设置forward跳转b/s版

    重定向(Redirect)会发送一个新的HTTP响应到客户端,让浏览器加载不同的URL;而转发(Forward)则是在服务器端内部完成的,用户浏览器看到的仍然是原始请求的URL,但实际处理的是服务器内部指定的新资源。 在ExtJS...

    一个基于struts的重定向和转发实例

    1. **重定向(Redirect)**:在HTTP响应中,服务器向客户端发送一个302状态码,并在Location头中包含新的URL。浏览器接收到这个响应后,会发起一个新的HTTP请求到指定的URL。这意味着,重定向会在浏览器的地址栏中...

    请求转发与重定向详解代码

    在Web开发中,请求转发(Request Forward)和重定向(Redirect)是两种常见的处理客户端请求的方式,它们在处理用户请求并展示相应页面时起到关键作用。这篇文章将深入讲解这两种技术的工作流程,以及它们在实际应用...

Global site tag (gtag.js) - Google Analytics