2022-8-31 jsp el表达式

news/2024/4/30 8:37:57/文章来源:https://www.cnblogs.com/ychptz/p/16647634.html

jsp

<%-- JSP脚本片段:用于在JSP页面写java代码--%>

注意:
1、JSP脚本片段中只能出现java代码,不能出现HTML元素。在 访问JSP时,JSP引擎翻译JSP页面中的脚本片段。
2、JSP脚本片段中的java代码必须严格遵守java的规则
3、一个JSP页面是可以有多个脚本片段
4、多个脚本片段中的代码可以相互访问

<%System.out.println(num);​    // 向页面打印输出
​    out.print(num);
%>
<%--JSP表达式--%>
<%= num %>
<%--JSP声明片段--%>
<%!int x = 10;static{}public void fun(){}%>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page errorPage="error.jsp" contentType="text/html;charset=UTF-8" language="java" %>
<%@include file="hello.jsp"%>
<html>
<head><title>Title</title>
</head>
<body>
<%--JSP的指令标识<%@ 指令名 属性1="值1" 属性2="值2" .....%>page指令:定义整个JSP页面的相关属性include指令:引入其他的JSP页面。先把两个页面结合,在去编译成servlet。taglib指令:引入页面上需要用到的标签库
--%>
<%List list = new ArrayList();
//    int i = 10 / 0;
%>
<h1>JSP02 Page!!!</h1>
</body>
</html>
    JSP的指令标识<%@ 指令名 属性1="值1" 属性2="值2" .....%>page指令:定义整个JSP页面的相关属性include指令:引入其他的JSP页面。先把两个页面结合,在去编译成servlet。taglib指令:引入页面上需要用到的标签库
    JSP标签1、内置标签(1)jsp:include:引入指定的页面(2)jsp:forward:转发页面(3)jsp:param:传参数2、JSTL标签,需要导入JSTL标签库3、自定义标签  
--%>
<jsp:include page="hello.jsp"></jsp:include>
<jsp:forward page="hello.jsp"><jsp:param name="num1" value="10"/><jsp:param name="num2" value="20"/>
</jsp:forward>

JSP作用域

四大作用域:
1、当前页(pageContext):一个属性只能在一个页面中获取。
2、一次请求(request):一个页面中设置的属性,范围是一次请求。
3、一次会话(session):一个会话中的属性,只要页面不关闭,都能获取到
4、整个web应用(application):在这个服务器上,当前项目下的任何一个位置都能获取。

    pageContext.setAttribute("pageContext","pageContext");request.setAttribute("request","request");session.setAttribute("session","session");application.setAttribute("application","application");
%><h1>pageContext:<%= pageContext.getAttribute("pageContext")%></h1>
<h1>request:<%= request.getAttribute("request")%></h1>
<h1>session:<%= session.getAttribute("session")%></h1>
<h1>application:<%= application.getAttribute("application")%></h1>

面试题:

1.JSP和servlet的区别?

​ 1、JSP本质上就是一个servlet
​ 2、JSP更侧重于视图展示,servlet更侧重于逻辑处理
​ 3、先有的servlet,后有的JSP

2.jsp:include标签和include指令的区别?

​ include标签:先把要引入的页面编译,再合并
​ include指令:先把要引入的页面合并,再编译

3.JSP的四大作用域

JSP的九大内置对象。内置:不需要创建,直接就能用。
1、request 请求
2、response 响应
3、session* 会话
4、out 输出
5、page 当前JSP页面对象
6、application 应用
7、exception* 异常,只能在指定了isErrorPage="true"
8、pageContext 当前页,作用域
9、config 配置

EL表达式

EL表达式的内置作用域对象
pageContext
requestScope
sessionScope
applicationScope

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html><head><title>Title</title>
</head><body><%--  向指定的作用域中设置值  --%><c:set scope="session" var="name" value="zhangsan"></c:set><c:set scope="session" var="age" value="20"></c:set>${sessionScope.name}<hr><c:if test="${sessionScope.age >= 18}">可以观看!</c:if><c:if test="${sessionScope.age < 18}">禁止观看!</c:if><hr><c:choose><c:when test="${sessionScope.age eq 18}">你已经年满18岁,可以签署劳动合同了!</c:when><c:when test="${sessionScope.age lt 18}">你好没有满18岁!</c:when><c:otherwise>你已经是大人了!!!</c:otherwise></c:choose><hr><c:forEach begin="1" end="10" step="2" var="i" varStatus="stat">${i} ----- ${stat.first} <br></c:forEach></body>
</html>

四、EL表达式的运算

