一、EL表达式简介

EL全名Expression Language。主要有以下作用。

1.获取数据

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

2.执行运算

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

3.获取Web开发常用对象

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

4.调用Java方法

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

二、EL表达式之获取数据

使用EL表达式获取数据格式: ${ }

EL表达式在执行语句时,会调用pageContext.findAttribute(""),分别从page、request、session、application四个域对象中查找,如果找到就返回相应的值,没有找到就返回""(空字符串)。EL表达式可以很轻松的获取JavaBean的属性、获取集合中的数据。

<%@page import="com.kiwi.domain.Address"%>
<%@page import="com.kiwi.domain.Person"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head> <title>My JSP 'index.jsp' starting page</title>
</head> <body> <br>----------------------获取域中存的数据----------------------<br>
<%
String data = "abcd";
request.setAttribute("data",data);
%>
${data} <%-- pageContext.findAttribute("data") --%> <br>----------------------获取域中存的JavaBean数据----------------------<br>
<%
Person p1 = new Person();
p1.setName("Tom");
request.setAttribute("person",p1);
%>
${ person.name } <br>----------------------获取域中存的JavaBean中的JavaBean的数据----------------------<br>
<%
Person p2 = new Person();
Address a = new Address();
a.setCity("北京");
p2.setAddress(a);
request.setAttribute("person2",p2);
%>
${ person2.address.city} <br>----------------------获取域中存的list集合中的数据----------------------<br>
<%
List<Person> list = new ArrayList<Person>();
list.add(new Person("AAA"));
list.add(new Person("BBB"));
list.add(new Person("CCC"));
list.add(new Person("DDD"));
request.setAttribute("list",list);
%>
${ list[1].name } <br>----------------------获取域中存的map集合中的数据----------------------<br>
<%
Map map = new HashMap();
map.put("a",new Person("AAAA"));
map.put("b",new Person("BBBB"));
map.put("c",new Person("CCCC"));
map.put("d",new Person("DDDD"));
request.setAttribute("map",map); %>
${ map.a.name } </body>
</html>

结果:

三、EL表达式之运算

EL表达式支持如下运算符。

1.关系运算符

2.逻辑运算符

3.empty运算符

检查对象是否为null。

4.二元运算符

${ username != null ? username : "" }

5.[] 和.运算符

四、EL表达式之获取Web开发常用对象

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

pageContext

对应于JSP页面中的pageContext对象(注意:取的是pageContext对象)

pageScope

代表page域中用于保存属性的Map对象

requestScope

代表request域中用于保存属性的Map对象

sessionScope

代表session域中用于保存属性的Map对象

applicationScope

代表application域中用于保存属性的Map对象

param

表示一个保存了所有请求参数的Map对象

paramValues

表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[]

header

表示一个保存了所有http请求头字段的Map对象,注意:如果头里面有“-” ,例Accept-Encoding,则要header[“Accept-Encoding”]

headerValues

表示一个保存了所有http请求头字段的Map对象,它对于某个请求参数,返回的是一个string[]数组。注意:如果头里面有“-” ,例Accept-Encoding,则要headerValues[“Accept-Encoding”]

cookie

表示一个保存了所有cookie的Map对象

initParam

表示一个保存了所有web应用初始化参数的map对象

<%@page import="com.kiwi.domain.Address"%>
<%@page import="com.kiwi.domain.Person"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head> <title>My JSP 'index.jsp' starting page</title>
</head> <body> <br>-----------------------------隐式对象-------------------------------<br> <br/>---------------1.pageContext对象:获取JSP页面中的pageContext对象------------------------<br/>
${pageContext} <br/>---------------2.pageScope对象:从page域(pageScope)中查找数据------------------------<br/>
<%
pageContext.setAttribute("data","000");
%>
${ data }<%-- 这是从四个域里面找 --%>
${ pageScope.data } <br/>---------------3.requestScope对象:从request域(requestScope)中查找数据------------------------<br/>
<%
request.setAttribute("data","1111");
%>
${ requestScope.data } <br/>---------------4.sessionScope对象:从session域(sessionScope)中查找数据------------------------<br/>
<%
session.setAttribute("data","2222");
%>
${ sessionScope.data } <br/>---------------5.applicationScope对象:从application域(applicationScope)中查找数据------------------------<br/>
<%
application.setAttribute("data","3333");
%>
${ applicationScope.data } </body>
</html>

结果:

