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

【JavaWeb】EL表达式

目录

1.EL表达式概述

2.EL表达式运算

3.EL表达式操作对象

4.EL表达式内置对象

4.1.参数隐藏对象

4.2.域隐藏对象

4.3.PageContext对象


1.EL表达式概述

EL(Expression Language)是一门表达式语言,它对应<%= ... %>。在JSP中,表达式会被输出,所以EL表达式也会被输出

EL表达式的格式:${ ... },例如:${1+2}

在使用EL表达式时,要求page指令的isELIgnored属性为false。这样JSP在编译成.java时才不会忽略EL表达式

如果希望某个EL表达式被JSP编译器忽略,那么可以在EL表达式之前添加“\”,例如:${1+2}

2.EL表达式运算

运算符说明范例结果
+${17+5}22
-${17-5}12
*${17*5}85
/或div${17/5}或${17 div 5}3
%或mod取余${17%5}或${17 mod 5}2
==或eq等于${5==5}或${5 eq 5}TRUE
!=或ne不等于${5!=5}或${5 ne 5}FALSE
<或lt小于${3<5}或${3 lt 5}TRUE
>或gt大于${3>5}或${3 gt 5}FALSE
<=或le小于等于${3<=5}或${3 le 5}TRUE
>=或ge大于等于${3>=5}或${3 ge 5}FALSE
&&或and并且${true&&false}或${true and false}FALSE
!或not${!true}或${not true}FALSE
||或or或者${true||false}或${true or false}TRUE
empty是否为空${empty “”},可以判断字符串、数组、集合的长度是否为0,为0返回true。empty还可以与not或!一起使用。${not empty “”}TRUE

3.EL表达式操作对象

操作变量和常量:${name}、${8}

操作List和数组:${list[0]}、${arr[0]}

操作bean的属性:${person.name}等价于${person['name']},对应person.getName()

操作Map的值:${map.key}等价于${map['key']},对应map.get(key)

4.EL表达式内置对象

在EL表达式中,无需创建就可以使用的对象称为EL隐藏对象(内置对象)。在EL中一共有11个隐藏对象,它们都与Map(key-value)相似。其中10个是Map,1个是PageContext

4.1.参数隐藏对象

  • param

param是Map<String, String>类型,param对象可以用来获取参数,与request.getParameter()方法相同

在使用EL获取参数时,如果参数不存在,返回的是空字符串,而不是null。这一点与request.getParameter()方法不同

  • paramValue

paramValues是Map<String, String[]>类型,当一个参数名对应多个参数值时可以使用它

  • header

header是Map<String, String>类型,用来获取请求头

  • headerValues

headerValues是Map<String, String[]>类型。当一个请求头名称对应多个值时使用该对象

  • initParam

initParam是Map<String, String>类型,它对应web.xml文件中的<context-param>参数

  • cookie

cookie是Map<String, Cookie>类型,其中key是Cookie的名字,而值是Cookie对象本身

4.2.域隐藏对象

使用EL表达式最为常用的就是获取域对象中保存的数据,例如:${pageScope.xxx},表示获取在pageContext保存的数据。当然它和${pageScope['xxx']}是等价的

  • pageScope

pageScope是Map<String, Object>类型,${pageScope.xxx}的功能等同于pageContext.getAttribute("xxx"),两者的区别在于,前者在数据不存在的=时返回空字符串,后者返回null

  • requestScope

requestScope是Map<String, Object>类型,装载了request对象中的所有数据

  • sessionScope

sessionScope是Map<String, Object>类型,装载了session对象中的所有数据

  • applicationScope

applicationScope是Map<String, Object>类型,装载了application对象中的所有数据

当EL中给出的不是隐藏对象时,表示在四个域中查找数据,例如;${a}表示:

  • 在${pageScope.a}中查找,如果找到就返回

  • 在${requestScope.a}中查找,如果找到就返回

  • 在${sessionScope.a}中查找,如果找到就返回

  • 在${applicationScope.a}中查找,如果找到就返回,找不到就返回空字符串

4.3.PageContext对象

  • pageContext

pageContext是PageContext类型,可以使用pageContext对象调用getXXX()方法,例如:${pageContext.request}即pageContext.getRequest

