Java课题笔记~ SpringMVC的四种跳转方式

news/2024/12/22 23:56:41/

默认的跳转是请求转发,直接跳转到jsp页面展示

还可以使用框架提供的关键字redirect,进行一个重定向操作,包括重定向页面和重定向action,使用框架提供的关键字forward,进行服务器内部转发操作,包括转发页面和转发action。

当使用redirect:和forward:关键字时,视图解析器中前缀后缀的拼接就无效了。

页面部分:

<!--ctrl+d:复制当前行-->
<a href="${pageContext.request.contextPath}/one.action">请求转发页面(默认)</a><br>
<a href="${pageContext.request.contextPath}/two.action">请求转发action</a><br>
<a href="${pageContext.request.contextPath}/three.action">重定向页面</a><br>
<a href="${pageContext.request.contextPath}/four.action">重定向action</a><br>

Controller部分:

@Controller
public class JumpAction {@RequestMapping("/one")public String one(){System.out.println("请求转发页面(默认)");//以前的访问方式//request.getRequestDispatcher("/admin/main.jsp").forward(request,response);//观察地址栏的变化:  http://localhost:8080/one.action//return "main"; //默认的访问方式是自动拼接前缀和后缀进行跳转return "forward:/fore/user.jsp";//只要使用了forward:就可以屏蔽前缀和后缀的拼接,自己手工构建返回的全部路径+.jsp}@RequestMapping("/two")public String two(){System.out.println("请求转发action");//观察地址栏的变化:  http://localhost:8080/two.actionreturn "forward:/other.action";   //不使用forward:,就会是这样的路径  /admin/other.action/.jsp}@RequestMapping("/three")public String three(){System.out.println("重定向页面");//观察地址栏的变化  http://localhost:8080/admin/main.jspreturn "redirect:/admin/main.jsp";//只要使用了redirect:就可以屏蔽前缀和后缀的拼接}@RequestMapping("/four")public String four(){System.out.println("重定向action");//观察地址栏的变化  http://localhost:8080/other.actionreturn "redirect:/other.action";//只要使用了redirect:就可以屏蔽前缀和后缀的拼接}
}

2.7 SpringMVC支持的默认参数类型

这些类型只要写在方法参数中就可以使用了。

1)HttpServletRequest 对象

2)HttpServletResponse 对象

3)HttpSession 对象

4)Model/ModelMap 对象 

5)Map<String,Object>对象

注意Model,Map,ModelMap都使用的是request请求作用域,意味着只能是请求转发后,页面才可以得到值。


http://www.ppmy.cn/news/1037822.html

相关文章

react go实现用户历史登录列表页面

refer: http://ip-api.com/ 1.首先需要创建一个保存用户历史的登录的表&#xff0c;然后连接go 2.在用户登录的时候&#xff0c;获取用户的IP IP位置&#xff0c;在后端直接处理数据即可&#xff08;不需要在前端传递数据&#xff09; &#xff08;1&#xff09;增加路由&am…

ChatGPT在智能机器人和自动导览中的应用如何?

ChatGPT在智能机器人和自动导览领域具有广泛的应用潜力。作为一种强大的自然语言处理模型&#xff0c;ChatGPT可以通过语音或文本交互与用户进行实时沟通&#xff0c;提供信息、解答问题&#xff0c;甚至执行任务。本文将详细探讨ChatGPT在智能机器人和自动导览中的应用&#x…

Gitlab CI/CD笔记-第三天-使用主机docker in docker 进行构建并push镜像。

一、啥叫docker in docker 就是允许的镜像里头有一个docker,但这个docekr镜像只有docker的cli和/var/lib/docker.sock的套接字&#xff0c;没有允许build.然后里头又运行了一个docker&#xff0c;这个docker有build的能力&#xff0c;此时构建时就是里头的docker使用外部的dock…

DevExpress WinForms数据编辑器组件,提供丰富的数据输入样式!(一)

DevExpress WinForms超过80个高影响力的WinForms编辑器和多用途控件&#xff0c;从屏蔽数据输入和内置数据验证到HTML格式化&#xff0c;DevExpress数据编辑库提供了无与伦比的数据编辑选项&#xff0c;包括用于独立数据编辑或用于容器控件(如Grid, TreeList和Ribbon)的单元格。…

【STM32RT-Thread零基础入门】 5. 线程创建应用(线程创建、删除、初始化、脱离、启动、睡眠)

硬件&#xff1a;STM32F103ZET6、ST-LINK、usb转串口工具、4个LED灯、1个蜂鸣器、4个1k电阻、2个按键、面包板、杜邦线 文章目录 前言一、线程管理接口介绍二、任务&#xff1a;使用多线程的方式同时实现led闪烁和按键控制喇叭&#xff08;扫描法&#xff09;1. RT-Thread相关接…

2.vue3+ts+element-plus后台管理界面布局及动态侧边栏实现

1. 界面布局 利用element-plus的布局组件实现&#xff1a; <el-container> 整个布局容器&#xff0c; <el-header> 顶部布局容器&#xff0c; <el-aside> 侧边布局容器 <el-main> 主要布局容器。 采用组件化思想&#xff0c;将header、main和asid…

C++11并发与多线程笔记(4) 创建多个线程、数据共享问题分析、案例代码

C11并发与多线程笔记&#xff08;4&#xff09; 创建多个线程、数据共享问题分析、案例代码 1、创建和等待多个线程2、数据共享问题分析2.1 只读的数据2.2 有读有写2.3 其他特例 3、共享数据的保护案例代码 1、创建和等待多个线程 #include<iostream> #include<threa…

长胜证券:科创板新股申购条件?

自科创板开市以来&#xff0c;科创板的火爆程度一直居高不下。一方面得益于首批上市企业水平的高新科技&#xff0c;也在另一方面暴露了一般投资者在科技领域关于潜在投资时机的渴望和追求。比较于主板商场&#xff0c;科创板新股申购有哪些条件&#xff1f;如何参加科创板新股…