网上摘取一段大神总结的转发与重定向的区别,如下:

  • 转发(服务端行为)
  1. 形式:request.getRequestDispatcher().forward(request,response)

    转发在服务器端发挥作用,通过forward()方法提交信息在多个页面之间进行传递;

    地址栏不会改变;

    转发只能转发到当前Web应用内的资源;

    在转发过程中,可以将数据保存到 request 域对象中去;

    转发只有一次请求;

    转发是服务器端行为

    2. 转发过程

    客户端浏览器发送http;

    web浏览器接受请求;

    调用内部的一个方法在容器内部完成请求处理和转发动作;


  需注意的是:转发的路径必须是同一个web容器下的url。在客户端浏览器路径栏显示的仍然是第一次访问的路径。转发行为是浏览器只做了一次访问请求。

  • 重定向(客户端行为)

  1. 形式:response.sendRedirect("")

    重定向地址栏会改变;

    重定向可以跳转到当前web应用,甚至是外部域名网站;

    不能在重定向的过程中,将数据保存到 request 域对象中;

  2. 重定向过程

    客户端发送http请求;

    web服务器接收后,发送302状态吗响应以及新的location给客户端浏览器;

    客户端浏览器发现是302响应,则自动发送一个http请求,请求url为重定向的地址,响应的服务器根据此请求寻找资源并发送给客户。

示例:

controller

package com.sunjian.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @author sunjian
 * @date 2020/3/17 17:53
 */
@Controller
public class TestController {

    /**
     * 重定向
     */
    @RequestMapping(value = "/test1")
    public String testRedirect(){
        return "redirect:test.jsp";
    }

    /**
     * 转发
     */
    @RequestMapping(value = "/test2")
    public String testForward(){
        return "forward:test.jsp";
    }
    @RequestMapping(value = "/test3")
    public String test(){
        return "test";
    }
}

JSP

<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

重定向

  http://localhost:7777/test1  

  

转发

  http://localhost:test2

  

  http://localhost:test3

  

OK.

SpringMVC框架——转发与重定向的更多相关文章

  1. SpringMVC核心技术---转发和重定向

    @Controller public class Mycontroller { //转发 @RequestMapping("/adduser") public String add ...

  2. SSM-SpringMVC-22:SpringMVC中转发(forward)和重定向(redirect)

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 转发和重定向大家都熟悉,都学到框架了,怎么能不了解转发和重定向呢? 如果有不熟悉的,可以去百度搜几篇博客去看看 ...

  3. SpringMVC框架02——SpringMVC的Controller详解

    1.基于注解的控制器 1.1.@Controller 注解类型 在SpringMVC中使用org.springframework.stereotype.Controller注解类型声明某类的实例是一个 ...

  4. springMVC之一(页面<--->控制器 互相传值,转发和重定向)

    #页面--->控制器1.request:不建议使用2.使用属性传值(建议使用)@RequestParam("name") String username3.使用Bean对象传 ...

  5. SpringMVC转发和重定向区别!

    在servlet中,转发和重定向是由request和response完成的.两者之间的区别请看我之前的文章.那么在springMVC中是如何完成的呢? /**转发**/ @RequestMapping ...

  6. SpringMVC中使用forward和redirect进行转发和重定向以及重定向时如何传参详解

    转自:http://blog.51cto.com/983836259/1877188 2016-11-28 09:45:59   如题所示,在SpringMVC中可以使用forward和redirec ...

  7. 【drp 12】再识转发和重定向:SpringMVC无法跳转页面

    最近再使用SpringMVC进行页面跳转的时候,不知道发生了什么,始终都无法正确跳转.后来问题解决了,发现是对于转发和重定向没有能很好的理解,以此写篇博客,权当做积累了! 声明:本博客的所有代码,均为 ...

  8. SpringMVC 转发、重定向

    转发.重定向到其它业务方法 @org.springframework.stereotype.Controller @RequestMapping("/userController" ...

  9. SpringMVC Controller之间的重定向和转发

    同一个controller之间重定向和转发 ①redirect 在Controller的映射方法中,其返回值改为:return "redirect:XXX"; ②forward 这 ...

随机推荐

  1. 【转载/部分修改】超实用STL——set的入门使用

    本文部分转载自他人博文,少部分自行进行了添改qwq 参考文章:https://blog.csdn.net/chaoyueziji123/article/details/38422211 作者:chao ...

  2. 是谁收购了被谷歌私藏7年之久的Zagat?

    国内餐饮行业的风口似乎总是执着于"价格"上,无论是天天搞特价的外卖,还是优惠不停歇的团购网站,都将"价格"当做了竞争的杀手锏.即使是网红奶茶.甜品之类的,也是将 ...

  3. struts2和springmvc性能比较2

    我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置.spring3 mvc可以认为已经100%零配置了(除了配置spring mvc-servlet.xml外). Spring ...

  4. python基础局部变量、全局变量

    局部变量的作用域只作用与当前函数块(或代码块)中,对函数块(或代码块)之外的重名变量,没有任何影响. 在函数块(或代码块)中,局部变量可用通过global关键字声明变量来改变在函数块(或代码块)之外对 ...

  5. The Monster(Codeforce-C-思维题)

    C. The Monster time limit per test 1 second memory limit per test 256 megabytes   As Will is stuck i ...

  6. Jetson TX2镜像刷板法

    使用Nvidia官方自带的脚本,备份镜像.恢复镜像,快速在新板子中部署DL环境 在之前的一篇博客中,详细介绍了使用JetPack刷系统以及使用离线包部署DL环境(cuda.cudnn.opencv.c ...

  7. ansible使用指北(二)

    前言在上一篇文章里我们了解了ansible的常用模块,今天我们来了解下ansible-playbook,ansbile-playbook是一系统ansible命令的集合,其利用yaml 语言编写,an ...

  8. USB小白学习之路(8)FX2LP cy7c68013A——Slave FIFO 与FPGA通信(转)

    此博客转自CSDN:http://blog.csdn.net/xx116213/article/details/50535682 这个博客只对自己理解CY7C68013的配置有一定的帮助,对于配置CY ...

  9. springDataJPA笔记

    springDataJPA笔记 第一 orm思想 主要目的:操作实体类就相当于操作数据库表 建立两个映射关系: 实体类和表的映射关系 实体类中属性和表中字段的映射关系 不再重点关注:sql语句 实现了 ...

  10. VMWare12pro安装Centos 6.9教程

    VMWare下Centos 6.9安装教程,记录如下 1.新建虚拟机 (1)点击文件-->新建虚拟机 (2)选择 自定义(高级)-->下一步 (3)选择Workstation 12.0-- ...