当前位置: 首页 > 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>
    

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

相关文章:

说一下 jsp 的 4 种作用域?

说一下 jsp 的 4 种作用域&#xff1f; 在 JSP&#xff08;JavaServer Pages&#xff09;中&#xff0c;有四种作用域&#xff0c;它们决定了对象的可见性和生命周期。这四种作用域分别是&#xff1a; 页面作用域&#xff08;Page Scope&#xff09;&#xff1a; 页面作用域表…...

性能分析与调优: Linux 使用ELRepo升级CentOS内核

目录 一、实验 1.环境 2.agent 服务器使用ELRepo升级CentOS内核 二、问题 1. RHEL-7, SL-7 或者 CentOS-7系统如何安装ELRepo 2.RHEL-8或者RHEL-9系统如何安装ELRepo 一、实验 1.环境 &#xff08;1&#xff09;主机 表1-1 主机 主机架构组件IP备注prometheus 监测 系…...

【【RTC实时时钟实验 -- 在HDMI上显示-FPGA 小实验】】

RTC实时时钟实验 – 在HDMI上显示 top.v module RTS_TOP#(parameter TIME_INIT 48h24_01_06_11_08_00 ,parameter WAIT_TIME 13d8000 ,parameter SLAVE_ADDR 7b1010001 , // E2PROM 浠庢満鍦板潃parameter CLK_FR…...

Flutter 图片和资源的高效使用指南

