【第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)); //…

学习java第六十天

Advice的类型: (1)前置通知(Before Advice):在连接点(Join point)之前执行的通知。 (2)后置通知(After Advice):当连接点退…

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;学生在大学生社团…

C语言从头学02——基本语法概念

这篇文章介绍几个编写C语言程序需要掌握的基本语法概念&#xff1a; 一、语句 C语言代码的组成单位是语句&#xff08;statement&#xff09;&#xff0c;语句是构成程序的基本单位。C语言规定&#xff0c;语句必须使用分号结尾。但有例外&#xff0c;例如&#xff0c…

【第9章】spring-mvc响应结果处理

文章目录 前言一、准备1. JSP2. User 二、基础案例1.设置属性2.model3. map4.modelMap5. modelAndView 三、扩展案例1. header2. cookie3.session4. json5. object 总结 前言 这一章描述SpringMvc对于响应各种各样的处理以及其中遇到的问题。 一、准备 1. JSP <%--Create…

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

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

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

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