EL表达式功能演示

EL表达式-什么是EL表达式,以及它的作用、EL表达式-EL表达式输出复杂的Bean对象、EL表达式-关系运算、EL表达式-逻辑运算、EL表达式-算术运算、EL表达式-empty运算、EL表达式-点运算和中括号运算、EL表达式-11个EL隐含对象的介绍、EL表达式-pageScope、requestScope、sessionScope、applicationScope的示例、EL表达式-pageContext演示、EL表达式-其他EL隐含对象的示例

EL表达式-什么是EL表达式,以及它的作用

<%--
  Created by IntelliJ IDEA.
  User: ZRich
  Date: 2022/12/8
  Time: 下午 1:57
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

    <%--什么是 EL 表达式,EL 表达式的作用?--%>
    <%--EL 表达式的全称是:Expression Language。是表达式语言。--%>
    <%--EL 表达式的什么作用:EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。--%>
    <%--因为 EL 表达式在输出数据的时候,要比 jsp 的表达式脚本要简洁很多。--%>

    <%--EL 表达式的格式是:${表达式}--%>
    <%--EL 表达式在输出 null 值的时候,输出的是空串。jsp 表达式脚本输出 null 值的时候,输出的是 null 字符串。--%>

    <%
        request.setAttribute("key","值");
    %>
    表达式脚本输出key的值是:<%=request.getAttribute("key1")==null?"":request.getAttribute("key1")%><br/>
    EL 表达式输出key的值是:${key1}

</body>
</html>

EL表达式-什么是EL表达式,以及它的作用

<%--
  Created by IntelliJ IDEA.
  User: ZRich
  Date: 2022/12/8
  Time: 下午 2:06
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<%--EL 表达式主要是在 jsp 页面中输出数据。--%>
<%--主要是输出域对象中的数据。--%>

<%--当四个域中都有相同的 key 的数据的时候,EL 表达式会按照四个域的从小到大的顺序去进行搜索,找到就输出。--%>
  <%
      //往四个域中都保存了相同的key的数据。
      pageContext.setAttribute("key","pageContext");
      request.setAttribute("key","pageContext");
      session.setAttribute("key","pageContext");
      application.setAttribute("key","pageContext");
  %>
    ${key}

</body>
</html>

EL表达式-EL表达式输出复杂的Bean对象

<%@ page import="top.qaqaq.P193.Person" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %><%--
  Created by IntelliJ IDEA.
  User: ZRich
  Date: 2022/12/8
  Time: 下午 2:17
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%
        Person person = new Person();
        person.setName("我好帅!");
        person.setPhones(new String[]{"18610541354","18688886666","18699998888"});

        List<String> cities = new ArrayList<String>();
        cities.add("北京");
        cities.add("上海");
        cities.add("深圳");
        person.setCities(cities);

        Map<String,Object>map = new HashMap<>();
        map.put("key1","value1");
        map.put("key2","value2");
        map.put("key3","value3");
        person.setMap(map);

        pageContext.setAttribute("p",person);
    %>

    <%--EL 表达式输出 Bean 的普通属性,数组属性。List 集合属性,map 集合属性--%>

    输出Person:${p} <br/>
    输出Person的name属性:${p.name} <br/>
    输出Person的phones数组属性值:${p.phones[1]} <br/>
    输出Person的cities集合中的元素值:${p.cities} <br/>
    输出Person的List集合中个别元素值:${p.cities[2]} <br/>
    输出Person的Map集合:${p.map} <br/>
    输出Person的Map集合中某个key的值:${p.map.key3} <br/>
    输出Person的age属性:${p.age} <br/>


</body>
</html>

EL表达式-关系运算、EL表达式-逻辑运算、EL表达式-算术运算

1)关系运算

2)逻辑运算

3)算数运算

<%--
  Created by IntelliJ IDEA.
  User: ZRich
  Date: 2022/12/8
  Time: 下午 2:41
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

    <%--EL 表达式——运算--%>

    <%--关系运算--%>
    ${12 == 12} 或 ${12 eq 12} <br/>
    ${12 != 12} 或 ${12 ne 12} <br/>
    ${12 < 12} 或 ${12 lt 12} <br/>
    ${12 > 12} 或 ${12 gt 12} <br/>
    ${12 <= 12} 或 ${12 le 12} <br/>
    ${12 >= 12} 或 ${12 ge 12} <br/>
    <hr/>
    <%--逻辑运算--%>
    ${12 == 12 && 12 > 11} 或 ${12 == 12 and 12 > 11} <br/>
    ${12 == 12 || 12 > 11} 或 ${12 == 12 or 12 > 11} <br/>
    ${! true} 或 ${not true} <br/>
    <hr/>
    <%--算数运算--%>
    ${12 + 12} <br/>
    ${12 - 12} <br/>
    ${12 * 12} <br/>
    ${12 / 12} 或 ${12 div 12} <br/>
    ${18 % 12} 或 ${18 mod 12} <br/>
    <hr/>


