JAVA-EE使用EL表达式的隐含对象和EL表达式的运算符------计算机网络经典

328 篇文章 2 订阅
129 篇文章 0 订阅
EL表达式
EL表达式是为了代替JSP的java代码,让JSP看起来更加整洁美观,JSP中夹杂着各种java代码就会让文件混乱不好维护
第一功效:从某个域中取数据,将取出的数据转成字符串,将字符串输出到浏览器
EL表达式是属于JSP语法的一种
在没有指定范围的情况下,EL表达式优先从最小的范围中取值
EL表达式有四个隐式的范围对象pageScope,applicationScope,requestScope,sessionScope
这四个隐式的范围对象可以指定我们取值的域
EL表达式表示取值还可以使用[]包括的方式来实现
[]这个主要是为了解决我们的参数内有.的情况下使用的,针对特殊字符设计
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" %>
忽略EL表达式,设置后就无法使用EL表达式取值
如果是针对某一个标签禁用EL表达式,就直接用\就可以了
<%--    JSP九大内置对象中的request,就是我们pageContext获取的那个request--%>
<%--    但是在我们的EL表达式里面没有这个JSP九大内置对象的request,我们就需要用pageScope去获取这个request对象--%>
<%--    为什么要获取我们的request对象--%>
<%--因为我们要用request.getContextPath来获取应用的根路径--%>
<%--    这样就做到了使用EL表达式获取应用根路径--%>
EL表达式的隐含对象
pageContext,param,paramValues,initParam,以及其他
param对应的是对单取值,paramValues对应的是对多取值,pageContext这个对应的是当前JSP的
页面域,initParam可以从我们的应用域内取出内容进行输出,它对应的是我们的application即ServletContext对象
EL表达式运算符+-*/,只做数据的计算,不做字符串的拼接,加号两边哪怕不是数字也会转数字,如果转不成就报错
关系运算符
<%--    EL表达式的双等号实际调用了equals方法--%>
<%--    EL表达式的双等号和eq都是调用的equals方法--%>
<%--    !=也会调用equals方法--%>
<%--    判断是否为空,为空就false,不为空为true--%>
<%--    empty运算符结果为布尔类型--%>
JSTL标签库,Filter过滤器,Listener监听器
EL表达式
EL表达式是为了代替JSP的java代码,让JSP看起来更加整洁美观,JSP中夹杂着各种java代码就会让文件混乱不好维护
第一功效:从某个域中取数据,将取出的数据转成字符串,将字符串输出到浏览器
EL表达式是属于JSP语法的一种
在没有指定范围的情况下,EL表达式优先从最小的范围中取值
EL表达式有四个隐式的范围对象pageScope,applicationScope,requestScope,sessionScope
这四个隐式的范围对象可以指定我们取值的域
EL表达式表示取值还可以使用[]包括的方式来实现
[]这个主要是为了解决我们的参数内有.的情况下使用的,针对特殊字符设计
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" %>
忽略EL表达式,设置后就无法使用EL表达式取值
如果是针对某一个标签禁用EL表达式,就直接用\就可以了
<%--    JSP九大内置对象中的request,就是我们pageContext获取的那个request--%>
<%--    但是在我们的EL表达式里面没有这个JSP九大内置对象的request,我们就需要用pageScope去获取这个request对象--%>
<%--    为什么要获取我们的request对象--%>
<%--因为我们要用request.getContextPath来获取应用的根路径--%>
<%--    这样就做到了使用EL表达式获取应用根路径--%>
EL表达式的隐含对象
pageContext,param,paramValues,initParam,以及其他
param对应的是对单取值,paramValues对应的是对多取值,pageContext这个对应的是当前JSP的
页面域,initParam可以从我们的应用域内取出内容进行输出,它对应的是我们的application即ServletContext对象
EL表达式运算符+-*/,只做数据的计算,不做字符串的拼接,加号两边哪怕不是数字也会转数字,如果转不成就报错
关系运算符
<%--    EL表达式的双等号实际调用了equals方法--%>
<%--    EL表达式的双等号和eq都是调用的equals方法--%>
<%--    !=也会调用equals方法--%>
<%--    判断是否为空,为空就false,不为空为true--%>
<%--    empty运算符结果为布尔类型--%>
JSTL标签库,Filter过滤器,Listener监听器
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" language="java" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>欢迎页</title>
</head>
<body>
    <h1>用户登录</h1>
    <hr>
    <form action="<%=request.getContextPath()%>/user/login" method="post">
        username:<input type="text" name="username"><br>
        password:<input type="password" name="password"><br>
        10天免登录:<input type="checkbox" name="flag" value="1"><br>
        <input type="submit" value="login">
    </form>
    <h1>
        <a href="<%=request.getContextPath()%>/cookie/generate">
            服务器生成Cookie,然后把Cookie传给浏览器,浏览器收到,再放到客户端上
        </a>
    </h1>
    <h1>
        <a href="<%=request.getContextPath()%>/sendCookie">
            浏览器发送Cookie给服务器
        </a>
    </h1>
