JavaWeb(EL表达式学习笔记)

EL表达式

一、什么是EL:
1.1、EL
– Expression Language 表达式语言
1.2、语法:
${EL表达式}
1.3、与JSP表达式区别:
JSP中使用的变量是脚本变量,而EL中的变量都是作用域变量,要操作的变量都在作用域中。

二、EL表达式的作用
2.1、用于表达式的运算。如:加、减、乘、除。
2.2、用于从作用域中取出数据

三、获取数据
3.1、在四个域中查找:比如在一个域中设置了“color”属性,现在获取
EL: ${color},功能与pageContext.findAttribute(“color”) 一样。
3.2、指定域获取数据

作用域Java代码EL的写法
页面域pageContext.getAttribute(“color”);${pageScope.color}
请求域request.getAttribute(“color”);${requestScope.color}
会话域session.getAttribute(“color”);${sessionScope.color}
上下文域application.getAttribute(“color”);${applicationScope.color}
自动查找pageContext.findAttribute(“color”);${color}

3.3、EL中11个隐式对象

隐含对象名称描述
pageContext代表页面上下文对象,可以在页面上调用get方法
pageScope代表页面域中的Map对象
requestScope代表请求域中的Map对象
sessionScope代表会话域中的Map对象
applicationScopeScope代表上下文域中的Map对象
param得到表单提交参数,功能与:request.getParameter()相同
paramValues得到表单提交参数,功能与:String[] request.getParameterValues()相同
header得到请求头的数据 request.getHeader(“名字”)
headerValues得到请求头的数据 request.getHeaders(“名字”)
cookie得到请求的Cookie信息
initParam相当于config.getInitParamter()得到web.xml中配置的参数

3.4、pageContext调用get的方法

作用JSP表达式EL的写法
当前工程路径<%=request.getContextPath() %>${pageContext.request.contextPath}
请求资源路径<%=request.getContextURL() %>${pageContext.request.contextURL}
访问者的IP<%=request.getRemoteAddr() %>${pageContext.request.remoteAddr}
当前会话的ID<%=request.getSession().getId() %>${pageContext.request.session.id}

3.5、得到Cookie中的值:
先通过EL得到指定cookie的对象,再通过name和value得到具体的名字和值
<%
Cookie c = new Cookie(“man”,”jack”);
response.addCookie(c);
%>
读取Cookie:
名字: cookie.man.name< {cookie.man.value } <%– 调用 cookie.getValue() –%>
3.6、EL表达式中[]和.的区别
如果一个变量名中有特殊的字符,则应用使用[“名字”];
比如获取header中host属性,一共有两种写法:
header[host] {header.host }

若获取user-agent属性,只能使用中括号
${header[“user-agent”]}

四、EL表达式获取不同类型的数据
4.1获取JavaBean的属性值

 
<%
//创建一个对象
Student stu = new Student(“张三”, 20);
stu.setMale(true);
//把对象放到域
pageContext.setAttribute(“a”, stu);
%>
姓名:${a.name} 年龄:${a.age} 性别:${a.male}

4.2获取数组中的值

 
<%
String[] arr = {“aaa”,”bbb”,”cccc”};
pageContext.setAttribute(“arr”, arr);
%>
取数组中的元素:
${arr[0]}
${arr[1]}
${arr[2]}

4.3获取Map中的值

 
<%
map.put(“n1”, “猪八戒”);
map.put(“n2”, “唐僧”);
map.put(“n3”, “孙悟空”);
//放在请求域中
request.setAttribute(“map”, map);
%>
${map.n1}
${map[“n2”]}
${map.n3}

4.4输出List中指定索引位置的元素

 
<%
book.add(“水浒传”);
book.add(“西游记”);
book.add(“红楼梦”);

session.setAttribute(“books”, book);
%>
${books[0] }

${books[1] }

${books[2] }

五、EL中使用表达式
5.1算术表达式 :

算术运算符说明范例结果
+${1+1}2
-${2-1}1
*${1*1}1
/或div${5 div 2}2.5
%或mod取余${5 mod 2}1

5.2比较表达式

关系运算符说明范例结果
==或 eq等于(equal)${1 eq 1}true
!= 或 ne不等于(not equal)${1 != 1}false
< 或 lt小于(Less than)${1 lt 2}true
<=或 le小于等于(Less than or equal)${1 <= 1}true
> 或 gt大于(Greater than)${1 > 2}false
>=或 ge大于等于(Greater than or equal)${1 >=1}true

5.3逻辑表达式 :

逻辑运算符说明范例结果
&& 或 and交集(与)${A and B}true / false
|| 或 or并集(或)${A || B }true / false
! 或 not${not A}true / false

5.4三元运算:

 
${表达式?真:假}

5.5判空表达式:
5.5.1语法:

 
${empty 变量名} 判断变量名是否为空或空串,如果是,则返回true

5.5.2作用:
1)判断一个变量是否为null
2)判断一个字符串是否是空串
3)判断一个集合是否有元素
<%
request.setAttribute(“num”, 5);
request.setAttribute(“str”, “”);
//创建一个集合
ArrayList list = new ArrayList();
pageContext.setAttribute(“list”, list);
%>
1) 创建一个变量是否为null
${empty num}
2) 创建一个字符串是否是空串
${empty str}
3) 创建一个集合是否有元素
${empty list }

5.6EL表达式的启用和禁用
5.6.1页面禁用
isELIgnored=”true” 忽略EL表达式,EL不起作用。
5.6.2 EL的转义
\ ${5 div 3 } \表示这个表达式不起作用

  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
正则表达式(Regular Expression)是用来匹配和操作字符串的一种强大工具。在JavaWeb开发中,正则表达式常用于以下几个方面: 1. 字符串匹配:可以通过正则表达式来判断一个字符串是否符合某种模式。比如,判断一个字符串是否是合法的邮箱地址、手机号码等。 2. 字符串替换:可以使用正则表达式来查找并替换字符串中的某些部分。比如,将一段文本中的所有URL替换为链接。 3. 字符串分割:可以使用正则表达式来按照某个规则将字符串分割为多个部分。比如,按照逗号或空格将一个句子分割成多个单词。 在Java中,可以使用java.util.regex包中的类来进行正则表达式的操作。常用的类有Pattern和Matcher。 下面是一个示例代码,演示了如何使用正则表达式进行字符串匹配: ```java import java.util.regex.*; public class RegexExample { public static void main(String[] args) { String input = "abc123"; String pattern = "[a-z]+\\d+"; Pattern regex = Pattern.compile(pattern); Matcher matcher = regex.matcher(input); if (matcher.matches()) { System.out.println("字符串匹配成功!"); } else { System.out.println("字符串匹配失败!"); } } } ``` 以上代码中,使用正则表达式`[a-z]+\\d+`来匹配由小写字母和数字组成的字符串。如果输入字符串`abc123`满足该正则表达式,则输出"字符串匹配成功!";否则输出"字符串匹配失败!"。 希望以上内容对你有帮助!如果你还有其他问题,可以继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值