</body>
</html>

EL表达式-empty运算

<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %><%--
  Created by IntelliJ IDEA.
  User: ZRich
  Date: 2022/12/8
  Time: 下午 2:49
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%--empty 运算可以判断一个数据是否为空,如果为空,则输出 true,不为空输出 false。--%>
    <%
        //1、值为 null 值的时候,为空
        request.setAttribute("emptyNull",null);
        //2、值为空串的时候,为空
        request.setAttribute("emptyStr","");
        //3、值是 Object 类型数组,长度为零的时候
        request.setAttribute("emptyArr",new Object[]{});
        //4、list 集合,元素个数为零
        List<String> list = new ArrayList<>();
        request.setAttribute("emptyList",list);
        //5、map 集合,元素个数为零
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("key1","value1");
        request.setAttribute("emptyMap",map);

    %>
    ${empty emptyNull} <br/>
    ${empty emptyStr} <br/>
    ${empty emptyArr} <br/>
    ${empty emptyList} <br/>
    ${empty emptyMap} <br/>

    <hr/>

    <%--ii. 三元运算--%>
    <%--表达式 1?表达式 2:表达式 3--%>
    <%--如果表达式 1 的值为真,返回表达式 2 的值,如果表达式 1 的值为假,返回表达式 3 的值。--%>
    ${12 == 12 ? "我帅呆了":"我又骗人了"}
</body>
</html>

EL表达式-点运算和中括号运算

<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %><%--
  Created by IntelliJ IDEA.
  User: ZRich
  Date: 2022/12/8
  Time: 下午 3:30
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

    <%--iii. “.”点运算 和 [] 中括号运算符--%>

    <%--    .点运算,可以输出 Bean 对象中某个属性的值。--%>
    <%--    []中括号运算,可以输出有序集合中某个元素的值。--%>
    <%--    并且[]中括号运算,还可以输出 map 集合中 key 里含有特殊字符的 key 的值。--%>

    <%
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("a.a.a","aaaValue");
        map.put("b+b+b","bbbValue");
        map.put("c-c-c","cccValue");

        request.setAttribute("map",map);
    %>
    ${map['a.a.a']} <br/>
    ${map['b+b+b']} <br/>
    ${map['c-c-c']} <br/>


</body>
</html>

EL表达式-11个EL隐含对象的介绍、EL表达式-pageScope、requestScope、sessionScope、applicationScope的示例

<%--
  Created by IntelliJ IDEA.
  User: ZRich
  Date: 2022/12/8
  Time: 下午 3:42
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--EL 表达式的 11 个隐含对象--%>

<%--EL 个达式中 11 个隐含对象,是 EL 表达式中自己定义的,可以直接使用。--%>

<%--变量                类型                     作用--%>
<%--pageContext         PageContextImpl         它可以获取 jsp 中的九大内置对象--%>

<%--pageScope           Map<String,Object>      它可以获取 pageContext 域中的数据--%>
<%--requestScope        Map<String,Object>      它可以获取 Request 域中的数据--%>
<%--sessionScope        Map<String,Object>      它可以获取 Session 域中的数据--%>
<%--applicationScope    Map<String,Object>      它可以获取 ServletContext 域中的数据--%>

<%--param               Map<String,String>      它可以获取请求参数的值--%>
<%--paramValues         Map<String,String[]>    它也可以获取请求参数的值,获取多个值的时候使用。--%>

<%--header              Map<String,String>      它可以获取请求头的信息--%>
<%--headerValues        Map<String,String[]>    它可以获取请求头的信息,它可以获取多个值的情况--%>

<%--cookie              Map<String,Cookie>      它可以获取当前请求的 Cookie 信息--%>

<%--initParam           Map<String,String>      它可以获取在 web.xml 中配置的<context-param>上下文参数--%>

<%--    i. EL 获取四个特定域中的属性--%>
<%--    pageScope           ======      pageContext 域--%>
<%--    requestScope        ======      Request 域--%>
<%--    sessionScope        ======      Session 域--%>
<%--    applicationScope    ======      ServletContext 域--%>
    <%
        pageContext.setAttribute("key1","pageContext1");
        pageContext.setAttribute("key2","pageContext2");
        request.setAttribute("key2","request");
        session.setAttribute("key2","session");
        application.setAttribute("key2","application");
    %>
    ${requestScope.key2}
    ${applicationScope.key2}
