zoukankan      html  css  js  c++  java
  • 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、Session、Application范围查找。 假如途中找到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}或{3gt5 false
    <= 或 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)

  • 相关阅读:
    都不敢上CSDN了
    什么是函数(function)?
    今天3/8妇女节
    一件有意思的事情:关于std::string和std::auto_ptr
    转两篇Link相关的文章
    DevIL Downloads
    状态模式(State Pattern)
    访问者模式(Visitor Pattern)
    羊皮卷的故事第二章
    备忘录模式(Memento Pattern)
  • 原文地址:https://www.cnblogs.com/liunanjava/p/4264069.html
Copyright © 2011-2022 走看看