`

SpringMVC 之重定向

阅读更多

spring控制器最后返回一个ModelAndView(urlName),其中urNamel可以是一个视图名称,由视图解析器负责解析后将响应流写回客户端;也可以通过redirect/forward:url方式转到另一个控制器进行处理.

redirect方式相当于"response.sendRedirect()".这种方式外部特征就是浏览器地址栏最后显示的路径是转发后的新的路径.工作方式是这样的, 服务器端会首先发一个response给浏览器, 然后浏览器收到这个response后再发一个requeset给服务器, 然后服务器发新的response给浏览器. 这时页面收到的request是一个新从浏览器发来的.这种方式的结果是:

  • A.在转发前后有两个不同的request对象,转发前后的两个控制器在request上的参数(request.getParameter())和request属性(request.getAttribute())不能共享;
  • B.如果转发前后的两个控制器都配置在spring 拦截器范围内,这样拦截器会拦截前后两个request,即会拦截两次;
  • C.最后返回到浏览器后,因为地址栏显示的是转发后的url,所以刷新页面时只会执行后面的url映射的控制器.
  •  
forward方式相当于request.getRequestDispatcher().forward(request,response).这种方式的外部特征是浏览器地址显示的路径是转发前的路径.工作方式是这样,forward 发生在服务器内部,在前一个控制器处理完毕后,直接进入下一个控制器处理, 并将最后的response发给浏览器. 这种方式的结果是:
  • A.转发前后是同一个request,后一个控制器可共享前一个控制器的参数与属性;
  • B.因为是同一个request,拦截器只会拦截前一个url,如果前一个url在映射时未配置到拦截器拦截,则拦截后一个url,即只拦截一次;
  • C.最后返回到浏览器后,因为地址栏显示的是转发前的url,所以刷新页面时会依次执行前后两个控制器.
分享到:
评论

相关推荐

    springmvc重定向实现方法解析

    SpringMVC重定向实现方法解析 SpringMVC是一种基于Java的Web应用程序框架,提供了许多灵活的方法来实现重定向。重定向是指在Web应用程序中,将用户请求从一个URL重定向到另一个URL。 SpringMVC提供了多种方式来...

    springmvc 第二个例子(接收表单参数+重定向)

    在这个“springmvc 第二个例子”中,我们将探讨如何通过Spring MVC接收表单参数并执行重定向。 首先,让我们理解接收表单参数的过程。在Web应用中,用户通常通过HTML表单提交数据。Spring MVC提供了一个强大的机制...

    SpringMVC 跨重定向请求传递数据的方法实现

    在SpringMVC框架中,跨重定向请求传递数据是常见的需求,特别是在处理POST请求之后,为了防止用户意外刷新或后退导致数据重复提交。本文将详细介绍两种主要的方法:使用URL模板和查询参数,以及通过Flash属性来传递...

    详解SpringMVC重定向传参数的实现

    当用户提交表单后,服务器通常会处理请求并返回一个新的URL,浏览器接收到这个响应后会发起一个新的GET请求,这就是重定向。这种方式的一个显著特点是浏览器地址栏中的URL会改变,从而避免用户刷新页面时重复提交...

    spring mvc重定向导致内存溢出解决方案

    ### Spring MVC 重定向导致内存溢出解决方案 在Spring MVC框架中进行页面重定向操作时,可能会遇到因重定向导致的内存溢出问题。本文将详细介绍该问题的原因、原理以及解决方法。 #### 一、问题背景及原因分析 在...

    SSM笔记-SpringMVC自定义视图及重定向视图、语言国际化

    在SpringMVC框架中,视图解析和重定向视图是关键组成部分,它们负责将处理结果展示给用户。此外,语言国际化的支持使得应用程序能够适应全球不同地区的用户需求。接下来,我们将深入探讨这三个主题。 首先,...

    简单谈谈SpringMVC转发和重定向的区别

    SpringMVC 转发和重定向的区别 SpringMVC 框架中,转发和重定向是两个常用的请求跳转方式,但它们之间有着本质的区别。本文将详细讲解 SpringMVC 中的转发和重定向的区别,并给出实践示例。 一、转发(Forward) ...

    Springmvc中的转发重定向和拦截器的示例

    Springmvc中的转发重定向和拦截器的示例 Springmvc 中的转发和重定向是两种不同的处理请求的方式。转发是指在控制器内部处理请求的方法中,默认返回字符串时的处理方式,即返回的字符串是 view 组件的名称,例如 ...

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

    相比之下,请求重定向(Redirecting)则是通过`HttpServletResponse.sendRedirect()`方法完成的。重定向涉及到两次HTTP请求: 1. 服务器向浏览器发送一个响应,指示浏览器发起一个新的HTTP请求到指定的URL。 2. ...

    (代码)SpringMVC第6讲:请求转发和重定向

    在Spring MVC框架中,请求转发和重定向是两种常见的页面跳转方式,它们在处理用户请求和构建应用程序的流程控制中扮演着重要角色。本文将深入探讨这两种技术,并结合实际的代码示例来阐述其工作原理和使用场景。 ...

    SpringMVC学习编程代码

    `表示重定向到名为"success"的视图页面。 此外,SpringMVC支持数据绑定和验证,可以通过`@ModelAttribute`注解将请求参数绑定到Java对象,并利用`@Valid`和`Validator`接口进行数据验证。 对于异常处理,SpringMVC...

    转发与重定向的区别

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

    cas结合 springmvc shiro 单点登录

    4. **SpringMVC中的拦截器**:在SpringMVC中,我们可以使用拦截器(Interceptor)来处理SSO的相关逻辑,比如在用户访问受保护的资源时,检查是否已经通过CAS认证,如果没有,则重定向到CAS登录页面。 5. **登录与...

    SpringMVC框架架构介绍

    【SpringMVC框架架构介绍】 SpringMVC是一个广泛使用的Java Web开发框架,它遵循Model-View-Controller(MVC)设计模式,简化了构建可维护和高性能的企业级应用程序的复杂性。以下是SpringMVC框架的一些核心概念和...

    SpringMVC 入门教程.pdf

    - 使用 `redirect:` 和 `forward:` 前缀可以实现重定向和转发。 7. **注解驱动开发** - SpringMVC 支持使用注解进行配置,如 `@Controller`、`@RequestMapping`、`@Service`、`@Autowired` 等,大大减少了 XML ...

    SpringMVC是实现登陆

    在IT行业中,SpringMVC是Spring框架的一个重要模块,它被广泛用于构建Web应用程序,尤其在企业级开发中占据核心地位。本篇文章将深入探讨如何使用SpringMVC来实现一个简单的登录功能,以及在此过程中涉及的关键知识...

    SpringMVC入门很简单之数据验证

    在这个"SpringMVC入门很简单之数据验证"的主题中,我们将深入探讨如何在SpringMVC中实现数据验证。 在Web应用中,数据验证是必不可少的一环,它确保了用户提交的数据符合预设的规则和格式,防止非法或无效的数据...

    吴天雄--SpringMVC笔记.doc

    SpringMVC 以其灵活性、高性能和易用性,成为了当今最主流的 MVC 框架之一。 1. **SpringMVC 的三层架构与 MVC 模型** - **三层架构**:表现层(Web 层)、业务层和持久层。表现层通常采用 MVC 设计模式,负责与...

    SpringMVC用户登录实例详解

    SpringMVC是Spring框架的一部分,专门用于处理Web应用程序的模型-视图-控制器(MVC)架构。在本文中,我们将深入探讨如何使用SpringMVC实现一个用户登录功能,这将涉及一系列关键知识点,包括配置、控制器、视图解析...

Global site tag (gtag.js) - Google Analytics