柏竹 柏竹
首页
后端
前端
  • 应用推荐
关于
友链
  • 分类
  • 标签
  • 归档

柏竹

奋斗柏竹
首页
后端
前端
  • 应用推荐
关于
友链
  • 分类
  • 标签
  • 归档
  • Java基础

  • JavaWeb

  • 拓展技术

  • 框架技术

  • 数据库

  • 数据结构

  • Spring

  • SpringMVC

    • SpringMVC
    • SpringMVC 静态资源的访问
    • SpringMVC 请求接收
    • SpringMVC 重定向和转发
      • 应用测试
        • 转发
        • 重定向
    • SpringMVC 异常
    • SpringMVC 拦截器
    • SpringMVC 上传&下载
    • SpringMVC RESTful API
  • SpringBoot

  • SpringClound

  • Ruoyi-Vue-Plus

  • 后端
  • SpringMVC
柏竹
2021-07-15
目录

SpringMVC 重定向和转发

# SpringMVC 重定向和转发

Spring MVC 请求方式 分为:转发、重定向 2种。在Servlet中 请求方式处理都是在 controller层 !!!

转发

客户浏览器发送 http 请求,在内部方法中完成请求处理和转发动作。在这里转发的路径必须是同一个 Web 容器下的 URL,其不能转向到其他的 Web 路径上,中间传递的是自己的容器内的 request

重定向

客户浏览器发送 http 请求,Web 服务器接受后发送 302 状态码响应及对应新的 URL地址 给客户浏览器,客户浏览器发现是 302 响应,则自动再发送一个新的 http 请求,请求 URL 是新的地址,服务器根据此请求寻找资源并发送给客户

重定向与转发的区别

  • 重定向 会改变地址,requset存储的数据会丢失

    转发 时地址会显示请求页面的地址,保存了页面的数据

  • 重定向 两次请求 两次响应

    转发 一次请求 一次响应

# 应用测试

应用前提&说明

NavigationController类 控制器

@Controller
@RequestMapping ("/navigation")
public class NavigationController {
    ····
}

navigationTest.jsp文件响应形式

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>navigationTest</title>
</head>
<body>
    <h1> 跳转 & 重定向 测试</h1>
    <h2>参数测试</h2>
    
    <h3>requestScope 作用域</h3>
    <div>
        <span>id: ${requestScope.id}</span> <br>
        <span>name: ${requestScope.name}</span>
    </div>
    
    <h3>pageScope 作用域</h3>
    <div>
        <span>id: ${pageScope.id}</span> <br>
        <span>name: ${pageScope.name}</span>
    </div>
    
    <h3>sessionScope 作用域</h3>
    <div>
        <span>id: ${sessionScope.id}</span> <br>
        <span>name: ${sessionScope.name}</span>
    </div>
    
</body>
</html>

# 转发

/**
 *  String 形式转发
 *  应用前提:前缀 需要 forward关键字
 */
@RequestMapping("forwardString")
public String forwardString(HttpServletRequest request) {
    request.setAttribute("id" , 1);
    request.setAttribute("name" , "柏竹");
    //return "jsp/navigationTest.jsp"
    return "forward:/jsp/navigationTest.jsp";
}
/**
 *  ModelAndView 形式转发
 *  应用前提:前缀 需要 forward关键字
 */
@RequestMapping("forwardMAV")
public ModelAndView forwardMAV(){
    ModelAndView mv = new ModelAndView();
    mv.addObject("id",2);
    mv.addObject("name","智乃");
    mv.setViewName("forward:/jsp/navigationTest.jsp");
    return mv;
}
/**
 *  String 形式转发 控制器
 */
@RequestMapping("forwardString2")
public String forwardString2(HttpServletRequest request) {
    request.setAttribute("id" , 6);
    request.setAttribute("name" , "纱雾");
    return "forward:/navigation/forwardString";
}
/**
 *  ModelAndView 形式转发 控制器
 */
@RequestMapping("forwardMAV2")
public ModelAndView forwardMAV2(){
    ModelAndView mv = new ModelAndView();
    mv.addObject("id",7);
    mv.addObject("name","琪露诺");
    mv.setViewName("forward:/navigation/forwardMAV");
    return mv;
}

# 重定向

/**
 *  String 重定向
 */
@RequestMapping("redirectString")
public String redirectString(HttpServletRequest request) {
    request.setAttribute("id",4);
    request.setAttribute("name","黑猫");
    return "redirect:/jsp/navigationTest.jsp";
}
/**
 *  ModelAndView 重定向
 */
@RequestMapping("redirectMAV")
public ModelAndView redirectMAV() {
    ModelAndView mv = new ModelAndView();
    mv.addObject("id",5);
    mv.addObject("name","蕾姆");
    mv.setViewName("redirect:/jsp/navigationTest.jsp");
    return mv;
}
//重定向 控制器

/**
 *  String 控制器重定向
 */
@RequestMapping("redirectString2")
public String redirectString2(HttpServletRequest request) {
    request.setAttribute("id",8);
    request.setAttribute("name","香子兰");
    return "redirect:/navigation/redirectString";
}
/**
 *  ModelAndView 控制器重定向
 */
@RequestMapping("redirectMAV2")
public ModelAndView redirectMAV2() {
    ModelAndView mv = new ModelAndView();
    mv.addObject("id",9);
    mv.addObject("name","黑子");
    mv.setViewName("redirect:/navigation/redirectMAV");
    return mv;
}
#SpringMVC#Java
上次更新: 2023/03/12, 00:43:49

← SpringMVC 请求接收 SpringMVC 异常→

最近更新
01
HTTPS自动续签
10-21
02
博客搭建-简化版(脚本)
10-20
03
ruoyi-vue-plus-部署篇
07-13
更多文章>
Theme by Vdoing | Copyright © 2019-2024 | 桂ICP备2022009417号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式