④品茶看<Servlet&JSP>-EL表达式
前言
今早,概率课偷了下小懒写的:

泡一杯红茶,ACM集训前,写篇博客记录记录EL表达式。
#EL介绍
①EL 语法
②访问JavaBean等
③EL隐式对象
④EL运算符
EL介绍
EL 全名为Expression Language。受ECMAScript 和XPath 表达式的语言启发。EL 的语法比传统JSP Scriptlet 更为方便、简洁。
EL 语法
①基本知识
${为起始、以}为结尾的,构造:${expression}。接下来比较下:
JSP Scriptlet获取:
User user = (User)session.getAttribute("user");
String sex = user.getName( );
EL 获取:
${sessionScope.user.sex}
② [] 和 . 运算符
EL表达式中,对象有属性。就可以利用 [] 和 . 运算符 来访问该属性,两者功能相似。
例如:下面都是一样的。
${sessionScope.user.name}
或者
${sessionScope.user["name"]}
两者功能差异
# 当要存取的属性名称中包含一些特殊字符,如. 或 – 等并非字母或数字的符号,就一定要使用 [ ]。
例如:
${sessionScope.user["My-Name"] } ${header["accept-language"] }
#我们来考虑下列情况:
selection是一个变量,可以代表user各个属性。
${sessionScope.user[selection]}
如果selection为"name",就相当于${sessionScope.user.name}或者${sessionScope.user["name"]}
因此,如果要动态取值时,. (点)运算符无法做到动态取值, [] 运算符 可以做到。
访问JavaBean
|
类型
|
实例
|
方法
|
|
JavaBeans
|
${user.username}
${user["username"]}
${user['username']}
|
user.getUsername()
|
|
数组
|
${sport[1]}
${sport["1"]}
${sport['1']}
|
sport[1]
|
|
List
|
${phone[2]}
${phone["2"]}
${phone['2']}
|
phone.get(2)
|
|
Map
|
${phone.home}
${phone["home"]}
${phone['home']}
|
phone.get("home")
|
EL隐式对象
|
隐含对象 |
类型 |
说明 |
|
PageContext |
javax.servlet.jspPageContext |
表示当前JSP的javax.servlet.jsp.PageContext |
|
PageScope |
java.util.Map |
取得Page范围的属性名称所对应的值 |
|
RequestScope |
java.util.Map |
取得Request范围的属性名称所对应的值 |
|
sessionScope |
java.util.Map |
取得Session范围的属性名称所对应的值 |
|
applicationScope |
java.util.Map |
取得Application范围的属性名称所对应的值 |
|
param |
java.util.Map |
如同ServletRequest.getParameter(String name)。回传String类型的值 |
|
paramValues |
java.util.Map |
如同ServletRequest.getParameterValues(String name)。回传String[]类型的值 |
|
header |
java.util.Map |
如同ServletRequest.getHeader(String name)。回传String类型的值 |
|
headerValues |
java.util.Map |
如同ServletRequest.getHeaders(String name)。回传String[]类型的值 |
|
cookie |
java.util.Map |
如同HttpServletRequest.getCookies() |
|
initParam |
java.util.Map |
如同ServletContext.getInitParameter(String name)。回传String类型的值 |
cookie
隐式对象cookie包含了当前HttpServletRequest的所有cookie 的Map。
例如
获取一个名为jsessionid的cookie值:
${cookie.jsessionid.value}
header 和headerValues
header 储存用户浏览器和服务端用来沟通的数据,当用户要求服务端的网页时,会送出一个记载要求信息的标头文件,例如:用户浏览器的版本、用户计算机所设定的区域等其他相关数据。
例如
获取accept-language语言
${header["accept-language"]}。
注意:当要存取的属性名称中包含一些特殊字符,如. 或 – 等并非字母或数字的符号,就一定要使用 [ ]。
initParam
就想我们在web-xml 配置 初始化值得时候,我们用initParam隐式对象可以获取。
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app 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/web-app_2_4.xsd" version="2.4">: <context-param> <param-name>username</param-name> <param-value>jeffli</param-value> </context-param>: </web-app>
用EL表达式获取:
${initParam.username}
等价于
String userid = (String)application.getInitParameter("username");
param和paramValues
同上面的理
${param.name}
${paramValues.name}
等价于
request.getParameter(String name)
request.getParameterValues(String name)
EL运算符
|
逻辑运算符 |
实例 |
结果 |
|
&&或and |
交集${A && B}或${A and B} |
true/false |
|
||或or |
并集${A || B}或${A or B} |
true/false |
|
!或not |
非${! A }或${not A} |
true/false |
总结
EL学习,这次比较全。以前用着就去看,索性写篇博客记录下。

