其他更多java基础文章:

java基础学习(目录)

一、EL表达式

EL 全名为Expression Language。JSP中可以使用EL表达式,EL表达式是用"${}"括起来的脚本,用来更方便地读取对象,EL表达式写在JSP的HTML代码中,而不能写在""引起的JSP脚本中

EL表达式的功能:

获取数据:EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)

执行运算:利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。${user==null}

获取web开发常用对象:EL 表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。

调用Java方法:EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。

1.1、获取数据

使用EL表达式获取数据语法:"${标识符}"

EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。

${abc}

EL表达式可以很轻松获取JavaBean的属性,或获取数组、Collection、Map类型集合的数据。${requestScope.emp.address.street}

1.2、执行运算

语法:${运算表达式},EL表达式支持如下运算符:

1)关系运算发

2)逻辑运算符

3)empty运算符:检查对象是否为null(空),${!empty(list)}

4)二元表达式:${user!=null?user.name :""}

5)[ ] 和 . 号运算符

1.3、获得web开发常用对象

EL表达式语言中定义了11个隐含对象,使用这些隐含对象可以很方便地获取web开发中的一些常见对象,并读取这些对象的数据。

分析:

pageScope、requestScope、sessionScope、applicationScope代表四个作用域对象(用于保存属性的Map对象)

pageContext:表示的是JSP中内置对象pageContext,能获取request等其他JSP八大内置对象

param:表示一个请求参数, ${param.username}等效 request.getParameter("username");(表示一个保存了所有请求参数的Map对象)

paramValues:表示一组请求参数,${paramValues.abc}等效request.getParameterValues("abc");这种多选框(表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[])

header:表示一个请求头,${header.referer}等效request.getHeader("referer");

headerValues:表示一组请求头,${header.cookie}等效 request.getHeaders("cookie");获取的请求头参数中的内容是一组内容,比如cookie就有可以是多个cookie一起传过来

cookie:获得cookie对象(表示一个保存了所有cookie的Map对象)

initPatam:web项目初始化参数,servletContext.getInitParameter("xxx");(表示一个保存了所有web应用初始化参数的map对象)

注意1:还有一种特殊的用法,直接获取对象变量${user.username},user为User的一个实例对象,并且存放在page作用域中,上面这句代码的意思是,依次从page、request、session、application作用域查找user对象,直到找到为止,底层使用的是pageContext.findAttribute(); 是一样的效果。

注意2:测试header和headerValues或者有些参数时,如果头里面有“-” ,例Accept-Encoding,则要header["Accept-Encoding"]、headerValues["Accept-Encoding"]

测试cookie时,例${cookie.key}取的是cookie对象,如访问cookie的名称和值,须${cookie.key.name}或${cookie.key.value}

二、总结

EL表达式比较简单,使用它的目的是为了减少JSP脚本,尽量不要在HTML中嵌入Java代码,显的很混乱,而在HTML中使用EL表达式,就比较好来获取JSP中各种对象,获取四大作用域中的值,

如果要获取四大作用域中的数据,则可以使用

{pageScope.xxx}

如果想要获取请求参数,则使用param或paramValues

如果想要获取请求头中的一些信息,获取想要获取Servlet的一些对象,比如request、session等,可以使用pageContext来获取request对象,然后在获取所需要的信息,或者直接使用header对象来获取头信息

如果想获取web初始化参数,则使用initPatam。

最主要的是要记得EL中有哪11个内置对象,知道了他们就知道了EL可以获取哪些信息。

