【第10章】spring-mvc转发和重定向

文章目录

  • 前言
  • 一、准备
  • 二、转发
    • 1. 视图解析器(推荐)
    • 2. 关键字(forward)
    • 3. request
  • 三、重定向
    • 1.关键字(redirect)
    • 2. HttpServletResponse
  • 四、区别
  • 总结


前言

前面介绍了视图解析器的使用,但是对我们原有转发和重定向有影响,接下来我们通过案例,来使用学习转发和重定向的用法。


一、准备

我们以params下的params.jsp和根目录下的index.jsp为例

在这里插入图片描述

二、转发

1. 视图解析器(推荐)

根据视图解析器配置的前缀和后缀,我们仅需完成中间部分的拼接即可。

http://localhost:8080/forward01

package org.example.springmvc.params.controller;import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.io.IOException;/*** Create by zjg on 2024/5/1*/
@Controller
public class ForwardController {@RequestMapping("forward01")public String forward01(){return "params/params";}
}

2. 关键字(forward)

http://localhost:8080/forward02

@RequestMapping("forward02")
public String forward02(){return "forward:/WEB-INF/views/params/params.jsp";
}

3. request

http://localhost:8080/forward03

@RequestMapping("forward03")
public void forward03(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.getRequestDispatcher("/WEB-INF/views/params/params.jsp").forward(request,response);
}

三、重定向

1.关键字(redirect)

http://localhost:8080/redirect01

package org.example.springmvc.params.controller;import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.io.IOException;/*** Create by zjg on 2024/5/1*/
@Controller
public class RedirectController {@RequestMapping("redirect01")public String redirect01(){return "redirect:index.jsp";}
}

2. HttpServletResponse

http://localhost:8080/redirect02

@RequestMapping("redirect02")
public void redirect02(HttpServletResponse response) throws IOException {response.sendRedirect("index.jsp");
}

四、区别

特性转发(Forward)重定向(Redirect)
请求次数一次请求至少两次请求
地址栏变化地址栏不会发生变化地址栏会发生变化
数据共享共享数据(在request级别)不共享数据
跳转限制只能跳转本站点资源可以跳转到任意URL
发生行为服务器端行为客户端行为
示例描述张三向你借钱,你去找李四借到钱之后借给张三。张三并不知道钱是从李四那里借的。浏览器首先请求A页面,服务器响应并告诉浏览器去B页面。浏览器根据这个指令重新发起请求到B页面。

重定向无法直接访问/WEB-INF下内容,可以使用之前【第8章】spring-mvc视图解析器、控制器来进行访问


总结

回到顶部

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/671714.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL基础_5.多表查询

文章目录 一、多表连接1.1、笛卡尔积(或交叉连接) 二、多表查询(SQL99语法)2.1、内连接(INNER JOIN)2.2、内连接(INNER JOIN) 一、多表连接 多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。 …

大模型_基于医疗领域用lora微调ChatDoctor模型

文章目录 ChatDoctor目标方法结果结论收集和准备医患对话数据集创建外部知识数据库具有知识大脑的自主聊天医生的开发模型培训结果数据和模型: 微调推理 ChatDoctor 目标 这项研究的主要目的是通过创建一个在医学建议中具有更高准确性的专业语言模型,来…

激发创新活力,泸州老窖锻造人才“铁军”(内附长江酒道短评)

执笔 | 姜 姜 编辑 | 古利特 刚刚站上300亿元新台阶&#xff0c;泸州老窖再次传来喜讯。 <<<左右滑动查看更多>>> 4月28日&#xff0c;四川省庆祝“五一”国际劳动节大会在成都召开。泸州老窖股份有限公司工业4.0项目秘书长赵丙坤、泸州老窖酿酒有限责任公…

Java并发编程面试问题与答案

1. 什么是线程安全&#xff1f; 答&#xff1a; 线程安全意味着多个线程可以同时访问一个类的实例而不引起任何问题或不一致的结果。线程安全的代码会通过同步机制来确保所有线程都能正确地访问共享资源。 2. 解释Java中的synchronized关键字。 答&#xff1a; synchronized…

利用mediamtx搭建rtsp流媒体server

1.安装mediamtx 我的部署平台是嵌入式瑞芯微RK3588s平台&#xff0c;需要选arm7。 下载位置在这里&#xff1a;GitHub - bluenviron/mediamtx: Ready-to-use SRT / WebRTC / RTSP / RTMP / LL-HLS media server and media proxy that allows to read, publish, proxy, record …

新旅程,新起点——盈致集团搬迁公告

在这春风得意的美好时光里&#xff0c;我们带着满腔的热忱向各位好友宣布一个重要消息&#xff1a;盈致集团即将展开新的篇章&#xff0c;我们的办公地址将迁移至一个全新的地点。新的环境&#xff0c;新的开始&#xff0c;我们期待在这片充满潜力的土地上&#xff0c;继续书写…

【kali换源之后签名无效,报错处理】

#一、问题&#xff1a;报错信息# 错误:1 http://mirrors.ustc.edu.cn/kali kali-rolling InRelease 错误:2 http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling InRelease 错误:3 http://dl.google.com/linux/chrome/deb stable InRelease 错误:4 http://mirrors.aliyu…

Linux网络部分——DNS域名解析服务

目录 1. 域名结构 2. 系统根据域名查找IP地址的过程 3.DNS域名解析方式 4.DNS域名解析的工作原理【☆】 5.域名解析查询方式 6.搭建主从DNS域名服务器 ①初始化操作主服务器和从服务器&#xff0c;安装BIND软件 ②修改主服务器的主配置文件、区域配置文件、区域数…

DRF的序列化【2】

【0】前提概要 【1】基于 View JsonResponse 编写的 5 个接口&#xff1a; 序列化自定义处理: 你需要自己编写序列化逻辑。处理 JSON 格式的 POST 请求数据: 从 request.body 中获取数据&#xff0c;并使用 json.loads() 解析成字典&#xff0c;然后创建相应的对象。request.…

揭秘“全民拼购”:小众模式如何引爆商业新纪元

在当今商业领域&#xff0c;一个曾经被边缘化&#xff0c;但实则蕴含巨大价值的商业模式逐渐崭露头角。不同于传统的销售模式&#xff0c;这一新模式在我近期接触的一个案例中表现出了惊人的活力&#xff0c;即便在用户数量不足二十万的情况下&#xff0c;也能实现日均销售额接…

院校信息 | “卷王”计算机专业在留学圈有多抢手?!UIUC宣布将成立CS新学院!

计算机科学专业作为“当红炸子鸡”专业&#xff0c;有着超高的就业率和高薪待遇&#xff0c;一直都是留学圈报考的热门专业之一。 继加州大学伯克利分校&#xff08;UCB&#xff09;和南加州大学去年相继宣布成立两所新的学院后&#xff0c;伊利诺伊大学香槟分校&#xff08;UI…

如何在 Windows 11 上检查和显示 CPU 温度

1.为什么需要监控 CPU 温度&#xff1f; CPU 是您计算机的核心&#xff0c;是从后台运行整个节目的木偶大师&#xff0c;接收指令并处理保持整个 shindig 运行所需的处理能力。并且需要定期监测其内部温度&#xff0c;以确保节目不会着火。高于平均水平的热量总是会导致性能急…