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/609106/

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

(0)

大家都在看

  • 线程池

    一.为什么使用线程池? 降低资源的消耗 线程的复用 控制最大的并发数 管理线程 二.执行流程 在创建了线程池后,开始等待请求 当调用execute()方法添加一个请求任务时,线程池…

    Java 2023年6月7日
    099
  • 优雅的MVC思想

    问题提出 1.代码规范。 我见多很多同学代码不注意规范,经常在控制器里面写业务逻辑,更有甚者将业务的逻辑写在sql里面,最后导致一个问题:代码维护困难。功能实现了没错,但增加了系统…

    Java 2023年6月8日
    075
  • Java学习-第一部分-第二阶段-项目实战:坦克大战【3】

    坦克大战【3】 笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html) 坦克大战0.6版 √增加功能 2. 记录玩家的成…

    Java 2023年6月15日
    075
  • IntelliJ IDEA 出现” java: 程序包javax.servlet不存在、 java: 程序包javax.servlet.annotation”等错误

    在IDEA中建立Servlet使用javax.servlet.http.HttpServlet等类时,出现了如下错误: 原因:IntelliJ IDEA 没有导入 servlet-…

    Java 2023年5月29日
    091
  • 十九、网络编程

    十九、🔴网络编程 19.1 网络编程 19.1.1 软件架构 C/S 结构 :全称为 Client/Server 结构,是指客户端和服务器结构。常见程序有 &#xFF31;…

    Java 2023年6月5日
    077
  • docker安装redis

    拉取镜像 默认拉取最新 docker pull redis 设置配置文件 bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问 protected-mode…

    Java 2023年6月9日
    085
  • 谈统一接口协议设计

    作为一名Java后端开发人员,每个需求都涉及到接口开发。在多人开发项目中,每个人对于接口的设计都是不同的,我可以返回我认为这样非常友好的数据格式,你也可以返回你认为非常友好的数据格…

    Java 2023年6月13日
    066
  • Golang中的defer、panic与recover关键字

    一、defer关键字 1.defer关键字定义了在当前函数生命周期结束之前触发的一种机制,类似于C++中的析构函数,Java中的final关键字。如在main函数中定义: defe…

    Java 2023年6月13日
    065
  • 两个变量数值交换

    交换两个变量的值yi 一:使用第三个变量 二:不使用第三个变量 来点伤心史💔 //        i=minIndext //        自身加自身 结果改变自身 //    …

    Java 2023年6月8日
    071
  • springcloud Alibaba 2021.0.1.0 springboot 2.7.0 整合 Swagger3.0 报错解决方案

    引入依赖,版本 3.0.0 只引入一个即可 <span class="hljs-tag"><<span class="hljs…

    Java 2023年6月8日
    056
  • Nginx入门–从核心配置与动静分离开始

    写在前面 优化我们项目,服务器部署,不仅仅可以是分布式,Nginx一样可以通过动静分离,负载均衡来减轻我们服务器的压力。Nginx的知识链,学习周期相对比较长,博主也是刚刚入门,这…

    Java 2023年6月5日
    064
  • Reference 引用类

    Reference Queue *Method Summary: Reference *Method Summary: void():Clears this reference o…

    Java 2023年6月8日
    065
  • NoteOfMySQL-13-事务与并发控制

    一、事务简介 存储引擎如InnoDB、BDB才支持事务处理。 每个事务(transaction)的处理必须满足ACID原则: 原子性(Atomicity): 原子性指每个事务都必须…

    Java 2023年6月5日
    071
  • [学习笔记] Java正则表达式

    正则表达式 正则表达式定义了字符串的模式,可以用于搜索、编辑或处理文本; 正则表达式使用字符串描述规则,并用于匹配字符串; 一个正则表达式其实就是一个描述规则的字符串,被正则表达式…

    Java 2023年6月5日
    073
  • 百行以内实现复杂数学表达式计算

    一改以前 本次先上代码 package good;//Evaluate complex expressionsimport java.io.IOException;import j…

    Java 2023年6月5日
    082
  • JAVA_HOME环境配置

    JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径D:\java\jdk1.5.0_08 Path使得系统可以在任何路径下识别java命令,设为:%JAVA_HOME…

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