JavaWeb总结(八)—EL表达式的更多相关文章

  1. JavaWeb(七):EL表达式、自定义标签和JSTL

    一.EL表达式 语法 el.jsp <%@page import="java.util.Date"%> <%@page import="com.atgu ...

  2. Javaweb学习笔记——EL表达式

    一.前言 EL表达式是什么? 简而言之,可以这样理解,EL表达式全名为:Exprexxsion Language,原先是JSTL 1.0为了方便存取数据而定义的语言,到了JSTL 2.0便正式成为标准 ...

  3. javaweb开发之EL表达式

    一.EL简介 EL全名为Expression Language,它主要用于替换JSP页面中的脚本表达式<%= %>,从各种类型的Web域中检索Java对象.获取数据.它可以很方便地访问Ja ...

  4. JavaWeb学习笔记(八)—— EL表达式

    一.EL表达式概述 在JSP开发中,为了获取Servlet域对象中存储的数据,经常需要书写很多Java代码,这样的做法会使JSP页面混乱,难以维护.为此,在JSP2.0规范中提供了EL表达式.EL全名 ...

  5. JavaWeb:EL表达式

    JavaWeb:EL表达式 说明 1.Expression Language语言,一种用于JSP文件中的数据访问的语言. 2.能够简化JSP文件中该数据访问的代码,可用来替代传统的基于<%= % ...

  6. javaWeb el表达式和jstl快速入门案例

    <%@page import="de.bvb.domain.Person"%> <%@page import="de.bvb.domain.Addres ...

  7. EL表达式 EL函数 自定义el函数 《黑马程序员_超全面的JavaWeb视频教程vedio》

    \JavaWeb视频教程_day12_自定义标签JSTL标签库,java web之设计模式\day12_avi\12.EL入门.avi; EL表达式 1. EL是JSP内置的表达式语言! * jsp2 ...

  8. JavaWeb基础—EL表达式与JSTL标签库

    EL表达式: EL 全名为Expression Language.EL主要作用 获取数据(访问对象,访问数据,遍历集合等) 执行运算 获取JavaWeb常用对象 调用Java方法(EL函数库) 给出一 ...

  9. 超全面的JavaWeb笔记day12<Jsp&JavaBean&El表达式>

    1.JSP三大指令 page include taglib 2.9个内置对象 out page pageContext request response session application exc ...

随机推荐

  1. 【开源】NodeJS仿WebApi路由

    用过WebApi或Asp.net MVC的都知道微软的路由设计得非常好,十分方便,也十分灵活.虽然个人看来是有的太灵活了,team内的不同开发很容易使用不同的路由方式而显得有点混乱. 不过这不是重点, ...

  2. 【排序算法】快速插入排序算法 Java实现

    基本思想 每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部插入完成. 设数组为a[0...n-1] 初始时,a[0]自成一个有序区,无序区为a[1...n-1] ...

  3. iOS 创建一个在退出登录时可以销毁的单例

    一.单例简介 单例模式是在软件开发中经常用的一种模式.单例模式通俗的理解是,在整个软件生命周期内,一个类只能有一个实例对象存在. 二.遇到的问题 在平时开发使用单例的过程中,有时候会有这样的需求,在用 ...

  4. 前端学PHP之日期与时间

    前面的话 在Web程序开发时,时间发挥着重要的作用,不仅在数据存储和显示时需要日期和时间的参与,好多功能模块的开发,时间通常都是至关重要的.网页静态化需要判断缓存时间.页面访问消耗的时间需要计算.根据 ...

  5. 两款【linux字符界面下】显示【菜单】,【选项】的powershell脚本模块介绍

    两款[linux字符界面下]显示[菜单],[选项]的powershell脚本模块介绍 powershell linux  ps1 menu choice Multiselect 传教士 菜单 powe ...

  6. mysql 局域网同事之间直接用客户端访问

    情景: 几个人作为小组开发一个项目,以我的机器为服务器,将mysql服务安装在我的机器上,其他小伙伴用客户端都能访问我这个数据库 解决:   首先: 1.设置mysql允许其它机器连接(linux环境 ...

  7. 简单总结在51cto平台的两日学习

    许久未曾静下心写东西,希望这会是一个好习惯的开始. 一次偶然的机会,大概是160415在Applestore邂逅51cto,看了点评果断下载,着实是一款优秀的学习软件. 由于最近正在用python写自 ...

  8. KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架之koahub-handlebars

    koahub-handlebars koahub-handlebars koahub handlebars templates Installation $ npm install koahub-ha ...

  9. calling c++ from golang with swig--windows dll(一)

    calling c++ from golang with swig--windows dll 之前项目组开发的项目核心代码全部使用C++语言,新项目可能会引入golang,花了一天多时间研究了wind ...

  10. Django REST framework使用ViewSets的自定义路由实现过程

    在Django中使用基于类的视图(ClassView),类中所定义的方法名称与Http的请求方法相对应,才能基于路由将请求分发(dispatch)到ClassView中的方法进行处理,而Django ...