</body>
</html>

EL表达式-pageContext演示

<%--
  Created by IntelliJ IDEA.
  User: ZRich
  Date: 2022/12/8
  Time: 下午 3:58
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--pageContext         PageContextImpl         它可以获取 jsp 中的九大内置对象--%>

    <%--pageContext 对象的使用--%>

    <%--
    request.getScheme()         它可以获取请求的协议
    request.getServerName()     获取请求的服务器ip或域名
    request.getServletPort()    获取请求的服务器端口号
    request.getContextPath()    获取当前工程路径
    request.getMethod()         获取请求的方式(GET或POST)
    request.getRemoteHost()     获取客户端的ip地址
    session.getId()             获取会话的唯一标识
    --%>
    <%=request.getScheme()%> <br/>
    <%=request.getServerName()%> <br/>
    <%=request.getServerPort()%> <br/>
    <%=request.getContextPath()%> <br/>
    <%=request.getMethod()%> <br/>
    <%=request.getRemoteHost()%> <br/>
    <%=session.getId()%> <br/>

    <%
        pageContext.setAttribute("req",request);
    %>

    1. 协议:${req.scheme} <br/>
    2. 服务器 ip:${pageContext.request.serverName} <br/>
    3. 服务器端口:${pageContext.request.serverPort} <br/>
    4. 获取工程路径:${pageContext.request.contextPath} <br/>
    5. 获取请求方法:${pageContext.request.method} <br/>
    6. 获取客户端 ip 地址:${pageContext.request.remoteHost} <br/>
    7. 获取会话的 id 编号:${pageContext.session.id} <br/>

</body>
</html>

EL表达式-其他EL隐含对象的示例

<%--
  Created by IntelliJ IDEA.
  User: ZRich
  Date: 2022/12/8
  Time: 下午 4:12
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<%--param               Map<String,String>      它可以获取请求参数的值--%>
<%--paramValues         Map<String,String[]>    它也可以获取请求参数的值,获取多个值的时候使用。--%>

<%--header              Map<String,String>      它可以获取请求头的信息--%>
<%--headerValues        Map<String,String[]>    它可以获取请求头的信息,它可以获取多个值的情况--%>

<%--cookie              Map<String,Cookie>      它可以获取当前请求的 Cookie 信息--%>

<%--initParam           Map<String,String>      它可以获取在 web.xml 中配置的<context-param>上下文参数--%>


    <%--iii. EL 表达式其他隐含对象的使用--%>

<%--    param           Map<String,String>      它可以获取请求参数的值--%>
<%--    paramValues     Map<String,String[]>    它也可以获取请求参数的值,获取多个值的时候使用。--%>

    <%--请求地址:--%>
    <%--http://localhost:8080/09_EL_JSTL/other_el_obj.jsp?username=wzg168&password=666666&hobby=java&hobby=cpp--%>

    输出请求参数username的值:${param.username} <br/>
    输出请求参数password的值:${param.password} <br/>
    输出请求参数hobby的值:${param.hobby} <br/>

    输出请求参数username的值:${paramValues.username[0]} <br/>
    输出请求参数hobby的值:${paramValues.hobby[0]} <br/>
    输出请求参数hobby的值:${paramValues.hobby[1]} <br/>
    <hr/>

<%--    header          Map<String,String>      它可以获取请求头的信息--%>
<%--    headerValues    Map<String,String[]>    它可以获取请求头的信息,它可以获取多个值的情况--%>
    输出请求头【User-Agent】的值:${header['User-Agent']} <br/>
    输出请求头【Connection】的值:${header.Connection} <br/>
    输出请求头【User-Agent】的值:${headerValues['User-Agent'][0]} <br/>
    <hr/>

<%--    cookie          Map<String,Cookie>      它可以获取当前请求的 Cookie 信息--%>
    获取Cookie的名称:${cookie.JSESSIONID.name} <br/>
    获取Cookie的值:${cookie.JSESSIONID.value} <br/>
    <hr/>

<%--    initParam       Map<String,String>      它可以获取在 web.xml 中配置的<context-param>上下文参数--%>
    输出&lt;context-param&gt;username的值:${initParam.username} <br/>
    输出&lt;context-param&gt;url的值:${initParam.url} <br/>

</body>
</html>
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