2022-8-31 jsp el表达式

jsp

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


<%--jsp表达式--%></p> <pre><code>

<%@ 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="&#x503C;1" 属性2="&#x503C;2" .....%>
    page&#x6307;&#x4EE4;&#xFF1A;&#x5B9A;&#x4E49;&#x6574;&#x4E2A;JSP&#x9875;&#x9762;&#x7684;&#x76F8;&#x5173;&#x5C5E;&#x6027;
    include&#x6307;&#x4EE4;&#xFF1A;&#x5F15;&#x5165;&#x5176;&#x4ED6;&#x7684;JSP&#x9875;&#x9762;&#x3002;&#x5148;&#x628A;&#x4E24;&#x4E2A;&#x9875;&#x9762;&#x7ED3;&#x5408;&#xFF0C;&#x5728;&#x53BB;&#x7F16;&#x8BD1;&#x6210;servlet&#x3002;
    taglib&#x6307;&#x4EE4;&#xFF1A;&#x5F15;&#x5165;&#x9875;&#x9762;&#x4E0A;&#x9700;&#x8981;&#x7528;&#x5230;&#x7684;&#x6807;&#x7B7E;&#x5E93;
--%>
<% list arraylist(); int i="10" 0; %>
<h1>JSP02 Page!!!</h1>
</%></%--></body>
</html>
</%@include></%@></%@></%@>

<%-- JSP的指令标识</p> <pre><code>page指令:定义整个JSP页面的相关属性 include指令:引入其他的JSP页面。先把两个页面结合,在去编译成servlet。 taglib指令:引入页面上需要用到的标签库 </code></pre> <pre><code> <%–
JSP标签
1、内置标签
(1)jsp:include:引入指定的页面
(2)jsp:forward:转发页面
(3)jsp:param:传参数
2、JSTL标签,需要导入JSTL标签库
3、自定义标签
–%>


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"); %></p> <p>pageContext: request: session: application:</p> <pre><code> ### 面试题: #### 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 </code></pre> <p><%@ page contenttype="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html></p> <p><head> <title>Title</title> </head></p> <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} </c:foreach> <!--%----></body> <p></html></p> <!--%@--> <p>

四、EL表达式的运算

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

1. 关系运算

2022-8-31 jsp el表达式

2. 逻辑运算

2022-8-31 jsp el表达式

3. 算数运算

2022-8-31 jsp el表达式

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个隐含对象

2022-8-31 jsp el表达式
EL表达式中的11个隐含对象是EL表达式自己定义的,可以直接使用

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

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

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

Original: https://www.cnblogs.com/ychptz/p/16647634.html
Author: 阿萨德菩提子
Title: 2022-8-31 jsp el表达式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/611133/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 用户管理

    介绍Linux用户组的概念和对用户添加,删除和指定密码的基本操作 用户管理 Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一…

    数据库 2023年6月16日
    0108
  • MySQL主从备库过滤参数分析和测试

    测试环境: GTID的主从复制,主库(9900)——》备库(9909),存在测试库表: 9900_db1库:t1、t2、t3、t4、t5表 9900_db2库:t6、t7、t8、t…

    数据库 2023年5月24日
    057
  • leetcode 637. Average of Levels in Binary Tree 二叉树的层平均值(简单)

    一、题目大意 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。 示例 1: 输入:root = [3,…

    数据库 2023年6月16日
    066
  • MySQL实战45讲 4,5

    04 | 深入浅出索引(上) 索引的出现其实就是为了提高数据查询的效率,就像书的目录一样 索引的常见模型 哈希表、有序数组和搜索树 哈希表 User2 和 User4 根据身份证号…

    数据库 2023年6月16日
    098
  • python中的cls和self区别

    self:Always use self for the first argument to instance methods self是作为类进行实例化传递的第一个参数,也就是我…

    数据库 2023年6月6日
    055
  • 解决 IDEA 2021.2.3 新建maven项目只有两个archetype项目模板的问题

    最近把我的 IDEA 版本更新到 2021.2.3 了,发生了一个比较有意思的问题,做个小小的记录 思路分析 在新的 IDEA 中配置完Maven之后,想要创建Maven项目的时候…

    数据库 2023年6月11日
    072
  • 类的加载流程

    概述 什么是类加载呢? 我们知道一个Class文件编译完成之后是存在于磁盘的一个普通文件,如果想要执行,必然需要将 Class&#x6587;&#x4EF6;加载到…

    数据库 2023年6月11日
    068
  • Vue router-link点击事件不生效

    在学习路由时,想给 贴个代码: index.html 命名视图 <router-link v-on:click=&qu…

    数据库 2023年6月16日
    093
  • MySQL Bug:No suitable ‘keyring_component_metadata_query’ service implementation found to fulfill the request

    监控发现公司一台MySQL 8.0.26 的错误日志中出现大量下面告警信息: [Warning] [MY-013712] [Server] No suitable ‘k…

    数据库 2023年5月24日
    078
  • Binlog分析利器-binlog_summary.py

    ​Binlog中,除了具体的SQL,其实,还包含了很多有价值的信息,如, 拿到上面这些信息,我们可以做哪些事情呢? 开发了一个简单的Binlog分析工具-binlog_summar…

    数据库 2023年6月11日
    090
  • 程序里随处可见的interface,真的有用吗?真的用对了吗?

    这两天在和一小伙伴研究解决RabbitMQ集群重启慢导致Consumer自动重连超时的问题,已经有了解决方案。接下来需要做个整理。由于同时涉及到springboot自动配置、spr…

    数据库 2023年6月9日
    095
  • haproxy

    haproxy 一.haproxy简介 二.负载均衡 三.haproxy安装 1.yum安装 2.源码安装 2.1 配置文件解析 2.2时间格式 2.3 全局global 2.4 …

    数据库 2023年6月14日
    065
  • NO.5 MySQL-笔记

    404. 抱歉,您访问的资源不存在。 可能是URL不正确,或者对应的内容已经被删除,或者处于隐私状态。 [En] It may be that the URL is incorre…

    数据库 2023年5月24日
    078
  • Html转换PDF(Java实用版)

    前言: 在工作当中,遇到了需要把HTML页面转化为PDF文档,有很多中实现,如下进行一个对比,大家个借鉴去进行使用 各实现对比表 于Windows平台进行测试: 此博客仅基于ITe…

    数据库 2023年6月16日
    0106
  • 【SQL实战】期末考试,如何统计学生成绩

    年关将至,这两天所有小学都进入了期末考试阶段。在考试结束时,有必要清点学生的分数。有趣的是,学校提供的成绩单现在并不直接标明分数,而是一个等级,如优秀、良好、合格、不及格。至少北京…

    数据库 2023年5月24日
    0156
  • 23种设计模式之命令模式

    文章目录 概述 命令模式的优缺点 命令模式的应用场景 命令模式的结构和实现 * 模式的结构 模式的实现 总结 ; 概述 命令模式(Command Pattern)是一种数据驱动的设…

    数据库 2023年6月6日
    0114
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球