Java基础入门day58

news/2024/7/25 2:33:14/文章来源:https://blog.csdn.net/zpz2001/article/details/139287978

day58

EL表达式

概念

EL:expression language

EL使得JSP写起来更简单、简介,主要用于获取作用域中的数据

语法

可以使用${}获取指定作用域中的数据

用于替换作用域.getAttribute("name")

${scope.name}获取指定的某个作用域中的数据

${name}获取作用域中的数据,安装作用域从小到大的顺序获取(pageContext, request, session, application)

EL和JSP脚本的区别

  • <%=request.getAttribute(“name”)>如果没有找到name, 则返回为null值

  • ${requestScope.name}没找到则返回“”

应用

<%@ page import="com.saas.entity.Student" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2024/5/24
Time: 9:08
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>EL</title>
</head>
<body>
<%Student s = new Student();
​s.setId("9527");s.setName("zhouxingxing");s.setPassword("123456");s.setAge(18);s.setSex(true);s.setAddress("huafu");s.setEmail("zhouxing@qq.com");s.setPhone("110");s.setScore(100.0);
​pageContext.setAttribute("s", s);
%>
​
<%--EL表达式1. 获取对象中的属性值2. 获取对象的方法3. 获取数组中的元素4. 获取集合中的元素5. 获取request域中的属性6. 获取session域中的属性7. 获取application域中的属性8. 获取cookie9. 获取ServletContext10. 获取ServletRequest11. 获取ServletResponse12. 获取ServletConfig13. 获取Servlet14.获取ServletContext --%>
​
<form action="ELServlet" method="post">id:<input type="text" name="id" value="${s.id}"><p />name:<input type="text" name="name" value="${s.name}"><p />age:<input type="text" name="age" value="${s.age}"><p />password:<input type="text" name="password" value="${s.password}"><p />score:<input type="text" name="score" value="${s.score}"><p />email:<input type="text" name="email" value="${s.email}"><p />sex: <input type="radio" name="sex" value="true" checked="checked">男phone:<input type="text" name="phone" value="${s.phone}"><p />address:<input type="text" name="address" value="${s.address}"><p /><input type="submit" value="submit">
​
</form>
</body>
</html>
<%@ page import="com.saas.entity.Student" %><%--Created by IntelliJ IDEA.User: AdministratorDate: 2024/5/24Time: 9:08To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>EL</title>
</head>
<body>
<%int[] arrs = new int[]{100, 22, 333, 44, 505};
​pageContext.setAttribute("arrs", arrs);
%>
arrs[0] = ${arrs[0]}
arrs[1] = ${arrs[1]}
arrs[2] = ${arrs[2]}
arrs[3] = ${arrs[3]}
arrs[4] = ${arrs[4]}
<hr />
</body>
</html>
<%@ page import="com.saas.entity.Student" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %><%--Created by IntelliJ IDEA.User: AdministratorDate: 2024/5/24Time: 9:08To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>EL</title>
</head>
<body>
<%List<Student> stus = new ArrayList<>();
​stus.add(new Student("9527", "zhouxingxing", "123456", 19, true, "huafu", "zhouxing@qq.com", "110", 100.0));stus.add(new Student("9528", "qiuxiang", "123456", 18, false, "huafu", "qiuxiang@qq.com", "110", 100.0));stus.add(new Student("9529", "shiliujie", "123456", 20, false, "huafu", "zhouxing@qq.com", "110", 100.0));stus.add(new Student("9530", "chuanxiang", "123456", 18, false, "huafu", "chuanxiang@qq.com", "110", 100.0));stus.add(new Student("9531", "jiangjun", "123456", 38, true, "huafu", "zhouxing@jiangjun.com", "110", 100.0));
​pageContext.setAttribute("stus", stus);
%>
<table border="1"><tr><td>id</td><td>name</td><td>password</td><td>age</td><td>sex</td><td>address</td><td>phone</td><td>email</td><td>score</td><td>操作</td></tr><tr><td>${stus[0].id}</td><td>${stus[0].name}</td><td>${stus[0].password}</td><td>${stus[0].age}</td><td>${stus[0].sex}</td><td>${stus[0].address}</td><td>${stus[0].phone}</td><td>${stus[0].email}</td><td>${stus[0].score}</td><td><a href="">修改</a><a href="">删除</a></td></tr>
</table>
<hr />
</body>
</html>
<%@ page import="com.saas.entity.Student" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %><%--Created by IntelliJ IDEA.User: AdministratorDate: 2024/5/24Time: 9:08To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>EL</title>
</head>
<body>
<%Map<String, String> names = new HashMap<>();
​names.put("jack", "杰克");names.put("rose", "肉丝儿");
​pageContext.setAttribute("names", names);
%>
​
jack : ${names["jack"]}
</body>
</html>
<%--Created by IntelliJ IDEA.User: AdministratorDate: 2024/5/24Time: 9:33To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>EL</title>
</head>
<body>
<%request.setAttribute("num", 1234);
%>
<h3>算数运算</h3>
num + 1 = ${num + 1}<br />
num - 1 = ${num - 1}<br />
num * 2 = ${num * 2}<br />
num / 2 = ${num / 2}<br />
num / 1 = ${num div 2}<br />
num % 2 = ${num % 2}<br />
num % 2 = ${num mod 2}<br />
​
<h3>关系运算</h3>
num > 1 = ${num > 1}<br />
num < 1 = ${num < 1}<br />
num >= 1 = ${num >= 1}<br />
num <= 1 = ${num <= 1}<br />
num == 1 = ${num == 1}<br />
num != 1 = ${num != 1}<br />
​
<h3>逻辑运算</h3>
num > 1 && num < 10 = ${num > 1 && num < 10}<br />
num > 1 || num < 10 = ${num > 1 || num < 10}<br />
!(num > 1) = ${!(num > 1)}<br />
num > 1 and num < 10 = ${num > 1 and num < 10}<br />
num > 1 or num < 10 = ${num > 1 or num < 10}<br />
!(num > 1) = ${!(num > 1)}<br />
num > 1 and num < 10 = ${num > 1 and num < 10}<br />
num > 1 or num < 10 = ${num > 1 or num < 10}<br />
​
​
</body>
</html>

