一、EL表达式概述

  在JSP开发中,为了获取Servlet域对象中存储的数据,经常需要书写很多Java代码,这样的做法会使JSP页面混乱,难以维护。为此,在JSP2.0规范中提供了EL表达式。EL全名为Expression Language,它是一种简单的数据访问语言。EL表达式的目的是替代jsp页面中脚本的编写,使JSP写起来更加简单

二、EL表达式的11个内置对象

分类

内置对象名称

描述

作用域

pageScope

page作用域

requestScope

request作用域

sessionScope

session作用域

applicationScope

application作用域

请求参数

param

获得一个参数

paramValues

获得一组参数

请求头

header

获得一个请求头

headerValues

获得一组请求头

JSP上下文对象

pageContext

全局初始化参数

initParam

cookie

cookie

【获得指定作用域的数据】

<%--初始化数据--%>
<%
pageContext.setAttribute("name", "pValue");
request.setAttribute("name", "rValue");
session.setAttribute("name", "sValue");
application.setAttribute("name", "aValue");
%> <%--使用JSP脚本获得--%>
<%=pageContext.getAttribute("name")%> <!--如果找不到,返回null-->
<%=request.getAttribute("name")%>
<%=session.getAttribute("name")%>
<%=application.getAttribute("name")%>
<hr/> <%--使用EL表达式获得指定作用域的数据--%>
${pageScope.name}
${requestScope.name}
${sessionScope.name}
${applicationScope.name}
<hr/> <%--依次获得数据--%>
<%--底层使用pageContext.findAttribute("name"),依次从page、request、session、application获得数据,如果都没有返回null--%>
${name}

【请求参数】

<%--请求路径:javaweb/EL.jsp?username=zhangsan&hobby=xxx&hobby=yyy--%>
<%--
param.xxx 对应request.getParameter("xxx")
paramValue.xxx 对应request.getParameterValues("xxx")
--%>
${param.username}<br/>
${param.hobby}<br/> <!--获得第一个参数-->
${paramValues.hobby}<br/> <!--获得一组数据,使用数组-->
${paramValues.hobby[1]} <!--如果是数组,可以使用下标获得-->

【 请求头】

<%--
header.xxx 对应request.getHeader("xxx")
headerValues.xxx 对应request.getHeaders("xxx")
--%>
${header.accept}<br/>
<%--
${header.accept-Encoding}
这时非法的,有异常,"-"被解析成减号
--%>
${header['accept-Encoding']}<br/>
${headerValues['accept-Encoding'][0]}

.和[]的区别
  1)[]用于有下标的数据(数组、list集合) .用于有属性的数据(map,对象)
  2)如果属性名中包含有特殊的字符,必须使用[]

【pageContext】

<%--pageContext对应pageContext对象--%>
jsp:<%=((HttpServletRequest)pageContext.getRequest()).getContextPath()%><br/>
el:${pageContext.request.contextPath}

【全局初始化参数】

<%--
web.xml的配置
<context-param>
<param-name>person</param-name>
<param-value>张三</param-value>
</context-param>
--%>
<%--initParam对应ServletContext.getInitParameter("person")--%>
${initParam.person}

【cookie】

  setCookie.jsp

<%
response.addCookie(new Cookie("username", "zhangsan"));
response.addCookie(new Cookie("password", "123"));
%>

  getCookie.jsp

<body>
<%--
cookie没有对应API。底层使用request.getCookies()获得所有cookies,然后遍历并存放到Map中(Map<name,obj>)
--%> ${cookie}<br/> <%--使用Map获得所有cookie,Map<名称,对象>--%>
${cookie.username.name}:${cookie.username.value}<br>
${cookie.password.name}:${cookie.password.value}
</body>

  注意:需要先访问setCookie.jsp,然后再访问getCookie.jsp

三、EL的使用

3.1 获得数据

【获得指定作用域数据】(重要)

  见上面

【获取字符串、对象、集合的数据】

<%
pageContext.setAttribute("city", "北京"); // 存储字符串
request.setAttribute("city", "上海"); // 存储一个对象
User user = new User();
user.setId(1);
user.setUsername("zhangsan");
user.setPassword("123");
session.setAttribute("user", user); // 存储一个集合
List<User> list = new ArrayList<User>();
User user1 = new User();
user1.setId(2);
user1.setUsername("lisi");
user1.setPassword("123");
list.add(user1);
User user2 = new User();
user2.setId(3);
user2.setUsername("wangwu");
user2.setPassword("123");
list.add(user2);
application.setAttribute("list", list);
%> <%--JSP脚本获取数据--%>
<%=request.getAttribute("city")%>
<%
User sessionUser = (User) session.getAttribute("user");
out.write(sessionUser.getUsername());
%> <%--EL获取数据--%>
${requestScope.city}
${sessionScope.user.username}
${applicationScope.list[1].username} <%--使用EL表达式全域查找--%>
${city}
${user.username}
${list[1].username}

