首页 > 学院 > 开发设计 > 正文

EL运算符(web基础学习笔记十七)

2019-11-14 22:49:39
字体:
来源:转载
供稿:网友
EL运算符(web基础学习笔记十七)一、EL语法1.1、语法结构

${exPRession}

1.2、[]与.运算符 EL 提供.和[]两种运算符来存取数据。

当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。例如: ${user.My-Name}应当改为${user["My-Name"] } 如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如: ${user[data]}中data 是一个变量

1.3、变量 EL存取变量数据的方法很简单

例如:${username}。它的意思是取出某一范围中名称为username的变量。 因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、sessionapplication范围查找。 假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。

1.4、访问顺序

二、EL运算符

1.算术运算符有五个:+、-、*或$、/或div、%或mod

2.关系运算符有六个:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge

3.逻辑运算符有三个:&&或and、||或or、!或not

4.其它运算符有三个:Empty运算符、条件运算符、()运算符

例:${empty param.name}、${A?B:C}、${A*(B+C)}

为了避免jsp混淆运算符和页面关键字,很多运算符都有替代写法:

关系运算符说明范例结果
== 或 eq等于${5==5}或${5eq5}true
!= 或 ne不等于${5!=5}或${5ne5}false
< 或 lt小于${3<5}或${3lt5}true
> 或 gt大于${3>5}或{3gt5false
<= 或 le小于等于${3<=5}或${3le5}true
>= 或 ge大于等于¥{3>=5}或${3ge5}false

注意:在使用EL 关系运算符时,不能够写成: ${param.passWord1} == ${param.password2} 或者 ${ ${param.password1 } == ${ param.password2 } }而应写成 ${ param.password1 == param.password2 }

逻辑运算符

逻辑运算符范例结果
&&或and交集${A && B}或${A and B}true/false
||或or并集${A || B}或${A or B}true/false
!或not非${! A }或${not A}true/false
三、EL访问pageContext

使用EL访问pageContext对象,可以 取得页面的详细信息,如下:

${pageContext.request.queryString} 取得请求的参数字符串

${pageContext.request.requestURL} 取得请求的URL,但不包括请求之参数字符串

${pageContext.request.contextPath} 服务的web application 的名称

${pageContext.request.method} 取得HTTP 的方法(GET、POST)

${pageContext.request.protocol} 取得使用的协议(HTTP/1.1、HTTP/1.0)

${pageContext.request.remoteUser} 取得用户名称

${pageContext.request.remoteAddr } 取得用户的ip 地址

${pageContext.session.new} 判断session 是否为新的

${pageContext.session.id} 取得session 的ID

${pageContext.servletContext.serverInfo} 取得主机端的服务信息

四、EL访问对象

EL表达式可以访问一系列对象,一共有11个。我们重点学习了最重要的1-6。

(1)pageContext:指JSP的pageContext对象

(2)pageScope:一个Map对象,包括page范围的属性和值

(3)requestScope:一个Map对象,包括request范围的属性和值

(4)sessionScope:一个Map对象,包括session范围的属性和值

(5)ApplicationScope:一个Map对象,包括application范围的属性和值

(6)param:一个Map对象,包括Web请求参数(request parameter)的字符串值,对应了ServletRequest.getParameter(String)

(7)paramValues:一个Map对象,包括Web请求参数(request parameter)的多个字符串值,对应了ServletRequest.getParameterValues(String)

(8)header:一个Map对象,包括请求的头信息值,对应了ServletRequest.getHeader(String)

(9)headerValues:一个Map对象,包括请求的头信息多个值,对应了ServletRequest.getHeaders(String)

(10)cookie:一个Map对象,包括对应名称的Cookie,对应了HttpServletRequest.getCookie(String)

(11)initParam:一个Map对象,包括一个Web程序的初始化参数值,对应了ServletRequest.getInitParameter(String)


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表