1.EL表达式
1.1什么是EL表达式,EL表达式的作用是什么?
EL 表达式的全称是:Expression Language。是表达式语言。
EL 表达式的什么作用:EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。(代替表达式脚本,不代替java语句脚本)
因为 EL 表达式在输出数据的时候,要比 jsp 的表达式脚本要简洁很多。

<body>
<%
request.setAttribute("key"," 值"); 传统的表达式脚本方法,没有值会输出null
%>
表达式脚本输出key的值是:
<%=request.getAttribute("key1")==null?"":request.getAttribute("key1")%><br/> 三目运算符判断是否,
EL 表达式输出 key 的值是:${key1} 使用EL表达式,没有值不输出
</body>

EL 表达式的格式是:${表达式}
EL 表达式在输出 null 值的时候,输出的是空串。jsp 表达式脚本输出 null 值的时候,输出的是 null 字符串。

1.2EL表达式搜索御数据的顺序
当四个域中都有相同的 key 的数据的时候,EL 表达式会按照四个域的从小到大的顺序去进行搜索,找到就输出
1.pageContext
2.request
3.session
4.application

1.3EL 表达式输出 Bean 的普通属性,数组属性。List 集 合属性, 合属性,map 集合属性 集合属性

public class Person {// i. 需求 —— 输出 Person 类中普通属性,数组属性。 list 集合属性和 map 集合属性。
private String name;
private String[] phones;
private List<String> cities;
private Map<String,Object> map;
public int getAge() {return 18;
}
<body>
<%
Person person = new Person();
person.setName(" 国哥好帅!");
person.setPhones(new String[]{"18610541354","18688886666","18699998888"});
List<String> cities = new ArrayList<String>();
cities.add(" 北京");
cities.add(" 上海");
cities.add(" 深圳");
person.setCities(cities);
Map<String,Object>map = new HashMap<>();
map.put("key1","value1");
map.put("key2","value2");
map.put("key3","value3");
person.setMap(map);
pageContext.setAttribute("p", person);
%>
输出 Person:${ p }<br/>
输出 Person 的 name 属性:${p.name} <br>
输出 Person 的 pnones 数组属性值:${p.phones[2]} <br>
输出 Person 的 cities 集合中的元素值:${p.cities} <br>
输出 Person 的 List 集合中个别元素值:${p.cities[2]} <br>
输出 Person 的 Map 集合: ${p.map} <br>
输出 Person 的 Map 集合中某个 key 的值: ${p.map.key3} <br>
输出 Person 的 age 属性:${p.age} <br>
</body>

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

4.1关系运算
4.2逻辑运算
4.3算数运算
empty运算:
empty 运算可以判断一个数据是否为空,如果为空,则输出 true,不为空输出 false。
以下几种情况为空:
1、值为 null 值的时候,为空
2、值为空串的时候,为空
3、值是 Object 类型数组,长度为零的时候
4、list 集合,元素个数为零
5、map 集合,元素个数为零

<body>
<%
// 1 、值为 null 值的时候,为空
request.setAttribute("emptyNull", null);
// 2 、值为空串的时候,为空
request.setAttribute("emptyStr", "");
// 3 、值是 Object 类型数组,长度为零的时候
request.setAttribute("emptyArr", new Object[]{});
// 4 、 list 集合,元素个数为零
List<String> list = new ArrayList<>();
// list.add("abc");
request.setAttribute("emptyList", list);
// 5 、 map 集合,元素个数为零
Map<String,Object> map = new HashMap<String, Object>();
// map.put("key1", "value1");
request.setAttribute("emptyMap", map);
%>
${ empty emptyNull } <br/>
${ empty emptyStr } <br/>
${ empty emptyArr } <br/>
${ empty emptyList } <br/>
${ empty emptyMap } <br/>
</body>

三元运算符:

表达式 1?表达式 2:表达式 3
如果表达式 1 的值为真,返回表达式 2 的值,如果表达式 1 的值为假,返回表达式 3 的值。
示例:
${ 12 != 12 ? " dui":" cuo" }

iii. “ . ”算 点运算 和 和 [] 中括号运算符

.点运算,可以输出 Bean 对象中某个属性的值。
[]中括号运算,可以输出有序集合中某个元素的值。
并且[]中括号运算,还可以输出 map 集合中 key 里含有特殊字符的 key 的值。

<body>
<%
Map<String,Object> map = new HashMap<String, Object>();
map.put("a.a.a", "aaaValue");
map.put("b+b+b", "bbbValue");
map.put("c-c-c", "cccValue");
request.setAttribute("map", map);
%>
${ map['a.a.a'] } <br>
${ map["b+b+b"] } <br>
${ map['c-c-c'] } <br>
</body>

5.EL 表达式的 11 个隐含对象

EL达式中 11 个隐含对象,是 EL 表达式中自己定义的,可以直接使用。
变量             类型                作用
pageContext PageContextImpl 它可以获取 jsp 中的九大内置对象
pageScope Map<String,Object> 它可以获取 pageContext 域中的数据
requestScope Map<String,Object> 它可以获取 Request 域中的数据
sessionScope Map<String,Object> 它可以获取 Session 域中的数据
applicationScope Map<String,Object> 它可以获取 ServletContext 域中的数据
param Map<String,String> 它可以获取请求参数的值
paramValues Map<String,String[]> 它也可以获取请求参数的值,获取多个值的时候使用。
header Map<String,String> 它可以获取请求头的信息
headerValues Map<String,String[]> 它可以获取请求头的信息,它可以获取多个值的情况
cookie Map<String,Cookie> 它可以获取当前请求的 Cookie 信息

5.1EL 获取四个特定域中的属性

pageScope ====== pageContext 域
requestScope ====== Request 域
sessionScope ====== Session 域
applicationScope ====== ServletContext 域

5.2. pageContext 对象的使用