<%=pageContext.getRequest()%>
    <br>
<%--    JSP九大内置对象中的request,就是我们pageContext获取的那个request--%>
<%--    但是在我们的EL表达式里面没有这个JSP九大内置对象的request,我们就需要用pageScope去获取这个request对象--%>
<%=request%>
    <br>
${pageContext.request}
<%--    为什么要获取我们的request对象--%>
<%--因为我们要用request.getContextPath来获取应用的根路径--%>
    <br>
    <%=((HttpServletRequest)pageContext.getRequest()).getContextPath()%>
    <br>
<%--    这样就做到了使用EL表达式获取应用根路径--%>
    ${pageContext.request.contextPath}
    <br>
用户名:<%=request.getParameter("username")%>
<%--    这两个方法效果是一样的--%>
<%--    这个param可以用来获取用户提交的信息--%>
用户名:${param.username}
    <br>
<%--假设用户提交的数据是多个,比如说复选框--%>
爱好:${param.aihao}
    <br>
一维数组:${paramValues.aihao}
    <br>
一维数组:${paramValues.aihao[0]},${paramValues.aihao[1]},${paramValues.aihao[2]}
    <%
        String pageSize = application.getInitParameter("pageSize");
        String pageNumber = application.getInitParameter("pageNumber");
        String k1 = new String("hello");
        String k2 = new String("hello");
    %>
    <br>
<%=pageSize%>
<%=pageNumber%>
${initParam.pageSize}
${initParam.pageNumber}
${1 + "2"}
${"abc" == "abc"}
<%--    EL表达式的双等号实际调用了equals方法--%>
<%--    EL表达式的双等号和eq都是调用的equals方法--%>
<%--    !=也会调用equals方法--%>
${kq eq k2}
${k1 == k2}
<%=k1.equals(k2)%>
    <%=k1 == k2%>
<%--    判断是否为空,为空就false,不为空为true--%>
<%--    empty运算符结果为布尔类型--%>
${empty k1}
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" language="java" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>欢迎页</title>
</head>
<body>
    <h1>用户登录</h1>
    <hr>
    <form action="<%=request.getContextPath()%>/user/login" method="post">
        username:<input type="text" name="username"><br>
        password:<input type="password" name="password"><br>
        10天免登录:<input type="checkbox" name="flag" value="1"><br>
        <input type="submit" value="login">
    </form>
    <h1>
        <a href="<%=request.getContextPath()%>/cookie/generate">
            服务器生成Cookie,然后把Cookie传给浏览器,浏览器收到,再放到客户端上
        </a>
    </h1>
    <h1>
        <a href="<%=request.getContextPath()%>/sendCookie">
            浏览器发送Cookie给服务器
        </a>
    </h1>
<%=pageContext.getRequest()%>
    <br>
<%--    JSP九大内置对象中的request,就是我们pageContext获取的那个request--%>
<%--    但是在我们的EL表达式里面没有这个JSP九大内置对象的request,我们就需要用pageScope去获取这个request对象--%>
<%=request%>
    <br>
${pageContext.request}
<%--    为什么要获取我们的request对象--%>
<%--因为我们要用request.getContextPath来获取应用的根路径--%>
    <br>
    <%=((HttpServletRequest)pageContext.getRequest()).getContextPath()%>
    <br>
<%--    这样就做到了使用EL表达式获取应用根路径--%>
    ${pageContext.request.contextPath}
    <br>
用户名:<%=request.getParameter("username")%>
<%--    这两个方法效果是一样的--%>
<%--    这个param可以用来获取用户提交的信息--%>
用户名:${param.username}
    <br>
<%--假设用户提交的数据是多个,比如说复选框--%>
爱好:${param.aihao}
    <br>
一维数组:${paramValues.aihao}
    <br>
一维数组:${paramValues.aihao[0]},${paramValues.aihao[1]},${paramValues.aihao[2]}
    <%
        String pageSize = application.getInitParameter("pageSize");
        String pageNumber = application.getInitParameter("pageNumber");
        String k1 = new String("hello");
        String k2 = new String("hello");
    %>
    <br>
<%=pageSize%>
<%=pageNumber%>
${initParam.pageSize}
${initParam.pageNumber}
${1 + "2"}
${"abc" == "abc"}
<%--    EL表达式的双等号实际调用了equals方法--%>
<%--    EL表达式的双等号和eq都是调用的equals方法--%>
<%--    !=也会调用equals方法--%>
${kq eq k2}
${k1 == k2}
<%=k1.equals(k2)%>
    <%=k1 == k2%>
<%--    判断是否为空,为空就false,不为空为true--%>
<%--    empty运算符结果为布尔类型--%>
${empty k1}
</body>
</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旧约Alatus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值