2021-04-21 22:05  阅读(85)
文章分类:JSP 简单教程 文章标签:JSP
©  原文作者:一点教程 原文地址:http://www.yiidian.com/jsp/

1 什么是EL表达式

EL(Expression Language)表达式语言 是为了使JSP写起来更加简单。EL表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。

EL中有许多内置对象,运算符和保留关键字。

它是JSP技术版本2.0中的新增功能。

2 EL表达式语法

    
    ${ 表达式 }  

3 EL表达式的内置对象

EL表达式语言中有许多内置对象。它们如下:

内置对象 说明
pageScope 从page范围中获取值
requestScope 从request范围中获取值
sessionScope 从session范围中获取值
applicationScope 从application范围中获取值
param 用于获取请求的参数(单个值的情况)
paramValues 用于获取请求的参数(多个值的情况),返回数组
header 用于获取请求头(单个值的情况)
headerValues 用于获取请求头(多个值的情况),返回数组
cookie 用于获取请求中的cookie数据
initParam 用于获取web的初始化参数
pageContext 可以从page,request,session,application域获取数据

4 EL表达式读取属性的示例

在下面的示例中,我们创建两个文件index.jsp和process.jsp。index.jsp文件获取用户输入的名称,并将请求发送到process.jsp,后者再使用EL表达式输出用户名。

4.1 编写index.jsp

    
    <%@ page language="java" contentType="text/html;charset=utf-8" %>
    <html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>一点教程网-EL表达式</title>
    </head>
    <body>
    
    <form action="process.jsp">
        请输入名称:<input type="text" name="name" /><br/><br/>
        <input type="submit" value="提交"/>
    </form>
    
    </body>
    </html>

4.2 编写process.jsp

    
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>一点教程网-EL表达式</title>
    </head>
    <body>
    
    欢迎你, ${ param.name }
    
    </body>
    </html>
    

4.3 运行测试

20210421220113_1.png

2021042122013_2.png

5 EL表达式作用域的示例

在下面的示例中,我们使用EL表达式输出存储在session范围中的数据。因此,我们需要使用sessionScope内置对象。

5.1 编写index.jsp

    
    <%@ page language="java" contentType="text/html;charset=utf-8" %>
    <html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>一点教程网-EL表达式</title>
    </head>
    <body>
    
    <h3>欢迎访问index.jsp</h3>
    <%
        session.setAttribute("user","yiidian");
    %>
    
    <a href="process.jsp">跳转页面</a>
    
    </body>
    </html>

5.2 编写process.jsp

    
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>一点教程网-EL表达式</title>
    </head>
    <body>
    
    session域的值是: ${ sessionScope.user }
    
    </body>
    </html>
    

5.3 运行测试

202104212207_3.png

202104212205_4.png

6 EL表达式读取Cookie的示例

6.1 编写index.jsp

    
    <%@ page language="java" contentType="text/html;charset=utf-8" %>
    <html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>一点教程网-EL表达式读取Cookie数据</title>
    </head>
    <body>
    
    <h1>这是index.jsp页面</h1>
    <%
        Cookie ck=new Cookie("name","yiidian");
        response.addCookie(ck);
    %>
    <a href="process.jsp">跳转到process.jsp页面</a>
    
    </body>
    </html>

6.2 编写process.jsp

    
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>一点教程网-EL表达式读取Cookie数据</title>
    </head>
    <body>
    
    你好, ${cookie.name.value}
    
    </body>
    </html>
    

6.3 运行测试

202104212205_5.png

202104212205_6.png

7 EL表达式运算符优先级

EL表达式语言提供了许多运算符。它们的优先级如下:

[].
[].
()
-(unary)not!empty
*/div%mod
+-(binary)
<<=>>=ltlegtge
==!=eqne
&&and
?:

8 EL表达式的保留关键字

EL表达式语言中有很多保留关键词字(不能使用它们来命名):

lt le gt ge
lt le gt ge
eq ne true false
and or not instanceof
div mod empty null
点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> EL表达式语法
上一篇
JSP动作-jsp:fallback
下一篇
JSP的MVC开发模式