  1. 协议:
  2. 服务器 ip:
  3. 服务器端口:
  4. 获取工程路径:
  5. 获取请求方法:
  6. 获取客户端 ip 地址:
  7. 获取会话的 id 编号:
<body>
<%--
request.getScheme() 它可以获取请求的协议
request.getServerName() 获取请求的服务器 ip 或域名
request.getServerPort() 获取请求的服务器端口号
getContextPath() 获取当前工程路径
request.getMethod() 获取请求的方式( GET 或 POST )
request.getRemoteHost() 获取客户端的 ip 地址
session.getId() 获取会话的唯一标识
--%>
<%
pageContext.setAttribute("req", request);
%>
<%=request.getScheme() %> <br>
1.协议: ${ req.scheme }<br>
2.服务器 ip:${ pageContext.request.serverName }<br>
3.服务器端口:${ pageContext.request.serverPort }<br>
4.获取工程路径:${ pageContext.request.contextPath }<br>
5.获取请求方法:${ pageContext.request.method }<br>
6.获取客户端 ip 地址:${ pageContext.request.remoteHost }<br>
7.获取会话的 id 编号:${ pageContext.session.id }<br>
</body>

5.3EL 表达式其他隐含对象的使用
param Map<String,String> 它可以获取请求参数的值
paramValues Map<String,String[]> 它也可以获取请求参数的值,获取多个值的时候使用。

输出请求参数 username 的值:${ param.username } <br>
输出请求参数 password 的值:${ param.password } <br>
输出请求参数 username 的值:${ paramValues.username[0] } <br>
输出请求参数 hobby 的值:${ paramValues.hobby[0] } <br>
输出请求参数 hobby 的值:${ paramValues.hobby[1] } <br>

header Map<String,String> 它可以获取请求头的信息
headerValues Map<String,String[]> 它可以获取请求头的信息,它可以获取多个值的情况

输出请求头【User-Agent】的值:${ header['User-Agent'] } <br>
输出请求头【Connection】的值:${ header.Connection } <br>
输出请求头【User-Agent】的值:${ headerValues['User-Agent'][0] } <br>

cookie Map<String,Cookie> 它可以获取当前请求的 Cookie 信息

获取 Cookie 的名称:${ cookie.JSESSIONID.name } <br>
获取 Cookie 的值:${ cookie.JSESSIONID.value } <br>

initParam Map<String,String> 它可以获取在 web.xml 中配置的上下文参数
web.xml 中的配置:

<context-param><param-name>username</param-name><param-value>root</param-value>
</context-param>
<context-param><param-name>url</param-name><param-value>jdbc:mysql:///test</param-value>
</context-param>

示例代码:

输出&lt;Context-param&gt;username 的值:${ initParam.username } <br>
输出&lt;Context-param&gt;url 的值:${ initParam.url } <br>

Javaweb---EL相关推荐

  1. JavaWeb——EL 函数