语法:${运算表达式},EL表达式支持以下运算符:

1. 关系运算

在这里插入图片描述

2. 逻辑运算

在这里插入图片描述

3. 算数运算

在这里插入图片描述

4. empty运算

empty运算可以判断一个数据是否为空,若为空,输出true,不为空,输出false
以下几种情况为空(在原本的key之前加empty关键字):
(1)值为null、空串
(2)值为Object类型的数组且长度为0 (注:其他类型的长度为0的数组值为非空)
(3)List、Map集合元素个数为0

5. 三元运算

表达式 1?表达式 2:表达式 3
表达式1为真返回表达式2的值,表达式1为假返回表达式3的值

6. “.”点运算和“[ ]”中括号运算

点运算可以输出某个对象的某个属性的值(getXxx或isXxx方法返回的值)
中括号运算可以输出有序集合中某个元素的值

注:中括号运算可以输出Map集合中key里含有特殊字符的key的值

代码演示:在web目录下创建Test.jsp

EL表达式的11个隐含对象

在这里插入图片描述
EL表达式中的11个隐含对象是EL表达式自己定义的,可以直接使用

(1) pageScope、requestScope、sessionScope、applicationScope对象的使用

代码演示:在web目录下创建Test.jsp

EL表达式的缺陷:1、只能读,不能写 2、不支持流程控制语句

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

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

相关文章

猿创征文|UDP/TCP网络编程

⭐️前言⭐️ &#x1f349;博客主页&#xff1a; &#x1f341;【如风暖阳】&#x1f341; &#x1f349;精品Java专栏【JavaSE】、【备战蓝桥】、【JavaEE初阶】、【MySQL】、【数据结构】 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&…

Redis主从库网络断连问题——repl_backlog_buffer

主从库间网络断了怎么办&#xff1f; 在 Redis 2.8 之前&#xff0c;如果主从库在命令传播时出现了网络闪断&#xff0c;那么&#xff0c;从库就会和主库重新进行一次全量复制&#xff0c;开销非常大。 从 Redis 2.8 开始&#xff0c;网络断了之后&#xff0c;主从库会采用增量…

hashmap底层原理解析

底层数据结构&#xff0c;1.7与1.8有何不同? 为何要用红黑树&#xff0c;为何一上来不树化&#xff1f;树化阈值为何是8&#xff1f;何时会树化&#xff1f;何时会退化为链表? 链表比较短的时候&#xff0c;查询性能并没有那么低&#xff0c;不用费劲把它转成红黑树&#xff…

项目经理如何做好项目管理中的风险管理

项目中始终有些看不见的风险&#xff0c;这些风险可以成为威胁&#xff0c;也有可能会影响到项目的计划发生重大的变化。 一、项目目标不明确 确定项目目标是项目启动阶段重要的工作之一&#xff0c;要想项目在实施阶段少走弯路&#xff0c;在项目开工前&#xff0c;必须清晰…

信息系统项目管理师Part16-物联网

物联网 1.物联网的两项关键技术 传感器技术、嵌入式技术 2.传感器技术和嵌入式技术 RFID射频识别&#xff1a;可通过无线电信号识别特定目标并读写相关数据&#xff0c;而无需识别系统与特定目标之间建立机械或光学接触。 嵌入式技术&#xff1a;是综合了计算机硬件、传感器技…

猿创征文|OLAP之apache pinot初体验

目录 一、背景 二、介绍 三、特征 四、价值 五、参考组件 组件清单介绍&#xff1a; 1.Controller 2.Server 3.Broker 4.Minion (optional) 六、数据采集 批量数据流程 实时数据流程 查询处理流程 一、背景 最近在熟悉公司内部的埋点采集&#xff0c;发现数据架构…

NK-RTU980 CAP

BSP包中有两个CAP相关的例程&#xff0c;两个例程的区别为获取的图像数据的存储格式不同&#xff0c;planar例程是先存储所有像素点的Y&#xff0c;再存U&#xff0c;再存V。packed例程是每个像素的YVU连续存储。 一、硬件电路 处理器为NUC980DR61Y&#xff0c;封装为64pin&a…

python--转换wrf输出的风场数据为网页可视化的json格式

前言&#xff1a; 一般网页可视化风场中的数据都是json格式&#xff0c;而如果我们希望将wrf模式模拟输出的风场数据在网页中进行展示&#xff0c;这就需要先将wrfoutput数据转换为网页可以识别的json格式。 这里主要需要用到json库&#xff0c;主要的实现方式就是将读取的风场…

微信网课答案公众号题库接口使用

