news 2026/10/30 15:07:44

会话管理_域对象的使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
会话管理_域对象的使用

目录

  • 域对象概述
  • 三大域对象的数据作用范围
  • 域对象的使用

域对象概述

域对象:一些用于存储数据和传递数据的对象,传递数据不同的范围,我们称之为不同的域,不同的域对象代表不同的域,共享数据的范围也不同

  1. 请求域对象是HttpServletRequest,传递数据的范围是一次请求之内及请求转发
  2. 会话域对象是HttpSession,传递数据的范围是一次会话之内,可以跨多个请求
  3. 应用域对象是ServletContext,传递数据的范围是本应用之内,可以跨多个会话

三大域对象的数据作用范围

请求域

会话域

应用域

域对象的使用

域对象的API

API功能
void setAttribute(String name,String value)向域对象中添加/修改数据
Object getAttribute(String name);从域对象中获取数据
removeAttribute(String name);移除域对象中的数据


import jakarta.servlet.ServletContext;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import jakarta.servlet.http.HttpSession;import java.io.IOException;@WebServlet("/servletA")public classServletAextendsHttpServlet{protected voidservice(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{// 向请求域存放数据req.setAttribute("request","requestMessage");// 向会话域中存放数据HttpSession session=req.getSession();session.setAttribute("session","sessionMessage");// 向应用域存放数据ServletContext application=getServletContext();application.setAttribute("application","applicationMessage");// 获取请求域数据String reqMessage=(String)req.getAttribute("request");System.out.println("请求域 = "+reqMessage);// 请求转发req.getRequestDispatcher("servletB").forward(req,resp);}}
import jakarta.servlet.ServletContext;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import jakarta.servlet.http.HttpSession;import java.io.IOException;@WebServlet("/servletB")public classServletBextendsHttpServlet{protected voidservice(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{String reqMessage=(String)req.getAttribute("request");System.out.println("请求域 = "+reqMessage);// 获取会话域中的数据HttpSession session=req.getSession();String sessionMessage=(String)session.getAttribute("session");System.out.println("会话域 = "+sessionMessage);// 获取应用域中的数据ServletContext application=getServletContext();String appMessage=(String)application.getAttribute("application");System.out.println("应用域 = "+appMessage);}}


获取到请求域数据,打印servletA中请求域数据,然后请求转发,再打印

总结:

  1. 请求转发时,请求域可以传递数据
    请求域内一般放本次请求业务有关的数据,如:查询到的所有的部门信息
  2. 同一个会话内,不用请求转发,会话域可以传递数据
    会话域内一般放本次会话的客户端有关的数据,如:当前客户端登录的用户
  3. 同一个app内,不同的客户端,应用域可以传递数据
    应用域内一般放本程序应用有关的数据,如:Spring框架的IOC容器
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/30 9:29:39

FaceFusion实战教程:如何利用大模型Token实现高效推理

FaceFusion实战:用大模型Token驱动高效人脸推理 在短视频爆发、虚拟人崛起的今天,实时换脸技术早已不再是影视特效团队的专属工具。从直播间的虚拟主播到社交App里的趣味滤镜,高质量、低延迟的人脸编辑能力正成为AI应用的新基建。然而&#x…

作者头像 李华
网站建设 2026/10/30 12:42:19

FaceFusion能否用于古代帝王复原?基于史料画像生成

FaceFusion能否用于古代帝王复原?基于史料画像生成 在博物馆的展柜前,我们常常凝视着那些泛黄绢本上的帝王肖像——宽额长须、凤眼蚕眉,笔触工整却总带着几分程式化的距离感。这些由宫廷画师以“写真”之名绘制的形象,究竟在多大程…

作者头像 李华
网站建设 2026/10/29 15:39:25

企业如何落地持续学习文化:3个成功案例

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个企业持续学习案例库应用,包含:1.知名企业学习案例展示模块;2.学习文化建设工具包(含模板、checklist等)&#xf…

作者头像 李华
网站建设 2026/10/30 7:12:36

AI智能棋盘结合STC89C52驱动蜂鸣器提示落子

AI智能棋盘结合STC89C52驱动蜂鸣器提示落子在围棋教室里,一个孩子犹豫地放下一枚黑子,却不知这一手是否违反了“打劫”规则。没有老师即时指导,他只能反复试探——直到对面的AI棋盘发出一声清脆的“滴”,才确认这步合法&#xff1…

作者头像 李华
网站建设 2026/10/29 19:52:11

FaceFusion在游戏开发中的潜在用途探索

FaceFusion在游戏开发中的潜在用途探索 在现代游戏设计中,玩家对“真实感”和“代入感”的追求正以前所未有的速度演进。我们不再满足于操控一个预设形象去经历一段既定剧情——越来越多的玩家希望游戏角色能长着自己的脸、带着自己的表情,甚至随着岁月推…

作者头像 李华
网站建设 2026/10/30 6:43:31

PanguSync说明书

PanguSync说明书 目录 1.部署PanguSync软件的前提条件(重要) 2.云数据库部署注意事项 3.如何部署A ⇌B双向同步模式 4.如何部署A→B、A→C、A→D一主多备模式 5.如何部署A→B→C→D链式模式 6.如何跳过初始数据直接进行增量同步 7.如何重新同步某条数据 8.Sqls…

作者头像 李华