学这个,好比ABC... 慢慢来,多写多用就会了。
④品茶看<Servlet&JSP>-EL表达式的更多相关文章
- Jsp,EL表达式的入门
Jsp,EL表达式的入门 *Servlet/JSP 是两种动态的WEB资源的两种技术 使用Servlet生成HTML的页面是可以的 response.getWriter("<form ...
- JSP EL表达式使用
JSP EL表达式使用: Servlet: package com.stono.servlet; import java.io.IOException; import java.util.HashMa ...
- jsp EL表达式 字符串的比较
jsp EL表达式 字符串的比较 跟JavaScript一样,直接使用两个等于号即可:== 代码如下: <c:if test="${highLight == 'visa'}" ...
- JSP EL表达式 获得 request的GET/POST方法
JSP EL表达式 获得 request的GET/POST方法: 不在requestScopse中: <p>得到request的方法</p> <p>pageCont ...
- JSP EL表达式 param、paramValues的使用
JSP EL表达式 param.paramValues的使用: <%@ page language="java" import="java.util.*" ...
- JSP EL表达式忽略方法
JSP EL表达式忽略方法: web.xml中,和jsp中:jsp中的等级要高一些: web.xml: <?xml version="1.0" encoding=" ...
- jsp EL表达式和JSTL标签if-else if-else用法
java web javaEE ,jsp EL表达式和JSTL标签if-else if-else四种用法一.条件运算符 ${user.gender==?'男':'女'} 二.if() <c:if ...
- oozie错误:javax.servlet.jsp.el.ELException: variable [***] cannot be resolved
完整错误: javax.servlet.jsp.el.ELException: variable [compute] cannot be resolved at org.apache.oozie.ut ...
- 11 JSP/EL表达式/EL函数
JSP * 概述: JSP(Java Server Pages)与Java Servlet一样,是在服务器端执行的不同的是先由服务器编译部署成Servlet执行 * JSP的运行原 ...
随机推荐
- Vue 获取登录用户名
本来是打算登录的时候把用户名传过去,试了几次都没成功,然后改成用cookie保存用户名,然后在读取就行了, 登录时候设置cookie setCookie(c_name,c_pwd,exdays) { ...
- 运用PIL库 用来美白,磨皮,瘦脸等操作!
1.安装pillow库: 在cmd下,输入简单的命令: pip install pillow 即可安装pillow库. 2.PIL库的简介: 1. PIL库主要有2个方面的功能: (1) 图像归档: ...
- JavaWeb三大组件之Servlet
http://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/Servlet.html 一.Servlet继承结构体系图 从结构图中 ...
- 手机端-万种bt在线观看器,安卓正版下载!
安卓正版下载, 点击下载 无广告,完全免费!寻找任何你想要的资源!
- Donald Knuth
看了<李开复给计算机系大学生的建议>这篇文章,让我对Donald Knuth这个人产生了兴趣,他是何许人也?于是便有下文. 引用:(1)练内功.不要只花功夫学习各种流行的编程语言和工具,以 ...
- kali 日志
MAC协议安全攻防 kali 攻击 输入 macof -i eth0 -i 选择网卡 防御 使用交换机的安全特性 Port Security DCRS 需要开启 mac地址表学习使用cpu控制 mac ...
- ‘params’一个奇妙的东西
params关键字表示函数的参数是可变个数的,即可变的方法参数,例如Console.WriteLine( "{0},{1} ",i,j); 就像DELPHI 里 WRITELN 函 ...
- jQuery获取父级、兄弟节点的方法
一.jQuery的父节点查找方法 $(selector).parent(selector):获取父节点 $(selector).parentNode:以node[]的形式存放父节点,如果没有父节点,则 ...
- 1.1.1 PROB Your Ride Is Here
=== /* ID: luopengting PROG: ride LANG: C++ */ #include <iostream> #include <cstdio> #in ...
- Android使用ViewPager+PhotoView实现图片查看器
可实现功能效果说明: 可实现多张图片点击放大,手指控制,左右滑动,多张图片点击任意位置定位显示任意位置图片:无动画,可自己加 效果图: 核心代码 ...