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

说一下 jsp 的 4 种作用域?

说一下 jsp 的 4 种作用域?

在 JSP(JavaServer Pages)中,有四种作用域,它们决定了对象的可见性和生命周期。这四种作用域分别是:

  1. 页面作用域(Page Scope):

    • 页面作用域表示对象的生命周期与当前 JSP 页面的请求处理周期相同。
    • 页面作用域中的对象只能在当前页面的多个地方访问。
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head><title>Page Scope Example</title>
    </head>
    <body><%@ page import="java.util.ArrayList" %><% // 在页面作用域中创建一个 ArrayList 对象ArrayList<String> pageList = new ArrayList<>();pageList.add("Item 1");pageContext.setAttribute("pageList", pageList);%><h1>Page Scope Example</h1><p>Items in pageList:</p><ul><% // 在页面作用域中获取并显示 ArrayList 对象ArrayList<String> retrievedList = (ArrayList<String>) pageContext.getAttribute("pageList");for (String item : retrievedList) {out.println("<li>" + item + "</li>");}%></ul>
    </body>
    </html>
    
  2. 请求作用域(Request Scope):

    • 请求作用域表示对象在同一个 HTTP 请求内是可见的。
    • 请求作用域中的对象可以在一个 JSP 页面和它所转发请求的下一个页面之间共享。
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head><title>Request Scope Example</title>
    </head>
    <body><%@ page import="java.util.HashMap" %><%// 在请求作用域中创建一个 HashMap 对象HashMap<String, String> requestMap = new HashMap<>();requestMap.put("key1", "Value 1");request.setAttribute("requestMap", requestMap);%><h1>Request Scope Example</h1><p>Value for key1: <%= request.getAttribute("requestMap").get("key1") %></p>
    </body>
    </html>
    
  3. 会话作用域(Session Scope):

    • 会话作用域表示对象在用户的整个会话期间是可见的,即用户打开浏览器到关闭浏览器。
    • 会话作用域中的对象可以在一个 Web 应用程序的不同页面之间共享。
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head><title>Session Scope Example</title>
    </head>
    <body><%@ page import="java.util.HashSet" %><%// 在会话作用域中创建一个 HashSet 对象HashSet<String> sessionSet = new HashSet<>();sessionSet.add("Item A");session.setAttribute("sessionSet", sessionSet);%><h1>Session Scope Example</h1><p>Items in sessionSet:</p><ul><%// 在会话作用域中获取并显示 HashSet 对象HashSet<String> retrievedSet = (HashSet<String>) session.getAttribute("sessionSet");for (String item : retrievedSet) {out.println("<li>" + item + "</li>");}%></ul>
    </body>
    </html>
    
  4. 应用程序作用域(Application Scope):

    • 应用程序作用域表示对象在整个 Web 应用程序的生命周期内是可见的,即从应用程序启动到关闭。
    • 应用程序作用域中的对象可以在一个 Web 应用程序的所有页面之间共享。
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head><title>Application Scope Example</title>
    </head>
    <body><%@ page import="java.util.LinkedHashMap" %><%// 在应用程序作用域中创建一个 LinkedHashMap 对象LinkedHashMap<String, String> appMap = new LinkedHashMap<>();appMap.put("keyX", "Value X");application.setAttribute("appMap", appMap);%><h1>Application Scope Example</h1><p>Value for keyX: <%= application.getAttribute("appMap").get("keyX") %></p>
    </body>
    </html>
    

这些示例演示了如何在不同的作用域中存储和获取数据,以及数据在不同页面之间的共享。作用域的选择应该基于数据的生命周期和可见性的需求。

http://www.lryc.cn/news/275792.html

相关文章:

  • 性能分析与调优: Linux 使用ELRepo升级CentOS内核
  • 【【RTC实时时钟实验 -- 在HDMI上显示-FPGA 小实验】】
  • Flutter 图片和资源的高效使用指南
  • RedisTemplate 怎么获取到链接信息?怎么获取到所有key?怎么获取指定key?
  • 【Unity】动态申请权限
  • tp8/6 插件PhpOffice\PhpSpreadsheet导入表格
  • Android studio VideoView 应用设计
  • Python基础(十八、文件操作读取)
  • Mac 16g约等于Windows多少g?
  • 快麦ERP退货借助APPlink快速同步CRM
  • springMVC获取请求参数的方式
  • android常用方法
  • Linux内核--网络协议栈(一)Socket通信原理和实例讲解
  • Spring事务(2):声明式事务管理案例-转账(xml、注解)
  • NACHI机器人模拟示教器如何切换中文
  • 用通俗易懂的方式讲解:使用 Mistral-7B 和 Langchain 搭建基于PDF文件的聊天机器人
  • 综合智慧能源监测管理平台,实现能源管理“透明”化
  • 【大数据进阶第三阶段之Datax学习笔记】使用阿里云开源离线同步工具DataX 实现数据同步
  • kotlin chunked 和 windowed
  • C语言光速入门笔记
  • Flutter+Go_Router+Fluent_Ui仿阿里网盘桌面软件开发跨平台实战-买就送仿小米app开发
  • 内联函数的作用
  • Simpy简介:python仿真模拟库-02/5
  • Kafka高级应用:如何配置处理MQ百万级消息队列?
  • LIN总线学习笔记(1)-总线传输规范
  • Qt界面篇:Qt停靠控件QDockWidget、树控件QTreeWidget及属性控件QtTreePropertyBrowser的使用
  • H266/VVC网络适配层概述
  • new FormData 同时发送表单 json 以及文件二进制流
  • 计算机环境安全
  • Activiti7工作流引擎:多租户