Expression说明
${pageContext.request.queryString}pageContext.getRequest().getQueryString();
${pageContext.request.requestURL}pageContext.getRequest().getRequestURL();
${pageContext.request.contextPath}pageContext.getRequest().getContextPath();
${pageContext.request.method}pageContext.getRequest().getMethod();
${pageContext.request.protocol}pageContext.getRequest().getProtocol();
${pageContext.request.remoteUser}pageContext.getRequest().getRemoteUser();
${pageContext.request.remoteAddr}pageContext.getRequest().getRemoteAddr();
${pageContext.session.new}pageContext.getSession().isNew();
${pageContext.session.id}pageContext.getSession().getId();
${pageContext.servletContext.serverInfo}pageContext.getServletContext().getServerInfo();

相关文章:

【JavaWeb】EL表达式

目录 1.EL表达式概述 2.EL表达式运算 3.EL表达式操作对象 4.EL表达式内置对象 4.1.参数隐藏对象 4.2.域隐藏对象 4.3.PageContext对象 1.EL表达式概述 EL&#xff08;Expression Language&#xff09;是一门表达式语言&#xff0c;它对应<% ... %>。在JSP中&…...

Angular由一个bug说起之十三:Cross Origin

跨域 想要了解跨域&#xff0c;首要要了解源 什么是源&#xff0c;源等于协议加域名加端口号 只有这三个都相同&#xff0c;才是同源&#xff0c;反之则是非同源。 比如下面这四个里&#xff0c;只有第4个是同源 而浏览器给服务器发送请求时&#xff0c;他们的源一样&#xff0…...

WEB前端-2

目录 HTML-常见的网页标签-分类2 语义化标签 列表标签 表单标签 form标签 input标签 select标签 textarea标签 html转义符 h5提供的新标签 【例3&#xff1a;豆瓣电影】 【源码】 【例4&#xff1a;登录注册】 【源码】 【例5&#xff1a;QQ注册】 【源码】 H…...

高斯混合模型 (Gaussian Mixture Model, GMM) 算法详解与PyTorch实现

高斯混合模型 (Gaussian Mixture Model, GMM) 算法详解与PyTorch实现 目录 高斯混合模型 (Gaussian Mixture Model, GMM) 算法详解与PyTorch实现1. 高斯混合模型 (GMM) 算法概述1.1 高斯分布1.2 GMM的优势2. GMM的核心技术2.1 模型定义2.2 参数估计2.3 损失函数3. PyTorch实现G…...

web作业

作业一 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Document</title> </head&g…...

Tauri教程-基础篇-第一节 Tauri项目创建及结构说明

“如果结果不如你所愿&#xff0c;就在尘埃落定前奋力一搏。”——《夏目友人帐》 “有些事不是看到了希望才去坚持&#xff0c;而是因为坚持才会看到希望。”——《十宗罪》 “维持现状意味着空耗你的努力和生命。”——纪伯伦 Tauri 技术教程 * 第四章 Tauri的基础教程 第一节…...

计算机网络之---物理层标准与协议

常见的物理层标准 1. IEEE 802 标准 IEEE 802 是一系列定义局域网和城域网通信协议的标准&#xff0c;其中许多标准涉及到物理层的技术细节&#xff1a; IEEE 802.3 (Ethernet)&#xff1a;定义了以太网的物理层规范&#xff0c;规定了如何通过电缆&#xff08;例如同轴电缆…...

Idea日志乱码

问题描述 前提&#xff1a;本人使用windows Idea运行sh文件&#xff0c;指定了utf-8编码&#xff0c;但是运行过程中还是存在中文乱码 Idea的相关配置都已经调整 字体调整为雅黑 文件编码均调整为UTF-8 调整Idea配置文件 但是还是存在乱码&#xff0c;既然Idea相关配置已经…...

tk GMV MAX素材范围投放指南

Product GMy Max素材范围说明 Product GMy Max能自动获取带有相关商品锚点链接&#xff08;无论是单个锚点还是多个锚点&#xff09;的视频&#xff0c;并将其用于推广特定商品的广告素材&#xff0c;前提是这些视频已经获得广告授权。然而&#xff0c;请注意&#xff0c;多个…...

TANGO - 数字人全身动作生成

