当前位置: 首页 > news >正文

SpringMVC域对象共享数据

目录

一.向 request 域对象共享数据

1.1使用ServletAPI向request域对象共享数据

1.2使用ModelAndView向request域对象共享数据

1.3使用Model向request域对象共享数据

1.4使用map向request域对象共享数据

1.5使用ModelMap向request域对象共享数据

二.Model、ModelMap、Map的关系

三.向session域共享数据

四.向application域共享数据


一.向 request 域对象共享数据

1.1使用ServletAPI向request域对象共享数据

@RequestMapping("/testServletAPI")
public String testServletAPI(HttpServletRequest request){request.setAttribute("testScope", "hello,servletAPI");return "success";
}

1.2使用ModelAndView向request域对象共享数据

  ModelAndView对象在 SpringMVC 中是一个用于封装视图和模型数据的重要对象。我们可以在控制器方法中创建一个ModelAndView对象,并且通过这个对象向 request 域对象共享数据。

@RequestMapping("/testModelAndView")
public ModelAndView testModelAndView(){/*** ModelAndView有Model和View的功能* Model主要用于向请求域共享数据* View主要用于设置视图,实现页面跳转*/ModelAndView mav = new ModelAndView();//向请求域共享数据mav.addObject("testScope", "hello,ModelAndView");//设置视图,实现页面跳转mav.setViewName("success");return mav;
}

1.3使用Model向request域对象共享数据

        在 SpringMVC 的控制器方法中,我们可以接收一个Model对象作为参数,并且通过这个对象向 request 域对象共享数据。

@RequestMapping("/testModel")
public String testModel(Model model){model.addAttribute("testScope", "hello,Model");return "success";
}

1.4使用map向request域对象共享数据

        我们也可以在控制器方法中接收一个Map对象作为参数,并且通过这个对象向 request 域对象共享数据。

@RequestMapping("/testMap")
public String testMap(Map<String, Object> map){map.put("testScope", "hello,Map");return "success";
}

1.5使用ModelMap向request域对象共享数据

  ModelMap是一个扩展了LinkedHashMap的类,它可以用于在控制器方法中向 request 域对象共享数据。

@RequestMapping("/testModelMap")
public String testModelMap(ModelMap modelMap){modelMap.addAttribute("testScope", "hello,ModelMap");return "success";
}

二.Model、ModelMap、Map的关系

Model、ModelMap、Map类型的参数其实本质上都是 BindingAwareModelMap 类型的

(1)Model是一个接口,它定义了一组用于向视图传递数据的方法。这个接口就像是一个数据传递的规范,为不同的实现提供了统一的标准。
(2)ModelMap是一个实现了Model接口的类,它扩展了LinkedHashMap,可以用于在控制器方法中向 request 域对象共享数据。这个类就像是一个数据传递的具体实现,为数据的共享提供了实际的操作方法。
(3)Map是 Java 中的一个接口,它定义了一组用于存储键值对的方法。在 SpringMVC 中,我们可以使用Map对象作为参数来接收模型数据,并将其传递给视图。这个接口就像是一个数据存储的通用容器,为不同的数据类型提供了统一的存储方式。

public interface Model{}
public class ModelMap extends LinkedHashMap<String, Object> {}
public class ExtendedModelMap extends ModelMap implements Model {}
public class BindingAwareModelMap extends ExtendedModelMap {}

三.向session域共享数据

        在 SpringMVC 中,我们可以通过注入HttpSession对象来向 session 域对象共享数据。

@RequestMapping("/testSession")
public String testSession(HttpSession session){session.setAttribute("testSessionScope", "hello,session");return "success";
}

四.向application域共享数据

        通过session对象获取application

@RequestMapping("/testApplication")
public String testApplication(HttpSession session){ServletContext application = session.getServletContext();application.setAttribute("testApplicationScope", "hello,application");return "success";
}

相关文章:

SpringMVC域对象共享数据

目录 一.向 request 域对象共享数据 1.1使用ServletAPI向request域对象共享数据 1.2使用ModelAndView向request域对象共享数据 1.3使用Model向request域对象共享数据 1.4使用map向request域对象共享数据 1.5使用ModelMap向request域对象共享数据 二.Model、ModelMap、Ma…...