3.2 执行运算

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

【关系运算符】

  

【逻辑运算符】

  aaarticlea/png;base64,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" alt="" />

【empty运算符】

  检查对象是否为null(空)

二元表达式】

  ${user!=null?user.name :""}

四、EL函数库

4.1 EL函数库介绍

  由于在JSP页面中显示数据时,经常需要对显示的字符串进行处理,SUN公司针对于一些常见处理定义了一套EL函数库供开发者使用。
  这些EL函数在JSTL开发包中进行描述,因此在JSP页面中使用SUN公司的EL函数库,需要导入JSTL开发包,并在页面中使用taglib指令导入EL函数库

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

4.2 常用函数

  • String toUpperCase(String input):把参数转换成大写

  • String toLowerCase(String input):把参数转换成小写

  • int indexOf(String input, String substring):从大串中输出小串的位置

  • boolean contains(String input, String substring):查看大串中是否包含小串

  • boolean containsIgnoreCase(String input, String substring):忽略大小写的,是否包含

  • boolean startsWith(String input, String substring):是否以小串为前缀

  • boolean endsWith(String input, String substring):是否以小串为后缀

  • String substring(String input, int beginIndex, int endIndex):截取子串

  • String substringAfter(String input, String substring):获取大串中,小串所在位置后面的字符串

  • substringBefore(String input, String substring):获取大串中,小串所在位置前面的字符串

  • String escapeXml(String input):把input中“<”、">"、"&"、"'"、""",进行转义

  • String trim(String input):去除前后空格

  • String replace(String input, String substringBefore, String substringAfter):替换

  • String[] split(String input, String delimiters):分割字符串,得到字符串数组

  • int length(Object obj):可以获取字符串、数组、各种集合的长度

  • String join(String array[], String separator):联合字符串数组

<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

String[] strs = {"a", "b","c"};
List list = new ArrayList();
list.add("a");
pageContext.setAttribute("arr", strs);
pageContext.setAttribute("list", list);
%>
${fn:length(arr) }<br/><!---->
${fn:length(list) }<br/><!---->
${fn:toLowerCase("Hello") }<br/> <!-- hello -->
${fn:toUpperCase("Hello") }<br/> <!-- HELLO -->
${fn:contains("abc", "a")}<br/><!-- true -->
${fn:containsIgnoreCase("abc", "Ab")}<br/><!-- true -->
${fn:contains(arr, "a")}<br/><!-- true -->
${fn:containsIgnoreCase(list, "A")}<br/><!-- true -->
${fn:endsWith("Hello.java", ".java")}<br/><!-- true -->
${fn:startsWith("Hello.java", "Hell")}<br/><!-- true -->
${fn:indexOf("Hello-World", "-")}<br/><!-- 5 -->
${fn:join(arr, ";")}<br/><!-- a;b;c -->
${fn:replace("Hello-World", "-", "+")}<br/><!-- Hello+World -->
${fn:join(fn:split("a;b;c;", ";"), "-")}<br/><!-- a-b-c --> ${fn:substring("0123456789", 6, 9)}<br/><!-- 678 -->
${fn:substring("0123456789", 5, -1)}<br/><!-- 56789 -->
${fn:substringAfter("Hello-World", "-")}<br/><!-- World -->
${fn:substringBefore("Hello-World", "-")}<br/><!-- Hello -->
${fn:trim(" a b c ")}<br/><!-- a b c -->
${fn:escapeXml("<html></html>")}<br/> <!-- <html></html> -->

4.3 自定义EL函数库

  • 写一个类,写一个有返回值的静态方法;
  • 编写itcast.tld文件,可以参数fn.tld文件来写,把itcast.tld文件放到/WEB-INF目录下;
  • 在页面中添加taglib指令,导入自定义标签库。

ItcastFuncations.java

package cn.itcast.el.funcations;

public class ItcastFuncations {
public static String test() {
return "传智播客自定义EL函数库测试";
}
}

itcast.tld(放到classes下)

<?xml version="1.0" encoding="UTF-8" ?>

<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0"> <tlib-version>1.0</tlib-version>
<short-name>itcast</short-name>
<uri>http://www.itcast.cn/jsp/functions</uri> <function>
<name>test</name>
<function-class>cn.itcast.el.funcations.ItcastFuncations</function-class>
<function-signature>String test()</function-signature>
</function>
</taglib>

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="itcast" uri="/WEB-INF/itcast.tld" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<h1>${itcast:test() }</h1>
</body>
</html>

JavaWeb学习笔记(八)—— EL表达式的更多相关文章

  1. Javaweb学习笔记6—EL表达式与JSTL及自定义标签

    今天来讲javaweb的第六阶段学习. EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说是很重要的东西,但是也要了解. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps: ...

  2. JavaWeb学习笔记--4.EL表达式

    四. 表达式语言(相当于对JSP中对象输出的简化,功能实质上类似) 转自ZHSJUN的博客 http://blog.csdn.net/zhsjun/article/details/2254546 表达 ...

  3. JSP/Servlet Web 学习笔记 DaySix —— EL表达式

    1)EL从scope中得到参数时可以自动转换类型,因此对于类型转换的限制更加宽松. 2)使用EL表达式,可以简化变量和对象的访问. 3)EL表达式必须以 ${XXXX} 来表示. 4)EL提供点(.) ...

  4. 1.6(学习笔记)EL表达式

    1.表达式输出属性 先来看一个简单的表达式小例子 el.jsp <%@ page language="java" contentType="text/html; c ...

  5. JavaWeb学习篇之----EL表达式详解

    我们之前的几篇文章中都提到了一个EL表达式,那么这个EL表达式到底是什么东东呢?为什么用处那么大,下面我们就来看看EL表达式的相关内容 EL表达式简介: EL 全名为Expression Langua ...

  6. JavaWeb学习笔记八 监听器

    监听器Listener jservlet规范包括三个技术点:servlet :listener :filter:监听器就是监听某个对象的的状态变化的组件.监听器的相关概念事件源: 被监听的对象(三个域 ...

  7. JavaWeb学习笔记总结 目录篇

    JavaWeb学习笔记一: XML解析 JavaWeb学习笔记二 Http协议和Tomcat服务器 JavaWeb学习笔记三 Servlet JavaWeb学习笔记四 request&resp ...

  8. Java Web学习笔记之---EL和JSTL

    Java Web学习笔记之---EL和JSTL (一)EL (1)EL作用 Expression  Language(表达式语言),目的是代替JSP页面中复杂的代码 (2)EL表达式 ${变量名} ( ...

  9. java学习笔记06--正则表达式

    java学习笔记06--正则表达式 正则表达式可以方便的对数据进行匹配,可以执行更加复杂的字符串验证.拆分.替换等操作. 例如:现在要去判断一个字符串是否由数字组成,则可以有以下的两种做法 不使用正则 ...

  10. Learning ROS forRobotics Programming Second Edition学习笔记(八)indigo rviz gazebo

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...

随机推荐

  1. [转载]C语言 宏

    当然宏定义非常重要的,它可以帮助我们防止出错,提高代码的可移植性和可读性等. 1,防止一个头文件被重复包含 #ifndef COMDEF_H#define COMDEF_H //头文件内容 …#end ...

  2. 因采用 Flask 原生 WSGI 出现 "Broken pipe" 报错的故障处理

    :first-child { margin-top: 0; } blockquote > :last-child { margin-bottom: 0; } img { border: 0; m ...

  3. java基础之多线程三:多线程并发同步

    由于线程的执行是CPU随机调度的,比如我们开启10个线程,这10个线程并不是同时执行的,而是CPU快速的在这10个线程之间切换执行,由于切换速度极快使我们感觉同时执行罢了. 线程同步问题往往发生在多个 ...

  4. Jmeter调度器配置

    Jmeter的线程组设置里有一个调配器设置,用于设置该线程组下脚本执行的开始时间.结束时间.持续时间及启动延迟时间.当需要半夜执行性能测试时会用到这个功能. ps:设置调度器配置,需要将前面的循环次数 ...

  5. Linuc bazaar命令

    一.简介 Bazaar 是一种强大的新一代源代码控制系统,它能够适用于所有主流操作系统,能够适应任何开发团队的工作模式.   二.安装 1)yum方式 yum install -y bzr   三.教 ...

  6. Flask解决跨域

    Flask解决跨域 问题:网页上(client)有一个ajax请求,Flask sever是直接返回 jsonify. 然后ajax就报错:No 'Access-Control-Allow-Origi ...

  7. mysql_5.6内存过高问题解决

    MySQL 5.6安装完之后,每过一段时间就会莫名其妙挂掉.而且还很难启动.非要重启服务器,才能拉起mysql. 后来分析是由于mysql启动后内存过高,跑一段时间就会由于内存不足而被杀死. 今天分析 ...

  8. ASP.NET 5 Middleware, Or Where Has My HttpModule Gone?

    31 March 2015 13:22 ASP.NET 5 has been largely rewritten from the ground up, and incorporates some r ...

  9. 在IE11(Win8)中检查up6.2配置

      1.按F12,打开调试模式    2.打开调试程序选项卡 说明:在调试程序选项卡中可看到IE加载的脚本信息是否正确.因为IE有缓存,导致脚本有时不是最新的.    3.打开脚本,up6.js   ...

  10. PrintDocument or PrintPreviewDialog 打印

    /// <summary> /// /// </summary> /// <param name="sender"></param> ...