JavaWeb——EL表达式

一、EL表达式简介
 EL表达式(Expression Language),是一种表达式语言。JSP的后期版本(2.0以后)是不允许使用脚本片段 <% %> 以及JSP表达式<%=%>的,使用EL表达式来代替JSP表达式,使用标签来代替脚本片段。EL表达式用于在页面中输出一个对象,EL可以直接将域中的对象在页面中输出。

二、基本语法
 语法格式:${表达式}
 EL可以用来做全域查找:四个域(pageScope、requestScope、sessionScope、applicationScope)
 使用方式:${属性名},会自动的按照由小到大的顺序从四个域(pageContext、request、session、application)中查找指定属性,哪个先找到则返回哪个,如果没找到不会出现null,而是返回一个空串
Tip
  1️⃣EL表达式只能读取域中的对象
  2️⃣在EL表达式中不能直接调用对象的方法
  3️⃣通过EL表达式来读取一个对象时,可以直接${对象.属性名},EL表达式会自动调用该属性对应的getter方法获取属性值
  4️⃣EL支持级联调用:${requestScope.stu.address.street}

 EL中给我们提供了4个域对象——pageScope、requestScope、sessionScope、applicationScope,EL默认会按照由小到大的顺序从四个域对象中查找属性值,我们也可以指定从哪个域对象中查找:

${pageScope.key}
${requestScope.key}
${sessionScope.key}
${applicationScope.key}

 使用EL表达式时如果遇到特殊的属性名还可以使用如下方式获取属性值:${xxxScope[‘属性名’]}

${requestScope['Hello-Kitty']}

 可以直接通过EL表达式获取域中的JavaBean的指定属性:${对象.属性.属性},EL表达式会自动调用对象的get方法来获取指定的属性值,而不是调用类的属性。

${requestScope.stu.address.street}

三、EL中的隐含对象
 EL中给我们提供了11个隐含对象,我们可以在EL表达式中直接使用这11个对象,这11个隐含对象中,除了pageContext剩下的全都是Map:

隐含对象类型作用
pageContextPageContext和JSP中的pageContext一样,可以获取到JSP中其他隐含对象
pageScopeMap<String,Object>获取page域中的属性
requestScopeMap<String,Object>获取request域中的属性
sessionScopeMap<String,Object>获取session域中的属性
applicationScopeMap<String,Object>获取application域中的属性
paramMap<String,String>可以获取到用户发送的请求参数
paramValuesMap<String,String[]>可以获取到一个参数对应的多个值
headerMap<String,String>可以获取到用户发送的请求头
headerValuesMap<String,String[]>可以获取到一个请求头对应的多个值
initParamMap<String,String>获取到整个WEB应用的初始化参数
cookieMap<String,Cookie>获取到浏览器的Cookie信息

四、EL中的运算
 在EL中可以直接使用常用的运算符进行 + - * / 运算
 empty运算符:可用于三目运算,用来判断一个域中的对象是否为空,empty运算符检查一个null的对象时,会返回true,检查一个空串时,也会返回true,检查一个空的集合时,也会返回true,只有检查的对象有实质的内容或对象不为null时才返回false。
我们常用empty运算符判断一个集合是否为一个空集合,或者一个字符串是否为一个空串。使用方式:${empty 属性名}

JSP(JavaServer Pages)是一种服务器端的动态网页开发技术,它可以将 Java 代码嵌入 HTML 页面中,从而实现动态网页的生成。 JSP 的基本原理是将 JSP 页面翻译成 Servlet,在服务器端执行 Servlet 代码,再将执行结果返回给客户端。因此,我们在使用 JSP 开发网页时,需要先了解 Servlet 的相关知识。 JSP 的语法基本上就是 HTML 标签加上 Java 代码。以下是一些基本的 JSP 标签: 1. <% ... %>:嵌入 Java 代码,可以用于定义变量、写循环、判断语句等。 2. <%= ... %>:输出 Java 代码的执行结果。 3. <%-- ... --%>:注释,不会被翻译成 Servlet。 4. <jsp:include ... />:包含其他 JSP 页面或 HTML 页面。 5. <jsp:forward ... />:将请求转发到其他资源(JSP 页面、Servlet 或 HTML 页面)。 6. <jsp:useBean ... />:创建 JavaBean 对象。 7. <jsp:setProperty ... />:为 JavaBean 对象设置属性。 8. <jsp:getProperty ... />:取得 JavaBean 对象的属性值。 在 JSP 页面中,我们还可以使用 EL 表达式和 JSTL 标签库来简化代码编写,提高开发效率。 EL(Expression Language)表达式是一种简化的表达式语言,可以用于取值、赋值、计算等操作。例如,${name} 表示取得名为 name 的变量的值。 JSTL(JavaServer Pages Standard Tag Library)是一套标签库,提供了循环、条件判断、格式化、国际化等常用功能的标签。例如,<c:forEach> 标签可以用于循环遍历集合,<c:if> 标签可以用于条件判断。 除了以上标签库,JSP 还支持自定义标签库。我们可以通过编写标签处理器来扩展 JSP 的功能。 JSP 的优点是可以将 Java 代码嵌入 HTML 页面中,使得网页的开发更加灵活和方便。但是,由于 JSP 页面需要翻译成 Servlet,因此会增加服务器的负担和响应时间。此外,JSP 页面中夹杂着 Java 代码,也不利于代码的维护和调试。因此,在开发大型网站时,建议使用 MVC 设计模式,将业务逻辑和视图分离,使得代码更加清晰和易于维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值