JavaWeb系列十三: 服务器端渲染技术(JSP) 下

news2024/11/23 18:47:23

韩顺平

  • 2. EL表达式
    • 2.1 EL表达式快速入门
    • 2.2 EL表达式输出形式
    • 2.3 el运算符
    • 2.4 empty运算
    • 2.5 EL获取四个域数据
    • 2.6 EL获取HTTP相关信息
  • 3. JSTL标签库
    • 3.1 jstl 快速入门
    • 3.2 <c:set/>标签
    • 3.3 <c:if/>标签
    • 3.4 <c:choose/>标签
    • 3.5 <c:forEach/>标签
    • 3.6 作业布置

在这里插入图片描述

2. EL表达式

2.1 EL表达式快速入门

  1. EL表达式全称: Expression Language, 是表达式语言
  2. EL表达式主要是代替jsp页面的表达式脚本
  3. EL表达式输出数据时, 比jsp的表达式脚本简洁
  4. EL表达式基本语法: ${key1}
  5. EL表达式在输出null时, 输出的是""
  6. jsp表达式脚本输出null时, 输出的是"null"字符串
    在这里插入图片描述

2.2 EL表达式输出形式

public class Book {
    private String name;//书名
    private String[] writer;//作者
    private List<String> reader;//读者
    private Map<String, Object> topics;//评讲

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String[] getWriter() {
        return writer;
    }

    public void setWriter(String[] writer) {
        this.writer = writer;
    }

    public List<String> getReader() {
        return reader;
    }

    public void setReader(List<String> reader) {
        this.reader = reader;
    }

    public Map<String, Object> getTopics() {
        return topics;
    }

    public void setTopics(Map<String, Object> topics) {
        this.topics = topics;
    }

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", writer=" + Arrays.toString(writer) +
                ", reader=" + reader +
                ", topics=" + topics +
                '}';
    }
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>el 表达式输出数据演示</title>
</head>
<body>
<h1>el 表达式输出数据演示</h1>
<%
    // private String name;//书名
    //private String[] writer;//作者
    //private List<String> reader;//读者
    //private Map<String, Object> topics;//评讲

    //创建Book, 放入相关属性
    Book book = new Book();
    book.setName("雪国");

    book.setWriter(new String[]{"川端康成","2"});

    ArrayList<String> list = new ArrayList<>();
    list.add("赵志伟");
    list.add("赵培竹");
    book.setReader(list);

    Map<String, Object> hashMap = new HashMap<>();
    hashMap.put("赵志伟", "讲的不错❤");
    hashMap.put("赵培竹", "Love❤");
    book.setTopics(hashMap);

    //把book对象 放入request域对象
    request.setAttribute("bookkey", book);
%>
book对象: ${bookkey}<br/>
book.name: ${bookkey.name}<br/>
book.writer: ${bookkey.writer}<br/>
book.writer[0]: ${bookkey.writer[0]}<br/>
book.readers: ${bookkey.reader}<br/>
book.readers.get(1): ${bookkey.reader.get(1)}<br/>
book.readers[0]: ${bookkey.reader[0]}<br/>
book.topics["赵志伟"]: ${bookkey.topics["赵志伟"]}<br/>
book.topics.get("赵培竹"): ${bookkey.topics.get("赵培竹")}<br/>
</body>
</html>

输出结果
在这里插入图片描述

2.3 el运算符

关系运算符说明范例结果
== 或 eq等于${5 == 5} 或 ${5 eq 5}true
!= 或 ne不等于${5 != 5} 或 ${5 ne 5}false
< 或 lt小于${3 < 5} 或 ${3 lt 5}true
> 或 gt大于${3 > 5} 或 ${3 gt 5}false
<= 或 le小于等于${3 <= 5} 或 ${3 le 5}true
>= 或 ge大于等于${3 >= 5} 或 ${3 ge 5}false
  • 逻辑运算