JSTL

现有问题

  • EL表达式主要用于获取作用域中的数据,虽然可以做运算判断,但是得到的都是一个结果,用来做展示

  • EL不存在流程控制,比如无法做判断

  • EL表达式可以获取集合中的数据,但是也仅限于获取集合中的某一个元素,但是不能实现遍历操作,比如循环

概念

JSTL: JSP standard tag library: JSP的标准标签库

JSTL是一个JSP的标签集合

作用

  • 可对EL获取的数据进行逻辑操作

  • 与EL合作完成数据的展示

使用

需要两个jar包:standard.jar和jstl.jar

在页面中引入核心标签库

在页面中使用JSTL

核心标签

if条件判断

语法:

<c:if test='条件'></c:if>

如果test中的条件成立,执行c:if中的代码,否则不执行里面的代码

<c:if test='${8 > 2}'>8 > 2成立</c:if>
<c:if test='${8 < 2}'>8 < 2成立</c:if>
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2024/5/24
Time: 11:25
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>jstl</title><%@ taglib prefix="ccc" uri="http://java.sun.com/jsp/jstl/core" %>
</head>
<body><ccc:if test="${8 > 2}">8 > 2 成立</ccc:if><ccc:if test="${8 < 2}">8 < 2 成立</ccc:if>
</body>
</html>

以上结果中,由于8 > 2判断成立,则第一个if里面的代码将执行

8 < 2 不成立,则第二个if里面的代码将 不会执行

多条件判断choose when

语法:

<c:choose><c:when test="条件1"结果1</c:when><c:when test="条件2>结果2</c:when><c:when test="条件3>结果3</c:when><c:otherwise>结果4</c:otherwise>
</c:choose>
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2024/5/24
Time: 11:30
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>jstl</title><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
</head>
<body>
<c:set var="score" value="100" scope="page" />
<c:choose><c:when test="${score >= 90}">优秀</c:when><c:when test="${score >= 80}">良好</c:when><c:when test="${score >= 60}">及格</c:when><c:otherwise>不及格</c:otherwise>
</c:choose>
</body>
</html>
迭代foreach

语法:

<c:forEach var="i" begin="1" end="10" step="1" items="">循环代码
</c:forEach>

var: 变量名

begin:起始下标

end:结束下标

step:间隔长度

items:要遍历的集合