每日论文23-24ESSERC 6.4-16.1Ghz混合并联-串联谐振器

《A 6.4-to-16.1GHz Hybrid Parallel-Series Resonator Mode-Switching Oscillator with 206.6dBc/Hz FoMT at 1MHz Offset in 40nm CMOS》 24ESSERC 首先这篇文章有个地方我其实没太明白&#xff0c;它在title和行文的时候都写的是“ hybrid parallel-series resonator mode-…...

【软考】系统架构设计师-信息安全技术基础

信息安全核心知识点 信息安全5要素&#xff1a;机密性、完整性、可用性、可控性、审查性 信息安全范围&#xff1a;设备安全、数据安全、内容安全、行为安全 网络安全 网络安全的隐患体现在&#xff1a;物理安全性、软件安全漏洞、不兼容使用安全漏洞、选择合适的安全哲理 …...

kali搭建pikachu靶场

前言&#xff1a; 总所周知搭个网站需要有apachemysqlphp&#xff0c;Apache是一个开源的Web服务器软件&#xff0c; MySQL是一种关系型数据库管理系统&#xff08;数据库&#xff09;&#xff0c;PHP是一种在服务器上执行的脚本语言 文章内容来自&#xff1a;【黑帽编程与攻…...

注解用于从 HTTP 请求中提取数据

在 Spring 框架中&#xff0c;PathVariable、RequestParam 和 RequestBody 等注解用于从 HTTP 请求中提取数据。具体来说&#xff1a; PathVariable&#xff1a;用于从 URL 路径中提取变量值。例如&#xff0c;在路径 /users/{id} 中&#xff0c;{id} 是一个路径变量。Request…...

(Linux)搭建静态网站——基于http/https协议的静态网站

简单了解nginx配置文件 1.下载并开启nginx服务 下载 [rootlocalhost ~]# dnf install nginx -y开启 [rootlocalhost ~]# systemctl restart nginx 1.(1)搭建静态网站——基于http协议的静态网站 实验1&#xff1a;搭建一个web服务器&#xff0c;访问该服务器时显示“hello w…...

【机器学习chp3】判别式分类器:线性判别函数、线性分类器、广义线性分类器、分段线性分类器

前言&#xff1a; 本文遗留问题&#xff1a;&#xff08;1&#xff09;对最小平方误差分类器的理解不清晰.&#xff08;2&#xff09;分段线性判别函数的局部训练法理解不清晰。 推荐文章1&#xff0c;其中有关于感知机的分析 【王木头从感知机到神经网络】-CSDN博客 推荐文…...

【学习】【HTML】HTML、XML、XHTML

HTML 什么是 HTML&#xff1f; HTML (HyperText Markup Language) 是一种用于创建和展示网页的标准标记语言。它由一系列的元素组成&#xff0c;这些元素通过标签的形式来告诉浏览器如何显示内容。 HTML 的基本结构是什么&#xff1f; <!DOCTYPE html> <html> …...

ARM中ZI-data段和RW-data段

ARM中ZI-data段和RW-data段 1、只定义全局变量&#xff0c;不使用&#xff0c;不占用内存空间2、 定义并初始化全局变量为0 占用ZI-Data区域3、定义并初始化全局变量非0 占用RW-Data区域4、增加的是一个int8的数据为什么&#xff0c;size增加不是15、定义的全局变量为0&#xf…...

关联度分析、灰色预测GM(1,1)、GM(1,1)残差模型——基于Python实现

关联度分析 import numpy as np import pandas as pd #关联度分析 #参考序列 Y_0[170,174,197,216.4,235.8] #被比较序列 Y_1[195.4,189.9,187.2,205,222.7] Y_2[308,310,295,346,367]#初始化序列 X_0np.array(Y_0)/Y_0[0] X_1np.array(Y_1)/Y_1[0] X_2np.array(Y_2)/Y_2[0]#计…...

linux常用命令(网络相关)