逻辑运算符说明范例结果
&& 或 and与运算${12 == 12 && 12 < 11}false
或 or或运算${12 == 12
! 或 not取反运算${ !true } 或 ${not true}false
  • 算术运算
算数运算符说明范例结果
+加法${12 + 12}30
-减法${24 - 12}12
/ 或 div除法${ 144 / 12 } 或 ${ 144 div 12 }12
*乘法${ 144 * 10 }1440
% 或 mod取模${ 144 % 10 } 或 ${ 144 mod 10 }4

2.4 empty运算

  1. empty运算可以判断一个数据是否为空, 如果为空, 返回true, 否则返回false
  2. 以下几种情况为空
  • 值为null
  • 值为空串
  • 值是Object类型数组, 长度为零
  • list集合, 元素个数为零
  • map集合, 元素个数为零
    在这里插入图片描述
    在这里插入图片描述
  • 三元运算
    在这里插入图片描述

2.5 EL获取四个域数据

变量类型说明
pageContextPageContextImpl获取jsp中的九大内置对象
pageScopeMap<String, Object>获取pageContext域中的数据
requestScopeMap<String, Object>获取Request域中的数据
sessionScopeMap<String, Object>获取Session域中的数据
applicationScopeMap<String, Object>获取ServletContext域中的数据

在这里插入图片描述
在这里插入图片描述

2.6 EL获取HTTP相关信息

在这里插入图片描述
在这里插入图片描述

3. JSTL标签库

3.1 jstl 快速入门

  1. JSTL标签库是指 JSP Standard Tag Library(JSP标准标签库)
  2. EL表达式是为了替换jsp中的表达式脚本, JSTL是为了替换代码脚本. 这样jsp页面变得更加简洁
  3. JSTL由五个标签库组成
功能范围URI前缀
核心标签库http://java.sun.com/jsp/jstl/corec
格式化http://java.sun.com/jsp/jstl/fmtfmt
函数http://java.sun.com/jsp/jstl/functionsfn
数据库http://java.sun.com/jsp/jstl/sqlsql
XMLhttp://java.sun.com/jsp/jstl/xmlx
  1. 使用JSTL, 需要导入相关的jar包, 即taglibs-standard-impl-1.2.1.jar, taglibs-standard-spec-1.2.1.jar
    在这里插入图片描述

3.2 <c:set/>标签

  1. 介绍: <c:set scope=“request” var=“username” value=“赵志伟”/>

<c:set />标签可以往域中存放数据

  1. 等价于 域对象.setAttribute(key, value);
  2. scope属性 设置保存到哪个域
    page表示PageContext域 (如果不写, 默认值)
    request表示Request域
    session表示Session域
    application表示ServletContext域
  3. var属性 设置key值
  4. value属性 设置值
    在这里插入图片描述

3.3 <c:if/>标签

  1. 介绍: <c:if test=“${10 > 2}”>hello</c:if>

<c:if />

  1. if标签用来做if判断
  2. test属性表示判断的条件(用EL表达式输出)
    在这里插入图片描述

3.4 <c:choose/>标签

  1. 介绍: 多路判断, 跟switch…case…default非常接近
  1. 取值问题
    在这里插入图片描述
    在这里插入图片描述
  2. c:choose标签使用在这里插入图片描述

3.5 <c:forEach/>标签

varstatus的使用, 参考👉
遍历Map集合的方法, 参考👉
c:forEach的循环次数,以及内部循环数据累加统计

  1. 介绍: c:forEach标签, 用来遍历输出, 主要有4种形式
  • 普通遍历输出 i 到 j
    在这里插入图片描述
  • 遍历数组
    在这里插入图片描述
  • 遍历Map
    在这里插入图片描述
  • 遍历List
    在这里插入图片描述

3.6 作业布置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1860105.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝牙技术|苹果iOS 18的第三方配件将支持AirPods / AirTag的配对体验

苹果公司在 iOS 18 系统中引入了名为 AccessorySetupKit 的新 API&#xff0c;用户不需要进入蓝牙设置和按下按钮&#xff0c;系统就能识别附近的配件&#xff0c;并提示用户进行配对。首次向配件制造商开放这种配对体验。 iPhone 用户升级 iOS 18、iPad 用户升级到 iPadOS 1…

SAP BC 修改 FINS_ACDOC_CUST116 ERROR 为 WARNING 信息

FI再改如下配置时报错了 消息号 FINS_ACDOC_CUST116 参考 SAP 消息控制_sap消息号更改w为e-CSDN博客 需要指出的是你必须注意做重要的三个表 T100:包含所有的message T100C:你定义的message通常将出现在此表 T100s:Configurable system messages顾名思义就是你能设置的消息…

游戏AI的创造思路-技术基础-深度学习(4)

下面的内容是让AI进行左右互博&#xff0c;这就是传说中的GAN对抗网络 当然&#xff0c;周伯通和GAN真的是难兄难弟&#xff0c;欲练神功&#xff0c;结果被黄药师&#xff08;欺骗&#xff09;坑了 目录 3.4. 生成对抗网络&#xff08;GAN&#xff09; 3.4.1. 定义 3.4.2.…

JVM专题四:JVM的类加载机制

Java中类的加载阶段 类加载 Java中的类加载机制是Java运行时环境的一部分&#xff0c;确保Java类可以被JVM&#xff08;Java虚拟机&#xff09;正确地加载和执行。类加载机制主要分为以下几个阶段&#xff1a; 加载&#xff08;Loading&#xff09;&#xff1a;这个阶段&#x…

ServBay[中文] 下一代Web开发环境

ServBay是一个集成式、图形化的本地化Web开发环境。开发者通过ServBay几分钟就能部署一个本地化的开发环境。解决了Web开发者&#xff08;比如PHP、Nodejs&#xff09;、测试工程师、小型团队安装和维护开发测试环境的问题&#xff0c;同时可以快速的进行环境的升级以及维护。S…

【源码+文档+调试讲解】校园商铺管理系统

摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;校园商铺当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了校园商铺的发展&#xff0c;它彻底改变了过去传统的管理方…

WARP 加速您的 AI 数据存储基础设施

你知道一些最好的人工智能模型的秘诀吗&#xff1f;这是他们可以访问的数据量&#xff0c;他们可以接受培训。对于 AI/ML 模型&#xff1a;快速访问数据为王。让我强调一下&#xff0c;这不仅仅是数据&#xff0c;而是快速访问的数据。如果有人可以构建更快、更强大的模型&…

量子计算的崛起:开启计算新纪元

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

外贸SEO工具有哪些推荐?

"我们作为一个专业的Google SEO团队&#xff0c;比较推荐一下几个适合外贸SEO的工具。Ahrefs 是一个非常强大的工具&#xff0c;可以帮助你深入分析竞争对手的表现&#xff0c;找到有潜力的关键词&#xff0c;还可以监控你的网站链接状况。另外&#xff0c;SEMrush 也很不…

unity使用XR插件开发SteamVR项目,异常问题解决方法

一、unity使用XR插件开发SteamVR项目&#xff0c;运行后相机高度异常问题解决方法如下操作 &#xff08;一&#xff09;、开发环境 1、Unity 2021.3.15f 2、XR Interaction Toolkit Version 2.5.2 &#xff08;com.unity.xr.interaction.toolkit&#xff09; 3、OpenXR Pl…

互联网IT公司网站选择科技蓝,从来没让人失望过。

选择科技蓝色作为IT官网的主题颜色有以下好处&#xff1a; 专业感&#xff1a;科技蓝色通常与科技、创新和专业相关联&#xff0c;使用科技蓝色可以给访问者一种专业、可靠的印象&#xff0c;增强品牌形象&#xff0c;特别适合IT行业。技术感&#xff1a;科技蓝色给人一种科技…

现身说法,AI小白的大模型学习过程

导读 写这篇文章的初衷&#xff1a;作为一个AI小白&#xff0c;把我自己学习大模型的学习路径还原出来&#xff0c;包括理解的逻辑、看到的比较好的学习材料&#xff0c;通过一篇文章给串起来&#xff0c;对大模型建立起一个相对体系化的认知&#xff0c;才能够在扑面而来的大…

微信小程序笔记 七!

页面配置 1. 页面配置文件的作用 小程序中&#xff0c;每个页面都有自己的 .json 配置文件&#xff0c;用来对当前页面的窗口外观、页面效果等进行配置。 2. 页面配置和全局配置的关系 小程序中&#xff0c;app.json 中的 window 节点&#xff0c;可以全局配置小程序中每个…

AVI 是什么格式,AVI 格式用什么播放器打开?

AVI 是什么格式&#xff1f;提到 AVI 格式想必大家多数会想到在 DVD 横行的年代&#xff0c;光盘中所包含的媒体视频格式多是以 AVI 格式存储。AVI 是一个非常通用的容器格式&#xff0c;支持多种视频和音频编解码器。这意味着从DVD中提取视频内容时&#xff0c;可以通过转码为…

国际网络专线怎么开通?

在全球化日益加速的今天&#xff0c;企业越来越需要稳定、高效的网络来支撑他们的跨国业务。国际网络专线&#xff0c;作为外贸企业、出海企业等拓展全球业务的关键基础设施&#xff0c;其重要性不言而喻。那么&#xff0c;企业如何才能开通国际网络专线呢&#xff1f;本文将详…

嵌入式系统习题库及答案

嵌入式系统习题库及答案 ## 1&#xff0e;选择题 1&#xff0e; 以下哪个不是嵌入式系统的设计的三个阶段之一&#xff1a;&#xff08;A&#xff09; A 分析 B 设计 C 实现 D 测试 2&#xff0e; 以下哪个不是RISC架构的ARM微处理器的一般特点&#xff1a;&#xff08…

展厅设计规划都有哪些重要性

1、明确展览目标 在展厅设计上一定要有一个清晰的目标&#xff0c;现在互联网多媒体技术的出现&#xff0c;对于展厅设计有很大的帮助。而获得效益是进行展厅展馆设计的根本意图&#xff0c;在展厅展馆规划过程中需要对展览的目标以及展览的技术手段进行剖析和匹配&#xff0c;…

mysql中存储过过程和游标的联合使用

1.SQL如下&#xff1a; DELIMITER // DROP PROCEDURE IF EXISTS PrintAllEmployeeNames5; CREATE PROCEDURE PrintAllEmployeeNames5() BEGINDECLARE error_count INT DEFAULT 0;DECLARE num INT ;DECLARE done INT DEFAULT 0;DECLARE id1 BIGINT DEFAULT 0;DECLARE address VA…

Mysql----表的约束

提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、表的约束 表的约束&#xff1a;表中一定要有约束&#xff0c;通过约束让插入表中的数据是符合预期的。它的本质是通过技术手段&#xff0c;让程序员插入正确的数据&#xff0c;约束的最终目标是保证…

Word怎么删除空白页?5招轻松删除!

在文字的海洋中遨游&#xff0c;我们时常会遭遇一些“隐形刺客”——它们悄无声息地潜入我们的文档&#xff0c;让原本整洁的页面变得凌乱不堪。这些“刺客”就是Word文档中的空白页&#xff0c;它们可能隐藏在章节的末尾&#xff0c;也可能潜伏在页眉页脚的深处&#xff0c;给…