<%@ page import="com.saas.entity.Student" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2024/5/24
Time: 11:30
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>jstl</title><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
</head>
<body>
<%int[] arr = new int[]{1, 2, 3, 4, 5, 99, 33, 11, 7};pageContext.setAttribute("arr", arr);List<Student> stus = new ArrayList<>();stus.add(new Student("9527", "zhouxingxing", "123456", 19, true, "huafu", "zhouxing@qq.com", "110", 100.0));stus.add(new Student("9528", "qiuxiang", "123456", 18, false, "huafu", "qiuxiang@qq.com", "110", 100.0));stus.add(new Student("9529", "shiliujie", "123456", 20, false, "huafu", "zhouxing@jiangjun.com", "110", 100.0));stus.add(new Student("9530", "chuanxiang", "123456", 18, false, "huafu", "chuanxiang@qq.com", "110", 100.0));stus.add(new Student("9531", "jiangjun", "123456", 38, true, "huafu", "zhouxing@jiangjun.com", "110", 100.0));pageContext.setAttribute("stus", stus);
%>
<c:forEach var="i" begin="2" end="6" step="2" items="${arr}">${i}<p />
</c:forEach><hr><c:forEach items="${stus}" var="s">${s.id}${s.name}${s.password}${s.age}${s.sex}${s.address}${s.phone}${s.email}${s.score}<hr />
</c:forEach>
</body>
</html>

循环items中的元素,每一个元素将用var所对应的变量接收

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日复盘-20240528

今日重点关注&#xff1a; 20240528 六日涨幅最大: ------1--------300956--------- 英力股份 五日涨幅最大: ------1--------301361--------- 众智科技 四日涨幅最大: ------1--------301361--------- 众智科技 三日涨幅最大: ------1--------301361--------- 众智科技 二日涨…

【全开源】CMS内容管理系统源码(ThinkPHP+FastAdmin)

基于ThinkPHPFastAdmin的CMS内容管理系统&#xff0c;自定义内容模型、自定义单页、自定义表单、专题、统计报表、会员发布等 提供全部前后台无加密源代码和数据库私有化部署&#xff0c;UniAPP版本提供全部无加密UniAPP源码。 ​构建高效内容管理的基石 一、引言&#xff1a…

如何将 Langfuse 链接到自有 PostgreSQL 数据库并升级 PostgreSQL 版本

在本文中,我们将介绍如何将 Langfuse 应用程序链接到自有的 PostgreSQL 数据库,并升级 PostgreSQL 以支持 jsonb 类型。 前提条件 运行 CentOS 7 的服务器已安装的 PostgreSQL 9.2 或更低版本需要将 Langfuse 连接到自有数据库,并升级 PostgreSQL 以支持 jsonb 类型1. 将 La…

小程序使用vant组件库

一:下载组件库 在小程序内npm下载的包 vant组件库官网:快速上手 - Vant Weapp (youzan.github.io) 1)首先有有package.json文件,没有的话则先初始化 即使通过package.json去下载包,也需要有,可以观察下载的包. 2)下载包 3)构建npm包 下载包之后存储在node_modules内,但是我们…

R包Colorfindr识别图片颜色|用刀剑神域方式打开SCI科研配色

1.前言 最近忙里偷闲&#xff0c;捣鼓一下配色&#xff0c;把童年回忆里的动漫都搬进来&#xff0c;给科研信仰充值吧&#xff5e; 提取颜色之前写过一个Py的&#xff0c;那个很准确不过调参会有点麻烦。这里分享一个比较懒人点的R包吧&#xff0c;虽然会有一定误差&#xff…

yolox-何为混合精度计算AMP?

何为AMP&#xff1f; 全称&#xff1a;Automatic mixed precision自动混合精度。 功能&#xff1a;在神经网络推理过程中&#xff0c;实现针对不同层采用不同的数据精度进行计算&#xff0c;从而实现节省显存和加速训练的目的。 此处提到的不同数据精度包括&#xff1a;32位浮…

撤销最近一次的提交,使用git revert 和 git reset的区别

文章目录 工作区 暂存区 本地仓库 远程仓库需求&#xff1a;已推送到远程仓库&#xff0c;想要撤销操作git revert &#xff08;添加新的提交来“反做”之前的更改&#xff0c;云端会残留上次的提交记录&#xff09;git reset&#xff08;相当于覆盖上次的提交&#xff09;1.--…

探索Django 5: 从零开始,打造你的第一个Web应用

今天我们将一起探索 Django 5&#xff0c;一个备受开发者喜爱的 Python Web 框架。我们会了解 Django 5 的简介&#xff0c;新特性&#xff0c;如何安装 Django&#xff0c;以及用 Django 编写一个简单的 “Hello, World” 网站。最后&#xff0c;我会推荐一本与 Django 5 相关…

three.js能实现啥效果?看过来,这里都是它的菜(08)

在Three.js中实现旋转动画的原理是通过修改对象的旋转属性来实现的&#xff0c;通常使用渲染循环&#xff08;render loop&#xff09;来更新对象的旋转状态&#xff0c;从而实现动画效果。 具体的原理包括以下几个步骤&#xff1a; 创建对象&#xff1a;首先创建一个需要旋转…