文章目录 一、关于 TANGO演示视频&#xff08;YouTube&#xff09;&#x1f4dd;发布计划 二、⚒️安装克隆存储库构建环境 三、&#x1f680;训练和推理1、推理2、为自定义字符创建图形 一、关于 TANGO TANGO 是 具有分层音频运动嵌入 和 扩散插值的共语音手势视频再现 由东…...

springboot集成整合工作流,activiti审批流,整合实际案例,流程图设计,流程自定义,表单配置自定义,代码demo流程

前言 activiti工作流引擎项目&#xff0c;企业erp、oa、hr、crm等企事业办公系统轻松落地&#xff0c;一套完整并且实际运用在多套项目中的案例&#xff0c;满足日常业务流程审批需求。 一、项目形式 springbootvueactiviti集成了activiti在线编辑器&#xff0c;流行的前后端…...

Windows 10 ARM工控主板连接I2S音频芯片

在Windows工控主板应用中&#xff0c;音频功能是一项基本的需求&#xff0c;USB声卡在x86/x64 Windows系统上就可直接免驱使用&#xff0c;但这些USB声卡通常不提供ARM上的Windows系统驱动。本文将介绍如何利用安装在ARM上的Windows工控主板——ESM8400的I2S接口、连接WM8960音…...

单元测试MockitoExtension和SpringExtension

1. MockitoExtension MockitoExtension 是 JUnit 5 提供的一个扩展&#xff0c;用于支持 Mockito 的集成。它可以自动初始化标记为 Mock、InjectMocks 等的 Mockito 对象&#xff0c;而不需要显式调用 MockitoAnnotations.initMocks(this)。 主要特点: 自动初始化 Mock、Spy…...

网络安全 | WAF防护开通流程与技术原理详解

关注&#xff1a;CodingTechWork 引言 随着互联网安全形势的日益严峻&#xff0c;Web应用防火墙&#xff08;WAF, Web Application Firewall&#xff09;逐渐成为网站和应用的标准防护措施。WAF能够有效识别和防止如SQL注入、跨站脚本攻击&#xff08;XSS&#xff09;、恶意流…...

模型 断裂点理论(风险控制)

系列文章 分享模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。设置小损失&#xff0c;防止大风险。 1 断裂点理论的应用 1.1 电路系统中的保险丝应用 背景介绍&#xff1a; 在工程学中&#xff0c;电路系统是现代科技中不可或缺的一部分&#xff0c;广泛应用于各…...

02.MPLS动态LSP配置实验

MPLS动态LSP配置实验 MPLS动态LSP配置实验基本配置MPLS部分查看LDP会话基本信息查看详细信息查看MPLS动态LSP配置实验 基本配置 接口地址和OSPF配置,省略!全网互通! 注意:8.8.8.8和9.9.9.9也要宣告! MPLS部分 [ar1]mpls lsr-id 1.1.1.1 [ar1]mpls Info: Mpls starting,…...

MySQL 中的Buffer Pool

深入解析 MySQL Buffer Pool&#xff1a;优化数据库性能的核心 引言 在关系型数据库管理系统&#xff08;RDBMS&#xff09;中&#xff0c;磁盘I/O通常是性能瓶颈之一。为了缓解这个问题&#xff0c;MySQL的InnoDB存储引擎引入了Buffer Pool这一概念。Buffer Pool作为内存中的…...

修复微pe系统uefi引导损坏windows failed to start...

打开微pe,点右下角生成iso镜像 再打开iso镜像,把里面所有文件复制到微pe启动盘的EFI分区(使用diskgenius才能看到该分区) 虚拟机启动测试...

【Vue3中使用crypto-js】crypto-js加密解密用法

目录 1、安装crypto2、创建crypto.js文件3、在main.js主文件中进行引用4、页面中进行使用5、实现效果展示6、加密模式解析以及iv参数使用 1、安装crypto npm install crypto-js 如果是在Typescript版本需要再安装 npm install --save types/crypto-js2、创建crypto.js文件 注…...

JavaWeb开发(九)JSP技术

1. JavaWeb JSP技术 1.1. JSP简介 1.1.1. 什么是JSP JSP全名为Java Server Page 是为了简化servlet的工作而出现的替代品。在JSP中java代码与HTML共同存在&#xff0c;其中HTML代码用于展示静态的内容&#xff0c;java代码用来展示动态的内容。 1.1.2. 为什么出现JSP技术 19…...