微信网课答案公众号题库接口使用 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&…

亚马逊审核 美国站安全带ASTMF1772安全绳攀岩绳EN892认证流程

1 登山锁扣定义 登山用锁扣是一种带弹簧门的金属环状物&#xff0c;用于在攀岩和登山时快速可逆地连接各部件&#xff0c;是安全系统关键的一部分。 登山用锁扣可用于将绳索固定到设备上&#xff0c;或者将两件或多件设备连接在一起。它们通常由铝或钢制成。这种锁扣具有不同…

ps2021神经ai滤镜无法使用,ps2021没法用神经元滤镜

如何解决ps2021 新版 AI神经滤镜不能用? 网上买正版&#xff0c;更新下就好了&#xff0c;盗版的都会有各种这样的问题。ps2021神经AI滤镜是需简要上传云端&#xff0c;由Adobe官方服务器人工智能运算的。 Ps2021版本新增了Ai神经元滤镜&#xff0c;它不是与软件一起安装的&…

谣言粉碎机?Python验证股市操盘口诀

更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流。 经常炒股的朋友,应该都听说过这段操盘口诀: 早上大跌要买,早上大涨要卖 下午大涨不追,下午大跌次日买 早上大跌不割,不涨不跌睡觉 我们随手百度,也能发现各大主流论坛,充斥着该口…

Spring入门——Eclipse实现HelloWorld程序

前言 疫情影响又延期开学&#xff0c;只能在家上上网课划划水&#xff0c;刚做完spring入门的一个小作业&#xff0c;来做个总结分享&#xff0c;我也是个刚入门的小白&#xff0c;还望大佬们指点。 步入主题 环境 eclipse/spring-tool-suite-3 jdk1.8.0_221 另外&#xff0…

Linux :mysql数据库自动备份

Linux &#xff1a;mysql数据库自动备份前言使用shell脚本进行数据库的定时备份确定备份数据库备份shell脚本定时shell脚本前言 当项目发布到服务器上后&#xff0c;接下来考虑到就是如何做好数据库的数据备份。为的就是防止服务器突然异常崩溃&#xff0c;而导致的数据丢失问…

使用上下游思维实现系统解耦

在软件开发领域&#xff0c;解耦这个词相信大家都不陌生。在面向对象的语境下&#xff0c;我们会应用SOLID原则来构建高内聚低耦合的应用&#xff0c;实现模块间的解耦&#xff1b;在复杂业务系统分析和建模时&#xff0c;会通过DDD的战略和战术设计帮助划分领域并实现分布式系…

Java毕业设计-校园活动赞助与宣传管理系统

&#x1f525;作者主页&#xff1a;疯狂行者&#x1f525; &#x1f496;✌java领域优质创作者,专注于Java技术领域技术交流✌&#x1f496; &#x1f496;文末获取源码&#x1f496; 精彩专栏推荐订阅&#xff1a;在 下方专栏&#x1f447;&#x1f3fb;&#x1f447;&#x1…

(分布式缓存)Redis持久化

一、RDB持久化 首先需要在Linux系统中安装一个Redis&#xff0c;如果尚未安装的同学&#xff0c;可以参考下面链接教程安装先&#xff1a; (73条消息) 单机安装Redis_其然乐衣的博客-CSDN博客 修改配置文件 创建一个数据 因为设置了只要5秒内有一次修改就会触发一次备份数据&am…

最全 Burp Suite 最新付费稳定版安装教程

介绍 Burp Suite是web应用程序渗透测试集成平台。从应用程序攻击表面的最初映射和分析,到寻找和利用安全漏洞等过程,所有工具为支持整体测试程序而无缝地在一起工作。 平台中所有工具共享同一robust框架,以便统一处理HTTP请求、持久性、认证、上游代理、日志记录、报警和可扩…

《QDebug 2022年8月》

一、Qt Widgets 问题交流 1.QWidget鼠标事件穿透 对于一些透明或者半透明的QWidget&#xff0c;可能需要点击其下方的按钮或其他组件&#xff0c;但是QWidget本身是会接收这些鼠标事件的&#xff0c;需要一些额外的处理。下面是百度到的一些方法&#xff1a; 方式A.设置setA…

Nacos下载和安装-windows

Nacos官网&#xff1a;https://nacos.io/zh-cn/ Nacos官方文档&#xff1a;https://nacos.io/zh-cn/docs/quick-start.html 一、下载 进入nacos官网&#xff0c;选择相应版本下载 github上nacos的zip资源&#xff0c;下载速度奇慢问题。 百度网盘&#xff1a;https://pan.b…