【第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.mzph.cn/pingmian/7066.shtml

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

相关文章

ComfyUI 基础教程(十四):ComfyUI中4种实现局部重绘方法

在ComfyUI中有多种方式可以实现局部重绘,简单的方式是使用VAE内补编码器进行局部重绘,也可以用Fooocus inpaint进行局部重绘,还可以用controlNet的inpaint模型进行局部重绘,以及使用Clip seg蒙版插件! 本篇介绍使用VAE內补编码器进行局部重绘的方法。 1、VAE内补编码器 局…

《架构风清扬-Java面试系列第28讲》聊聊SynchronousQueue的使用及适合场景

SynchronousQueue是BlockingQueue接口的一个实现类之一 这个属于基础性问题,老规矩,我们将从使用场景和代码示例来进行讲解 来,思考片刻,给出你的答案 1,使用场景 实现:特殊的无缓冲队列,每一个…

帆软报表9.0连接达梦数据库

一、将驱动复制到帆软安装目录下 二、配置数据库连接 注意:dm.jdbc.driver.DmDriver是直接在文本框输入的 进行以上两部就能连接达梦数据库了

揭秘!如何利用自动化工具提升抖音推广效果

亲爱的读者朋友们,你是否在为抖音的推广效果而苦恼?看着别人家的视频轻松获得大量曝光,你是否也心生羡慕?今天,我们就来分享一个秘密武器,让你轻松提升抖音推广效果! 首先,让我们来了…

开发环境待

一 web开发环境搭建 1 web开发环境概述 所谓web开发,指的就是从网页中向后端程序发送请求.与后端程序进行交互. 流程图: 1,Web服务器是指驻留于因特网上某种类型计算机的程序. 2, 可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界 浏览…

微信答题活动怎么做_智慧与惊喜的碰撞

在这个信息爆炸的时代,如何吸引用户的眼球,让他们在众多品牌中驻足停留?答案或许就藏在一次别开生面的微信答题活动中。今天,就让我们一起走进这场以智慧与惊喜为主题的微信答题狂欢夜,感受其带来的独特魅力。 工具/原…

AI预测福彩3D第10套算法实战化赚米验证第2弹2024年5月6日第2次测试

由于今天白天事情比较多,回来比较晚了,趁着还未开奖,赶紧把预测结果发出来吧~今天是第2次测试~ 2024年5月6日福彩3D预测结果 6-7码定位方案如下: 百位:3、4、1、7、8、9 十位:4、5、3、7、8、9 个位&#x…

JS基础:输出信息的5种方式详解

你好,我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 云桃桃-大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端基础路线”,可获取完整web基础…

python3+requests+unittest实战系列【一】

1.环境准备 python3 pycharm编辑器 2.框架目录展示 (该套代码只是简单入门,有兴趣的可以不断后期完善) 1)run.py主运行文件,运行之后可以生成相应的测试报告,并以邮件形式发送; &#xff0…

【电商-虾皮】

电商-虾皮 ■ 人口分布■ 市场■ 欧美市场■ 东南亚市场■ 运营模式■ 流量来源■ ERP辅助软件■■ 选品方法■■■ 人口分布 ■ 市场 ■ 欧美市场 亚马逊 ■ 东南亚市场 shopee ■ 运营模式 ■ 流量来源

Matlab 手写板设计

写字板 1、介绍 MATLAB手写板可以作为一个很好的数据输入口,其可以获取该手写板上任意字母、数字,甚至可以制作样本数据。具体用途体现在如下几方面: 数学公式输入:手写板允许用户直接用手写方式输入复杂的数学公式,这…

JavaScript中Math函数与舍入

立方根 console.log(Math.sqrt(25)); //数学方式25平方根 console.log(25 ** (1 / 2)); //25的0.5次方 console.log(8 ** (1 / 3)); //8的1/3次方计算最大最小值 console.log(Math.max(1, 5, 88, 22, 132)); //返回最大值 console.log(Math.max(1, 5, 88, 22, 132)); //…

SpringBoot中阿里OSS简单使用

官方文档:Java跨域设置实现跨域访问_对象存储(OSS)-阿里云帮助中心 1.pom中引入依赖 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.15.1</version> </dependency> 如…

基于Spring Boot的大学生社团活动平台设计与实现

基于Spring Boot的大学生社团活动平台设计与实现 开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/idea 系统部分展示 前台首页功能界面图&#xff0c;学生在大学生社团…

模拟电路设计与分析——电流

&#x1f3ac; 秋野酱&#xff1a;《个人主页》 &#x1f525; 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 原子电流的产生电流的单位电流的方向直流电交流电直流&交流对比开路&闭路 原子 世界万物都是由原子构成&#xff0c;那么…

跨领域精英汇聚,驱动ATFX加速迈向行业巅峰

人才是企业发展的第一资源&#xff0c;企业间的竞争归根结底是人才的竞争。若想实现高质量发展目标&#xff0c;需要高端复合型人才队伍作支撑。面对日益激烈的市场竞争&#xff0c;作为行业头牌品牌&#xff0c;ATFX展现其强大的品牌魅力与前瞻战略布局&#xff0c;近半年来在…

深入理解回溯算法

大家好&#xff0c;我是 方圆&#xff0c;本篇我们来讲回溯。回溯相当于穷举搜索&#xff0c;它会尝试各种可能的情况直到找到一个满足约束条件的解&#xff0c;寻找解的手段一般通过 DFS 实现&#xff0c;是一个 增量构造答案 的过程。回溯法适用于解决能够将原问题拆分成子问…

【linuxC语言】守护进程

文章目录 前言一、守护进程的介绍二、开启守护进程总结 前言 在Linux系统中&#xff0c;守护进程是在后台运行的进程&#xff0c;通常以服务的形式提供某种功能&#xff0c;如网络服务、系统监控等。守护进程的特点是在启动时脱离终端并且在后台运行&#xff0c;它们通常不与用…

【Linux】冯·诺依曼体系结构

要想谈进程&#xff0c;我们就不能只谈进程&#xff0c;我们如果想搞清楚什么是进程&#xff0c;就要从操作系统讲起。我们现在的不管是Linux或是Windows或是安卓等操作系统&#xff0c;它们都有一个相同点&#xff0c;那就是遵循冯诺依曼体系结构&#xff0c;我们看一下冯诺依…

多用户商城系统思维导图

多用户商城系统思维导图之退换货商品计算情况&#xff1a; 这是多用户商城系统思维导图的子图&#xff0c;总图可参考&#xff1a;