    JavaWeb--EL 函数 三.EL 函数 EL 也允许定义和使用函数. 1.步骤 EL 函数的定义和使用的步骤,一般如下面: 新建一个 Java 类,并在该类中编写公用静态方法,用于定义和实现 E ...

  2. JavaWeb——EL表达式

    在JSP开发中,为了获取Servlet域对象中存储的数据,需要书写很多的Java代码,这样会使JSP页面看起来十分的混乱,难以维护,为此,在JSP2.0规范中提供了EL表达式.EL是Expressio ...

  3. JavaWeb EL表达式, JSTL标签及过滤器综合学习

    1.项目结构如右边图所示: (1)controller.filter包下面定义2个过滤器,EncodingFilter 类CheckUserFilter类(后面会有一个登陆验证的过滤器的测试学习), ...

  4. javaWEB(EL+JSTL实现购物车)

    一.EL表达式         1.什么是EL             EL即Expression Language(表达式语言) 2.EL的功能             替代JSP页面中的复杂代码 ...

  5. java 解析el表达式_Javaweb El表达式实例详解

    EL全称 Expression Language(表达式语言),是jsp2.0最重要的特性之一,可以利用EL表达式来访问应用程序中的数据,来消除jsp页面中的java脚本. el表达式的语法 expr ...

  6. Java-Web JSP指令、javabean和EL表达式

    目录 一.JSP指令 1.JSP指令概述 2.page指令 (1)pageEncoding和contentType (2)import (3)errorpage和isErrorpage (4)web. ...

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

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

  8. JavaWeb笔记:第07章 MVC |EL |JST |Filter |Listener |JQuery |AJAX |Maven |JSON |Redis |Linux |Nginx

    JavaWeb笔记:第07章 MVC |EL |JST |Filter |Listener |JQuery |AJAX |Maven |JSON |Redis |Linux |Nginx 1. MVC ...

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

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

  10. el表达式 java_java基础学习:JavaWeb之EL表达式

    其他更多java基础文章: java基础学习(目录) 一.EL表达式 EL 全名为Expression Language.JSP中可以使用EL表达式,EL表达式是用"${}"括起来 ...

最新文章

  1. Java分布式 RPC 框架性能大比拼,Dubbo最差?
  2. 8个计算机视觉深度学习中常见的Bug
  3. 重新定义数据库历史的时刻——时间序列数据库Schwartz认为InfluxDB最有前途,Elasticsearch也不错...
  4. java链表list_数据结构-List:使用Java实现双向链表LinkedList
  5. html5 弹性布局
  6. 锡安赞歌 mp3下载
  7. shell脚本统计httpd进程和子进程占用的CPU、内存大小,要求每隔5s统计一次
  8. 如果你走投无路时,会不会去摆摊做小生意?
  9. 计算机算法设计与分析 最长递增子序列
  10. FFmpeg学习(1)——视频文件格式转换
  11. php tp3.2 脚本大量数据操作思路
  12. 第 7 章 Neutron - 075 - 为 Neutron 准备物理基础设施(I)
  13. matlab 无穷级数求和,数项级数的求和方法.doc
  14. javascript 建模_使用JavaScript进行快速数据建模
  15. mybatis plus(包米豆)json存储Mysql数据库
  16. 大学计算机课程教学建议,计算机应用基础课程教学的建议
  17. 哪些命令可以关闭计算机 poweroff,虚拟机常用命令
  18. 互联网+大赛作品_“颂中国力量 绘美好梦想”全市中小学生互联网+书画大赛作品展示(二十二)...
  19. IOS版Telegram启用中文界面的方法
  20. 阿里云国际站:阿里云服务器遇到了CC攻击怎么处理防护措施?

热门文章

  1. 集合A(|A|=n)上可以定义多少种不同的等价关系
  2. innerHTML的属性
  3. 关于在Android中使用CMake你所需要了解的一切(一)
  4. 实名认证在文旅出行行业的应用场景有哪些?
  5. 京东产发奔赴港股上市,分拆上市或成互联网大厂的共同选择?
  6. 期刊论文格式模板 电子版_为什么导师反复强调论文的格式?
  7. Android app 飞花令
  8. 大脑中的学习机制: 海马体与新皮层构成的互补学习系统
  9. java metrics.counter_Java-Metrics指标度量工具
  10. 阿里巴巴Jetcache配置详解