文章目录 指定资源什么是 [pubspec.yaml](https://dart.cn/tools/pub/pubspec) 文件 图片图片常用的配置属性加载本地图片通过 pubspec.yml 文件进行配置图片目录使用 Image.asset 小部件加载本地图片 加载网络图片通过 Image.network小部件加载网络图片&#xff1a;使用Image.…...

RedisTemplate 怎么获取到链接信息?怎么获取到所有key?怎么获取指定key?

获取Redis的链接信息&#xff1a; (RedisTemplate<String, ?> redisTemplate) {RedisConnectionFactory connectionFactory redisTemplate.getConnectionFactory();(!(connectionFactory LettuceConnectionFactory)) {System..println();;}LettuceConnectionFactory l…...

【Unity】动态申请权限

1、AndroidManifest.xml在<application></application>内添加一行&#xff1a; <meta-data android:name"unityplayer.SkipPermissionsDialog" android:value"true" /> 作用&#xff1a;屏蔽应用启动时弹出申请权限弹窗&#xff08;危…...

tp8/6 插件PhpOffice\PhpSpreadsheet导入表格

一、安装 composer require phpoffice/phpspreadsheet 官网&#xff1a;phpoffice/phpspreadsheet - Packagist 二、代码 <?php namespace app\services\upload\model; use app\services\BaseServices; use \PhpOffice\PhpSpreadsheet\Spreadsheet; use \PhpOffice\Php…...

Android studio VideoView 应用设计

一、运行效果: 二、新建empty activity项目: 三、打开activity_main.xml布局文件,添加VideoView: <VideoViewandroid:id="@+id/videoView"android:layout_width="368dp"android:layout_height="573dp"app:layout_constraintBottom_toBot…...

Python基础(十八、文件操作读取)

文章目录 一、open方法二、read和readlines方法三、readline方法四、关闭操作五、with open语句总结 一、open方法 Python 中可以使用 open 方法来打开一个文件&#xff0c;该方法会返回一个文件对象。open 方法的语法如下&#xff1a; file_object open(file_name, mode)其…...

Mac 16g约等于Windows多少g?

Mac 16g 内存等于 Windows 320g 内存 何为“黄金内存”&#xff1f; Mac 的内存是用黄金做的&#xff0c;而 Windows 的内存是用铁做的。 黄金的密度是 19.32 g/cm&#xff0c;而铁的密度是 7.874 g/cm。 因此&#xff0c;16g 的黄金体积是 0.082 cm&#xff0c;而 16g 的铁…...

快麦ERP退货借助APPlink快速同步CRM

什么是APPlink&#xff1f; APPlink是RestCloud打造的一款简单易用的零代码自动化集成平台&#xff0c;为业务流程提供自动化的解决方案&#xff0c;将企业内部的核心系统以及第三方应用程序和云服务等进行集成。无论是开发人员还是业务人员&#xff0c;都可以使用APPlink轻松…...

springMVC获取请求参数的方式

文章目录 springmvc获取参数的方式1、ServletAPI获取参数&#xff08;原生态&#xff09;2、通过控制器的形参取值3、 RequestParam4、通过POJO获取请求参数 springmvc获取参数的方式 1、ServletAPI获取参数&#xff08;原生态&#xff09; 将HttpServletRequest作为控制器方…...

android常用方法

获取应用安装来源 private String getAppInstaller(Context context, String packageName) {return context.getPackageManager().getInstallerPackageName(packageName);}判断是否系统应用 在/system/app 或者 /system/priv-app目录下的应用。 public boolean isSystem(Conte…...

Linux内核--网络协议栈(一)Socket通信原理和实例讲解

目录 一、引言 二、Socket ------>2.1、socket编程 ------>2.2、Socket的创建 三、收发数据 四、断开连接 五、删除套接字 六、网络 IO 一、引言 本章开始进入linux内核中网络部分的学习,先简单介绍一下socket套接字 二、Socket 一个数据包经由应用程序产生…...

Spring事务(2):声明式事务管理案例-转账(xml、注解)

1 编写转账案例&#xff0c;引出事务管理问题 需求&#xff1a;账号转账&#xff0c;Tom账号取出1000元&#xff0c;存放到Jack账号上 1.1 建表脚本&#xff08;MySQL&#xff09; CREATE TABLE t_account (id INT(11) NOT NULL AUTO_INCREMENT,name VARCHAR(20) NOT NULL,m…...

NACHI机器人模拟示教器如何切换中文

前言 现在开始学习机器人的编程语言&#xff0c;那么要学习会用首先得用模拟示教器来学习&#xff0c;但是全是英文确实比较难受一些些&#xff0c;没有中文来的直观。所以摸透一下如何给示教器更换语言。 具体步骤 步骤一&#xff1a;将中文的汉化包下载下来。具体的下载链…...

用通俗易懂的方式讲解:使用 Mistral-7B 和 Langchain 搭建基于PDF文件的聊天机器人

在本文中&#xff0c;使用LangChain、HuggingFaceEmbeddings和HuggingFace的Mistral-7B LLM创建一个简单的Python程序&#xff0c;可以从任何pdf文件中回答问题。 一、LangChain简介 LangChain是一个在语言模型之上开发上下文感知应用程序的框架。LangChain使用带prompt和few…...

综合智慧能源监测管理平台,实现能源管理“透明”化

能源问题是全球面临的最大问题&#xff0c;在提高经济增长的同时&#xff0c;也引发了能源供应危机及环境严重等问题&#xff0c;降低能源管理、低碳环保是我们未来发展的必经之路。 为了解决这一问题&#xff0c;智慧能源管理平台应运而生。平台采用微服务架构&#xff0c;整…...

【大数据进阶第三阶段之Datax学习笔记】使用阿里云开源离线同步工具DataX 实现数据同步

【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax概述 【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax快速入门 【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax类图 【大数据进阶第三阶段之Datax学习笔记】使用…...

kotlin chunked 和 windowed

kotlin chunked的作用 将集合按照指定的数量分割成多个结合 val numbers listOf(0,1,2,3,4,5,6,7,8,9) //把集合按照一个结合3个元素分割 Log.d("chunked", numbers.chunked(3).toString()) // 打印结果 [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]] kotlin windowed…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...

Python训练营-Day26-函数专题1:函数定义与参数

题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一个位置参数 radi…...