嵌入式文件传输协议:Xmodem/Ymodem原理与应用实践

1. 嵌入式文件传输协议概述在工业控制、航天探测、物联网设备等嵌入式应用场景中&#xff0c;文件传输是最基础也最关键的通信需求之一。从简单的单片机固件升级&#xff0c;到复杂的卫星图像回传&#xff0c;都需要稳定可靠的文件传输机制作为支撑。作为一名嵌入式开发工程师&…...

OpenClaw调试技巧:Phi-3-vision-128k-instruct视觉任务失败原因分析

OpenClaw调试技巧&#xff1a;Phi-3-vision-128k-instruct视觉任务失败原因分析 1. 问题背景与现象描述 上周我在尝试用OpenClaw对接Phi-3-vision-128k-instruct模型处理一组产品截图时&#xff0c;遇到了令人困惑的识别失败问题。明明人眼能清晰辨认的界面元素&#xff0c;模…...

e1547:重新定义e621浏览体验的现代化客户端解决方案

e1547&#xff1a;重新定义e621浏览体验的现代化客户端解决方案 【免费下载链接】e1547 A sophisticated e621 browser 项目地址: https://gitcode.com/gh_mirrors/e1/e1547 你是否曾在浏览e621社区时感到界面混乱、功能分散&#xff1f;是否期望一个能够提供个性化内容…...

从社交推荐到药物发现:GAT(图注意力网络)在5个工业级场景下的落地实践

从社交推荐到药物发现&#xff1a;GAT在5个工业级场景下的落地实践 当AlphaFold2用图神经网络破解蛋白质折叠难题时&#xff0c;工业界突然意识到&#xff1a;图注意力网络&#xff08;GAT&#xff09;早已不再是学术玩具。在社交平台每天处理数十亿次关系推理的推荐系统里&…...

2026届毕业生推荐的十大AI辅助论文平台解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 于学术写作范畴之内&#xff0c;论文AI工具已然变成提高研究效率的关键辅助法子。当下主流工…...

Karpathy 开源了 Agent + Obsidian 个人知识库, 超级有启发

Andrej Karpathy 前两天发了条推文&#xff0c;讲他最近用 LLM 管理个人知识库的一个新玩法。 很多人非常受启发。 然后他把这个思路整理成了一个 Gist&#xff0c;现在已经大几千的 Star 了。 说实话这个思路确实有意思。 而且&#xff0c;从去年年底开始&#xff0c;我也开…...

BaiduPCS-Web完全指南:彻底告别百度网盘限速的终极解决方案

BaiduPCS-Web完全指南&#xff1a;彻底告别百度网盘限速的终极解决方案 【免费下载链接】baidupcs-web 项目地址: https://gitcode.com/gh_mirrors/ba/baidupcs-web 还在为百度网盘令人绝望的下载速度而烦恼吗&#xff1f;当你急需下载重要文件时&#xff0c;几十KB/s的…...

手柄映射的艺术:RetroArch输入系统深度解析与实战指南

手柄映射的艺术&#xff1a;RetroArch输入系统深度解析与实战指南 【免费下载链接】RetroArch Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3. 项目地址: https://gitcode.com/GitHub_Trending/re/RetroArch 问题发现&#xff1a;当手柄…...

从零到一:手把手教你用TruckSim搭建你的第一辆虚拟牵引车模型

从零到一&#xff1a;手把手教你用TruckSim搭建你的第一辆虚拟牵引车模型 第一次打开TruckSim时&#xff0c;面对密密麻麻的参数和复杂的界面&#xff0c;很多新手会感到无从下手。作为一款专业的商用车动力学仿真软件&#xff0c;TruckSim确实有一定的学习门槛&#xff0c;但掌…...

LANCZOS智能压缩+RGB自动转换:Anything to RealCharacters预处理模块详解

LANCZOS智能压缩RGB自动转换&#xff1a;Anything to RealCharacters预处理模块详解 1. 项目概述 Anything to RealCharacters是一款专为RTX 4090显卡设计的2.5D转真人图像转换系统。该系统基于通义千问Qwen-Image-Edit-2511图像编辑模型&#xff0c;集成了专门优化的写实化权…...