el表达式 java_java基础学习:JavaWeb之EL表达式相关推荐

  1. 8.Python基础学习笔记day8-正则表达式、网络编程、进程与线程

    8.Python基础学习笔记day8-正则表达式.网络编程.进程与线程 一.正则表达式 ''' 1. [1,2,3,4]中任意取3个元素排列: A43 = 4x3x2 = 24itertools.pe ...

  2. point类型的数组java_Java基础学习之引用类型数组访问NullPoint问题

    以题目引入: 面试题:int[] a = new int[10];Student[] a = new Student[10];的区别? 解析: 第一反应就是内存空间方面的保存位置不同,因为Java中保 ...

  3. Supplier JAVA_Java基础学习之函数式编程Supplier接口(JDK8)

    前言 今天带大家领略一下Supplier接口大道至简的魅力. 1.源码 @FunctionalInterface public interface Supplier { /*** Gets a res ...

  4. TCL/Tk基础学习(二)

    TCL/TK基础学习(二) 表达式 算术操作符 关系.逻辑.按位.选择操作符 函数 表达式 Tcl表达式由操作符.操作数.圆括号等构成.于C语言.verilog用法几乎相同. # 算术操作符.逻辑运算 ...

  5. El 表达式、jstl学习

    El 表达式学习 1. 什么是 EL 表达式 全称:Expression Language,一种写法非常简介的表达式.语法简单易懂,便于使用.表达式语言的灵感来自于 ECMAScript 和XPath ...

  6. javaweb之EL表达式和JSTL(总体第七篇)

    之前已经学习到我们Javaweb之Servlet,本文也是总体复习笔记的第七篇,有需要的朋友可以参考我主页的javaweb目录,参考其他笔记 一.EL语法学习 1.介绍搭建实验环境 (1)什么是EL表 ...

  7. javaweb(09) EL表达式JSTL标签库(jsp相关,了解)

    javaweb(09) EL表达式&JSTL标签库(jsp相关,了解) EL表达式 简介和基本使用 EL 表达式的全称是:Expression Language.是表达式语言. EL 表达式的 ...

  8. JavaWeb核心|EL表达式JSTLFilterListener

    文章目录 一.EL 表达式 1.1 EL表达式介绍 1.2 EL表达式快速入门 1.3 EL表达式获取数据 1.4 EL表达式运算符 1.5 EL表达式使用细节 1.6 EL表达式隐式对象 二.JST ...

  9. 视频教程-JAVAEE真实课堂系列之JSP+EL+JSTL-云计算基础架构

    JAVAEE真实课堂系列之JSP+EL+JSTL 刘志远,北京邮电大学硕士研究生, 北京育华志远科技有限公司创始人, 育华志远教育品牌负责人,育华志远课程体系打造者. 率领团队为互联网行业培训千余名学 ...

最新文章

  1. 一份整理 | PyTorch是什么,为何选择它
  2. .PHONY makefile中的伪目标
  3. 2021 年技术 5 大趋势
  4. 安卓APP_ 控件(7)——Toolbar栏目样式
  5. html实现图片加载动画效果,HTML5+javascript实现图片加载进度动画效果
  6. ABC + DEF = GHI //递归思想的充分体现(重难点)
  7. 数据库系统基础教程(1)数据库系统世界
  8. 第十四届全国大学生信息安全竞赛部分wp
  9. python 爬虫 爬取 小米有品 全网 商品数据
  10. 中征征信java_征信接口调用,解析(xml)
  11. Apache 安装虚拟主机
  12. mybatis(一)MyBatis Generator
  13. 最小二乘估计的Matlab仿真
  14. Grip编辑器增强版(UG二次开发工具,最好用的Grip编辑器,没有之一)
  15. 白嫖 IObit 系列软件例如 IObit Uninstaller
  16. php微信卡券接口,核销卡券
  17. SpringBoot之AOP面向切面编程
  18. 微生物如何影响我们的生活
  19. js 根据出生年月计算年龄 精确到天
  20. matlab pca coeff,matlab_PCA,训练集与测试集分开,原理和用法

热门文章

  1. Bio-protocol与Cell Research达成合作:共同提升科研的可重复性
  2. Science综述:人类与微生物共进退
  3. 来者不拒,“昊”课等你——直播微生物篇
  4. EggNOG功能注释数据库在线和本地使用
  5. 宏基因组学习交流4群成立
  6. R语言使用ggplot2可视化凹凸图(bumps chart、凹凸图是一种特殊形式的线图,旨在探索随着时间的推移等级的变化)、并设置凹凸图的线条为曲线而不是直线(change into curves)
  7. R语言vtreat包的mkCrossFrameCExperiment函数交叉验证构建数据处理计划并进行模型训练、通过显著性进行变量筛选(删除相关性较强的变量)、构建多变量模型、转化为分类模型、模型评估
  8. R语言gganimate包创建可视化gif动图、可视化动图:创建动态散点图动画基于transition_time函数、使用shadow_wake函数配置动画的渐变效果(gradual falloff)
  9. Error in bl_make_text_box(token, drawing_context$gp, drawing_context$yoff_pt) : function ‘Rcpp_preci
  10. R语言deplyr包complete.cases函数查看数据缺失情况实战