JSP的标签技术(EL表达式和JSTL)

JSP的标签技术

1. 背景

  1. Sun公司推出了自定义标签技术,用于替代JSP中的Java代码
  2. apche推出了一套标准标签
  3. Sun公司在JSP的更新中引入标准标签

2. EL和JSTL

  1. EL表达式语言,替代JSP表达式 <%= %>
  2. JSTL(JSP标准标签库),替代 <% %>

2. EL(表达式语言,EL表达式)

  1. 用于替代JSP中的JSP表达式 <%= java表达式 %>

  2. 语法: ${ 表达式 }

  3. 功能:用于查询数据,并在页面上输出数据

    1. 可以输出常量,简单运算

    2. 可以输出变量

      1. 输出的变量必须保存在Scope(作用域中)
      2. 从小到大从Scope中搜索目标变量,找到则直接显示,都找不到则什么都不显示(request,session,application)
      3. 可以在变量前通过 requestScope/sessionScope/applicationScope来指定 仅从对应的作用域中查找该变量,找到则显示,找不到则什么都不显示
      4. 可以在变量前添加 param. 来限定从request的请求参数中获取变量
        在这里插入图片描述
    3. 可以输出数组中的数据

      1. 语法 ${arr[0]}
      2. 如果下标越界,则什么都不输出,也没有异常
      3. EL表达式不能遍历数组
    4. 可以输出集合中的数据

      1. 语法 ${list[0]}
      2. 如果下标越界,则什么都不输出,也没有异常
    5. 可以输出Map集合中的数据

      1. 语法:
        1. ${map.key}
        2. ${map[“key”]}
      2. 两种语法都可以,第2种更为安全
    6. 可以输出Java对象中的数据

      1. 语法:
        1. ${user.name}
        2. 实际上是调用 User对象的 getName()
        3. 因此必须保证User有对应的get方法
  4. 记忆:想要JSP页面上动态输出数据,优先考虑EL表达式

3. 作用域的概念

在这里插入图片描述

4. JSTL(JSP Standard Tag Library)

可以在JSP中使用的标准标签库,用于替代JSP中所有的Java代码

1. 如何使用JSTL?

  1. 导包:jstl-1.2.jar

  2. 在jsp文件中使用 <%@ taglib … %> 引入jstl标签库

    1. uri="" 指定引入哪个具体的标签库
      1. core:核心库,包含了最常用的一些标签
      2. fmt: 和格式化相关的库
      3. functions:是EL可以使用的一些标签
      4. sql:JSP访问数据库的标签
      5. xml:JSP解析xml文件的标签
    2. prefix=“c”,标签的前缀,使用<c: 代表使用当前标签库的标签
  3. 在JSP中根据需求,使用具体的标签

    1. <c:if > 判断 ->if

      1. test=“布尔值”
        1. true -> <c:if> 中间的内容会被执行 </c:if>
        2. false -> <c:if> 中间的内容不执行 </c:if>
      2. var=“变量名”
      3. scope=“作用域”
      4. c:if标签会自动将test判断的值以 var为变量名,存入scope对应的作用域中
    2. <c:choose > 判断 ->switch

      1. <c:when test=“布尔表达式” >
        1. 可以有多组
      2. <c:otherwise> ->相当于default
    3. <c:forEach > 循环

      1. 实现普通for循环
        1. begin 开始值
        2. end 终止值
        3. step 步长
        4. var 循环变量
      2. 实现增强for循环
        1. items 指定遍历哪个数组/集合
        2. var 循环变量
      3. 循环状态 varStatus
        1. 代表当前循环状态的对象
          1. count:当前循环的次数,从1开始统计
          2. first:boolean,当前是否是循环的第一次
          3. last: boolean,当前是否是循环的最后一次
    4. <fmt:formatNumber >

      1. pattern: 指定数字的显示样式 pattern="###,###.##"
      2. value: 指定显示的变量 value="${price}"

5. JSP的九大内置对象

在JSP中写Java代码,可以直接使用9个对象
1. request
2. response
3. session
4. application : ServletContext
5. config : ServletConfig
6. page : Object :代表当前Servlet实例
7. out : JspWriter:用于输出html的内容
8. pageContext : PageContext :页面上下文,当前JSP的运行环境
9. exception:Throwable : 代表上一个页面产生的异常信息
在这里插入图片描述

1. pageContext

  1. 代表当前jsp运行环境的对象
  2. 当一个请求到达当前JSP时,会创建一个pageContext对象,代表本次jsp的运行环境
  3. 当该请求离开JSP时,pageContext会被销毁
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值