目录 1. ping - 检查网络连通性 参数 示例 2. ifconfig - 配置网络接口 参数 示例 3. ip - 显示和操作路由、网络设备、接口等 参数 示例 4. netstat - 显示网络连接、路由表、接口统计等信息 参数 示例 5. ss - 更快的netstat替代品 参数 示例 6. nslookup - …...

【uni-app多端】修复stmopjs下plus-websocket无心跳的问题

从这篇文章接着向下看&#xff1a; uniapp plus-websocket 和stompjs连接教程 安卓ios手机端有效 - 简书 按照文章的方式&#xff0c;能够实现APP下stmopjs长连接。但是有一个问题&#xff0c;就是会频繁输出 res-创建连接-1- 跟踪连接&#xff0c;会发现连接都会在大约40s后…...

VScode学习前端-01

小问题合集&#xff1a; vscode按&#xff01;有时候没反应&#xff0c;有时候出来&#xff0c;是因为------>必须在英文状态下输入&#xff01; 把鼠标放在函数、变量等上面&#xff0c;会自动弹出提示&#xff0c;但挡住视线&#xff0c;有点不习惯。 打开file->pre…...

Java-05 深入浅出 MyBatis - 配置深入 动态 SQL 参数、循环、片段

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 大数据篇正在更新&#xff01;https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了&#xff1a; MyBatis&#xff…...

突破自动驾驶瓶颈!KoMA:多智能体与大模型的完美融合

0.简介 本推文主要介绍了由来自北京航空航天大学的姜克谋、蔡轩和崔智勇教授等共同提出的一种名为KoMA的知识驱动的多智能体框架。论文《KoMA: Knowledge-driven Multi-agent Framework for Autonomous Driving with Large Language Models》提出了KoMA框架&#xff0c;通过结…...

YOLO入门教程(三)——训练自己YOLO11实例分割模型并预测【含教程源码+一键分类数据集 + 故障排查】

目录 引言前期准备Step0 环境部署1.安装OpenCV2.安装Pytorch3.安装Ultralytics Step1 打标训练Step2 格式转换Step3 整理训练集Step4 训练数据集4.1创建yaml文件4.2训练4.3预测4.4故障排查4.4.1OpenCV版本故障&#xff0c;把OpenCV版本升级到4.0以上4.4.2NumPy版本故障&#xf…...

【加入默语老师的私域】C#面试题

什么是依赖注入&#xff0c;如何实现&#xff1f; 依赖注入是一种设计模式。我们不是直接在另一个类&#xff08;依赖类&#xff09;中创建一个类的对象&#xff0c;而是将对象作为参数传递给依赖类的构造函数。它有助于编写松散耦合的代码&#xff0c;并有助于使代码更加模块…...

称重传感器指示器行业全面且深入的分析

称重传感器指示器是一种用于显示和解释称重传感器输出信号的设备&#xff0c;用于测量力、重量或压力。称重传感器是将物理力&#xff08;如重量&#xff09;转换为电信号的传感器&#xff0c;称重传感器指示器将该电信号转换为可读格式&#xff0c;通常以磅、公斤或牛顿等单位…...

NAT网络地址转换——Easy IP

NAT网络地址转换 Tip&#xff1a; EasylP没有地址池的概念,使用接口地址作为NAT转换的公有地址。EasylP适用于不具备固定公网IP地址的场景:如通过DHCP, PPPOE拨号获取地址的私有网络出口,可以直接使用获取到的动态地址进行转换。 本次实验模拟nat协议配置 AR1配置如下&…...

【Visual Studio系列教程】如何在 VS 上编程?

上一篇博客中&#xff0c;我们介绍了《什么是 Visual Studio&#xff1f;》。本文&#xff0c;我们来看第2篇《如何在 VS 上编程&#xff1f;》。阅读本文大约10 分钟。我们会向文件中添加代码&#xff0c;了解 Visual Studio 编写、导航和了解代码的简便方法。 本文假定&…...

SQL线索

