动态页面技术——EL/JSTL

本文深入解析了EL表达式和JSTL技术在JSP中的应用,EL表达式简化了从域中获取数据的过程,而JSTL则通过标签库替代了脚本代码,提升了网页动态内容的开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇文章我们讲解了动态页面技术——JSP
https://blog.youkuaiyun.com/weixin_44007447/article/details/104565596
这我们再来讲解两门技术,它们的出现极大的减少了JSP脚本代码的书写,使得页面动态技术更加的成熟。

一、EL技术

1、EL表达式简介

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

2、EL表达式作用

EL表达式的最重要的作用就是从域中取对象,比如
jsp脚本 :<%=request.getAttribute(String key)%>
EL表达式: ${requestScope.key}
通过上面的简单对比,我们可以发现通过EL表达式获取域中数据十分的方便。

3、EL获取四大域中的数据

格式:${EL 表达式}

  • EL获取pageContext域中的值 : ${pageScope.key}
  • EL获取request域中的值:${request.key}
  • EL获取session域中的值:${session.key}
  • EL获取application域中的值:${application.key}
  • EL从四个域中获取某个值 :${key}
    -----值会依次在 pageContext域、request域、session域、application域 中获取,在某个域中获取了以后就不再向后寻找。

4、EL的内置对象

EL中共有11个内置对象,但是随着技术的发展,现在很多的对象在开发中很少或基本不在使用了。

  • pageScope,requestScope,sessionScope,applicationScope —获取JSP中域中的数据。
  • param,paramValues ----接收参数。
  • header,headerValues ---- 获取请求头信息,相当于request.getHeader(name)。
  • initParam ----获取全局初始化参数。相当于this.getServletContext().getInitParameter(name)
  • cookie ---- WEB开发中cookie,相当于request.getCookies()—cookie.getName()—cookie.getValue()。
  • pageContext - WEB开发中的pageContext,pageContext获得其他八大对象

其中使用最多的是 pageContext对象,它可以获取JSP中其他的八大隐式对象。
比如:${pageContext.request.contextPath} ,在EL表达式中可以省略get。

EL表达式的使用

二、JSTL技术

1、JSTL概述

JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样也是要代替jsp页面中的脚本代码。JSTL标准标准标签库有5个子库,但随着发展,目前常使用的是他的核心库。

  • Core ---------- http://java.sun.com/jsp/jstl/core 前缀 :c
  • l18N -----------http://java.sun.com/jsp/jstl/fmt 前缀 :fmt
  • SQL -----------http://java.sun.com/jsp/jstl/sql 前缀 :sql
  • XML ----------- http://java.sun.com/jsp/jstl/xml 前缀 :x
  • Function ------- http://java.sun.com/jsp/jstl/functions 前缀 :fn

2.JSTL下载与导入

JSTL下载:
从Apache的网站下载JSTL的JAR包。进入 “http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/”网址下载 JSTL的安装包。jakarta-taglibs-standard-1.1.2.zip,然后将下载好的JSTL安装包 进行解压,此时,在lib目录下可以看到两个JAR文件,分别为jstl.jar和standard.jar。 其中,jstl.jar文件包含JSTL规范中定义的接口和相关类,standard.jar文件包含用于 实现JSTL的.class文件以及JSTL中5个标签库描述符文件(TLD)
在这里插入图片描述
将两个jar包导入我们工程的lib中。
使用jsp的taglib指令导入核心标签库

3、JSTL核心库的常用标签

JSTL的标签有很多种,我们在这里之讲解下我们常用的两种。

1、<c:if test=" " > 标签
属性:
  • test :返回值是boolean的条件
  • var : 用于存储条件结果的变量
  • scope:var 属性的作用域 默认值为 page
    在这里插入图片描述
2、<c:forEach> 标签

属性:

  • items:被循环的信息

  • begin : 开始的元素(0=第一元素,1=第二元素) 默认值 :0

  • end : 最后一个元素(0=第一元素,1=第二元素) 默认值 :Last element

  • step : 每一次迭代的步数 默认值为 1

  • var :代表当前条目的变量名称 无默认值

  • varStatus : 代表循环状态的变量名称
    由varStatus属性命名的变量并不存储当前索引值或当前元素,而是赋予javax.servlet.jsp.jstl.core.LoopTagStatus类的实例。该类包含了一系列的特性,它们描述了迭代的当前状态,如下这些属性的含义如下所示:

         current:当前这次迭代的(集合中的)项。 
    
         index:当前这次迭代从0开始的迭代索引。 
    
         count:当前这次迭代从1开始的迭代计数。 
    
         first:用来表明当前这轮迭代是否为第一次迭代,该属性为boolean类型。 
    
         last:用来表明当前这轮迭代是否为最后一次迭代,该属性为boolean类型。 
    
         begin:begin属性的值。 
    
         end:end属性的值 
    
         step:step属性的值 
    

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值