firewalld

一、Firewalld概述 Firewalld 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具 支持IPV4、IPV6防火墙设置以及以太网桥 支持服务或应用程序直接添加防火墙规则接口 拥有两种配置模式 运行时配置 永久配置 二、Firewalld和iptables的关系 netfilter 位于L…

触觉训练技巧:盲人感知世界的第二双“眼”

在当今科技日新月异的时代&#xff0c;辅助技术正逐步成为残障人士融入社会的重要桥梁。其中&#xff0c;一款名为““蝙蝠避障””的创新软件&#xff0c;凭借其实时避障和拍照识别功能&#xff0c;为盲人朋友的日常生活带来了前所未有的便捷与安全。然而&#xff0c;技术的辅…

236. 二叉树的最近公共祖先(C++)

文章目录 前言一、题目介绍二、解决方案三、优化总结 前言 在本篇文章中我们将会讲解二叉树中极为经典的题目236. 二叉树的最近公共祖先 一、题目介绍 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的…

Visual Studio 的使用

目录 1. 引言 2. 安装和配置 2.1 系统要求 2.2 安装步骤 2.3 初次配置 3. 界面介绍 3.1 菜单栏和工具栏 3.2 解决方案资源管理器 3.3 编辑器窗口 3.4 输出窗口 3.5 错误列表 3.6 属性窗口 4. 项目管理 4.1 创建新项目 4.2 导入现有项目 4.3 项目属性配置 5. 代…

Spring AOP基于动态代理的实现的 AOP

目录 代理什么是代理代理模式 静态代理动态代理JDK动态代理CGLIB动态代理Spring AOP使用的是哪种代理&#xff1f; 代理 什么是代理 生活中的代理 房产中介 &#xff1a; 房屋进行租赁时&#xff0c;卖方会把房子授权给中介&#xff0c;由中介代理带客户看房&#xff0c;商谈…

灵动微单片机洗衣机方案——【软硬件开发支持】

RAMSUN英尚以洗衣机洗涤主驱电机为例&#xff0c;主驱电机和多电机控制首选MM32SPIN0280.灵动微电子能够提供完整的软硬件开发支持&#xff0c;目前方案已经在主流家电厂出货。 洗衣机方案 皮带洗衣机 DD直驱洗衣机 波轮洗衣机 Mini壁挂和桌面洗衣机 洗涤烘干双变频方案 热泵烘…

浙江大学数据结构MOOC-课后习题-第九讲-排序3 Insertion or Heap Sort

题目汇总 浙江大学数据结构MOOC-课后习题-拼题A-代码分享-2024 题目描述 测试点 思路分析 和上一题的思路一样&#xff0c;每进行一次迭代&#xff0c;来验证当前序列是否和给定的序列相同 代码展示 #include <cstdlib> #include <iostream> #define MAXSIZE 10…

中国企业出海,哪些业务需要负载均衡?

国内企业出海的进程正在加速。中国的出海企业剑指跨境电商、社交、游戏、短剧等市场&#xff0c;其中尤其以跨境电商的数据最为突出。据官方数据&#xff0c;2023年我国跨境电商进出口总额达到2.38万亿元&#xff0c;比2016年增长近50倍&#xff0c;占货物贸易总规模的5.7%。 …

电源小白入门学习8——电荷泵电路原理及使用注意事项

电源小白入门学习8——电荷泵电路原理及使用注意事项 电荷泵简介电荷泵原理电荷泵设计过程中需要注意的点fly电容的安秒平衡DC/DC功率转换技术对比 电荷泵简介 电荷泵&#xff08;Charge Pump&#xff09;是一种电路拓扑结构&#xff0c;用于实现电压升压或降压的功能。它通过…

记录深度学习GPU配置,下载CUDA与cuDnn

目标下载: cuda 11.0.1_451.22 win10.exe cudnn-11.0-windows-x64-v8.0.2.39.zip cuda历史版本网址 CUDA Toolkit Archive | NVIDIA Developer 自己下载过11.0.1版本 点击下载local版本,本地安装,有2个多GB,很大,我不喜欢network版本,容易掉线 cuDnn https://developer.nvi…

clickhouse——clickhouse单节点部署及基础命令介绍

clickhouse支持运行在主流的64位CPU架构的linux操作系统之上&#xff0c;可以通过源码编译&#xff0c;预编译压缩包&#xff0c;docker镜像和rpm等多种方式进行安装。 一、单节点部署 1、安装curl工具 yum install -y curl 2、添加clickhouse的yum镜像 curl -s https://pack…