插入insert into 表 (列) value (),(),...;从另一个表插入数据&#xff1a;insert into 表 (列) select 列 from 另一个表 where 限制;删除delete from 表 where 限制;子查询删&#xff1a;delete from 表 where 列 in (select 列 from 另一个表 where 限制);改update 表 set 列…...

智算解构像素 实景生长孪生:摒弃人工建模冗余流程,开辟视频孪生快速规模化落地路径

智算解构像素 实景生长孪生副标题&#xff1a;摒弃人工建模冗余流程&#xff0c;开辟视频孪生快速规模化落地路径前言传统数字孪生落地始终深陷人工建模周期长、成本高、流程冗余、更新滞后的固化瓶颈。依赖外业测绘、人工描模、素材拼接、后期修模&#xff0c;环节繁琐、交付周…...

Hypha框架深度解析:现代Python异步Web开发与API构建实践

1. 项目概述&#xff1a;Hypha&#xff0c;一个被低估的轻量级Web框架 如果你和我一样&#xff0c;长期在Web后端开发领域摸爬滚打&#xff0c;那么对Flask、FastAPI、Express这些名字一定耳熟能详。它们各有千秋&#xff0c;也各有其“甜蜜点”和“痛点”。最近在GitHub上闲逛…...

Notflix高级技巧:5种高效搜索和流媒体传输方法

Notflix高级技巧&#xff1a;5种高效搜索和流媒体传输方法 【免费下载链接】notflix Notflix is a shell script to search and stream torrent. 项目地址: https://gitcode.com/gh_mirrors/no/notflix Notflix是一款强大的shell脚本工具&#xff0c;能够帮助用户快速搜…...

基于有限状态机的LLM智能体:Haath架构解析与工程实践

1. 项目概述&#xff1a;一个基于状态机的自主LLM智能体如果你正在构建或使用LLM智能体&#xff0c;大概率遇到过这样的困境&#xff1a;你把所有能调用的工具、API、函数都一股脑儿塞给模型&#xff0c;然后满怀期待地发出指令。结果呢&#xff1f;模型要么在几十个选项里犹豫…...

AI时代DevSecOps脚手架:5分钟构建安全合规的React+Supabase应用

1. 项目概述&#xff1a;一个为AI编码时代量身定制的DevSecOps启动器 如果你和我一样&#xff0c;经常用 Cursor、Lovable 这类 AI 编程工具快速构建应用原型&#xff0c;那你肯定遇到过这个痛点&#xff1a;项目跑起来了&#xff0c;功能也实现了&#xff0c;但当你准备把它变…...

基于Neo4j与G6构建技能图谱:从图数据库原理到开源项目实战

1. 项目概述&#xff1a;一个技能图谱的构建与探索工具最近在整理个人知识体系时&#xff0c;我一直在寻找一个能帮我将零散技能点串联起来&#xff0c;形成可视化“技能树”的工具。市面上很多笔记软件要么太重&#xff0c;要么太轻&#xff0c;要么就是纯粹的文档管理&#x…...

长曜创新获数千万元 A+ 融资,Tron Ultra 割草机器人年中全球发售破行业难题

硬氪获悉&#xff0c;智能庭院机器人公司「长曜创新」近日完成数千万元 A 融资&#xff0c;此前 A 轮融资也已在 2025 年 12 月完成&#xff0c;半年累计超亿元。其最新产品 Tron Ultra 系列将在年中全球发售。融资情况与发展方向长曜创新近日完成数千万元 A 轮融资&#xff0c…...

从S-Function到系统级验证:构建可复用的16QAM Simulink自定义模块库

1. 为什么需要自定义Simulink模块库 在通信系统仿真中&#xff0c;我们经常遇到标准模块库无法满足特定需求的情况。就拿16QAM调制解调来说&#xff0c;虽然Simulink自带通信工具箱&#xff0c;但实际项目中往往需要更灵活的配置和更直观的参数调整界面。我刚开始做通信仿真时…...

对比自行维护多个API密钥,Taotoken的密钥管理与审计日志更省心

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比自行维护多个API密钥&#xff0c;Taotoken的密钥管理与审计日志更省心 在构建基于大模型的应用时&#xff0c;项目管理者常常需…...