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)

大家都在看

  • SpringBoot-异常处理

    在SpringBoot中,无论是请求不存在的路径、@Valid校验,还是业务代码(Controller、Service、Dao)抛出异常,SpringBoot对错误的默认处理机制是…

    数据库 2023年6月14日
    094
  • 计算机网络 | TCP 连接的建立 和 TCP 连接的断开

    TCP 连接的建立过程 一开始,客户端和服务端都处于 close 状态。 先是服务端监听某个端口,此时服务端处于 listen 状态。 这个时候客户端就可以发送连接请求报文了。 第…

    数据库 2023年6月11日
    0128
  • MySQL学习笔记-day01

    SQL,全称 Structured Query Language, SQL用来和数据库打交道,完成和数据库的通信, SQL是一套标准。(90%以上的 SQL都是通用的)。 SQL:…

    数据库 2023年5月24日
    094
  • Docker三种文件系统总结

    概述 容器持久化,相比小伙伴都不陌生。通过Docker的volume,我们可以非常方便的实现容器数据的持久化存储。但volume之下的文件系统,相比许多小伙伴并不是非常清楚。因而本…

    数据库 2023年6月11日
    0148
  • MySQL排序方案选择

    总结一下,MySQL 总是使用 “最快” 的排序方案。 总结 总结一下,MySQL 总是使用 “最快” 的排序方案: 1、当排序数据…

    数据库 2023年6月9日
    0120
  • B树-插入

    B树系列文章 1. B树-介绍 2. B树-查找 3. B树-插入 4. B树-删除 插入 根据B树的以下两个特性 每一个结点最多有m个子结点 有k个子结点的非叶子结点拥有 k −…

    数据库 2023年6月14日
    0112
  • proxySQL with SemiSync

    配置读写分离 先查看一下规则表的表结构 https://github.com/sysown/proxysql/wiki/Main-(runtime)#mysql_query_rul…

    数据库 2023年6月16日
    086
  • Linux 下统计文件夹下文件的数量

    1、查看当前目录下的文件数量(不包含子目录中的文件) 2、查看当前目录下的文件数量(包含子目录中的文件) 3、 查看当前目录下的文件夹目录个数(不包含子目录中的目录),同上述理,如…

    数据库 2023年6月14日
    083
  • 详解在Linux中同时安装配置并使用 MySQL5.7 和 MySQL8.0

    最近需要使用mysql8.0版本,但是原本的mysql5.7版本已经被多个服务依赖,于是想想能不能同一台服务器装多个版本的mysql,一查确实可行,这里做一个记录方便自己后期回忆 …

    数据库 2023年5月24日
    086
  • MySQL之自关联查询

    假设要设计两张表,一张省份表(provinces),一张城市表(citys) 省份表结构 id ptitle 城市表结构 id ctitle proid(表示城市所属的省,对应着省…

    数据库 2023年5月24日
    0134
  • mysql查询优化

    1.count优化 a语句当行数超过11行的时候需要扫描的行数比b语句要多, b语句扫描了6行,此种情况下,b语句比a语句更有效率。 当没有where语句的时候直接select c…

    数据库 2023年5月24日
    088
  • mysql基本数据类型

    概述 要想学好mysql,了解其支持的基本数据类型以及内部原理是极为重要的,只有这样,我们才能根据不同的业务要求来选择不同的数据类型,实现最佳的存储效果和查询性能,因而本文就着重总…

    数据库 2023年5月24日
    0134
  • md5解密异常

    javax.crypto.BadPaddingException: Given final block not properly paddedat com.sun.crypto.p…

    数据库 2023年6月11日
    0101
  • MySQL学习笔记-day03

    唯一性约束修饰的字段具有唯一性,不能重复。但可以为NULL。 drop table if exists t_user; create table t_user( id int, u…

    数据库 2023年5月24日
    074
  • 博客怎么写才能更安全和简洁

    前言 博客实现本地存储 Markdown语法的介绍 博客对于我们普通人来说就是为了更好的去实现个人知识的一个整理融合然后把知识共享可以帮助其他去实现自己的一些工作或者学习中的一些疑…

    数据库 2023年6月6日
    088
  • SQL语句的整合

    基础语法 https://blog.csdn.net/m0_37989980/article/details/103413942 CRUD 提供给数据库管理员的基本操作,CRUD(…

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