关于EL JSP 2.0將Expression Language(以下简称EL)整合进JSP标准规格。

Slides:



Advertisements
Similar presentations
第 4 章 配合 例子源代码一起使用 Power point 制作:耿祥义 张跃平 普通高等教育 “ 十一五 ” 国家级规划教材 JSP 内置对象.
Advertisements

第 4 章 JSP 内置对象 本章主要内容:  内置对象的概念  内置对象的作用域和生命期  内置对象的作用和关系  内置对象的使用方法.
网络应用程序设计 2014 JavaBean. JavaBean 及其属性 JavaBean 就是一种 Java 的组件技术 JavaBean 是 Java 类 JavaBean 通过约定的方法名实现属性功能 简单属性 void setXxx(Type value) Type getXxx() boolean.
第二章 JSP 编译指令. 课程目标  JSP 编译指令  JSP 页面的表达式  JSP 页面的注释  JSP 页面的声明  Scriptlets.
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
LOGO 第 9 章 Java Servlet 和 JSP 编程 孙焘. 重点: servlet 编程原理 1 servlet 的基础类与编程实现 2 JSP 编程原理 3 JSP 的常用语法 4.
第 7 章 配合 例子源代码一起使用 Power point 制作:耿祥义 张跃平 普通高等教育 “ 十一五 ” 国家级规划教材 JSP 与 JavaBean.
Power point 制作 耿祥义 张跃平 配合 例子源代码一起使用. 第 5 章 JSP 与 JavaBean JavaBean 是一个可重复使用的软件组件, 是遵循一定标准、用 Java 语言编写的一 个类,该类的一个实例称为一个 JavaBean ,简称 bean.
阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);
动态Web开发技术--JSP.
第一章 JSP概述.
上节课我们是讲解了request, response, session, application 等内置对象,有了它们,我们就可以编写一个完整的应用程序了。 我们来看ebank这个小应用程序的编写。
Tool Command Language --11级ACM班 金天行.
JSTL标签库 讲师:梁 桐 北京传智播客教育 1。缓存数据 2。处理字符乱码 3。监听器中的定时器
常用逻辑用语复习课 李娟.
Chapter 4 流程控制.
Google App Engine Google 應用服務引擎.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
Ch07 PHP程式基礎 網頁程式設計.
专题4:JSP脚本和指令.
第3章 變數、資料型別與運算子.
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
SQL Injection.
走进编程 程序的顺序结构(二).
辅导课程六.
DWR WEB开发交流 1、自我介绍 2、DWR概述 3、DWR DEMO介绍 4、DWR实现机制 5、DWR配置说明 6、JS开发注意事项.
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
第二章 Java语言基础.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
任务1-3 使用Dreamweaver创建ASP网页
第4章 PHP流程控制语句.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
Java變數 2014/6/24.
Drupal Dev 我想知道:什么时候、什么变化.
Java Server Faces 参考书籍 Java Server Faces 核心编程.
第二章 Java基本语法 讲师:复凡.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
Lightweight Data-flow Analysis for Execution-driven Constraint Solving
第4章 Excel电子表格制作软件 4.4 函数(一).
第二章 Java语法基础.
第九节 赋值运算符和赋值表达式.
iSIGHT 基本培训 使用 Excel的栅栏问题
3.16 枚举算法及其程序实现 ——数组的作用.
1.2 子集、补集、全集习题课.
Chapter 18 使用GRASP的对象设计示例.
第4课时 绝对值.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
学习目标 1、了解基本运算符 2、运算符优先级.
第二章 Java基本语法 讲师:复凡.
第二章 Java基本语法 讲师:复凡.
Python 环境搭建 基于Anaconda和VSCode.
滤波减速器的体积优化 仵凡 Advanced Design Group.
复习 标签(label)、文本框(text)控件 按钮:点击事件
基于列存储的RDF数据管理 朱敏
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
WEB程序设计技术 数据库操作.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
鸡兔同笼(续) ——选择结构.
Java程序设计 第3章 控制语句.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
顺序结构程序设计 ——关于“字符串”和数值.
<编程达人入门课程> 本节内容 有符号数与无符号数 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第5章 表达式语言.
Presentation transcript:

关于EL JSP 2.0將Expression Language(以下简称EL)整合进JSP标准规格。 EL并非全新的语言,最早出现于JSTL 1.0当中,被用来简化数据存取的相关操作 。 由于EL已是JSP的标准,因此用户可以选择直接在JSP网页当中使用EL替代Java进行数据的存取操作 。 EL有其专属的一套语法,包含了两项基本要素:变量与运算符 。 EL內建隐含对象(implicit variables),以Java集合对象的型态出现,其中储存了网页的各种信息,包含session、cookie和网页传输过程当中所使用的参数值 。 JSP 动态网页新技术

EL 语法 EL必须以一个金钱表示符号加上左大括号 ${ 开始,并且以右大括号 } 作结束。 ${ EL expression } JSP 动态网页新技术

一个储存了特定数据内容的符号,EL可以直接对其作存取,或是结合运算符进行必要的运算之后作输出 JSP 动态网页新技术

运算符 运 算 符 说 明 . 存取bean property 或是map entry [] 存取 array or List 元素 () 说 明 . 存取bean property 或是map entry [] 存取 array or List 元素 () 改变运算顺序 ? : 条件式三元运算 condition ? ifTrue : ifFalse + 加法运算 - 减法运算 * 乘法运算 / or div 除法运算 % or mod 模数运算 JSP 动态网页新技术

运算符 运 算 符 说 明 == or eq 对等运算 != or ne 不相等运算 < or lt 小于比较运算 说 明 == or eq 对等运算 != or ne 不相等运算 < or lt 小于比较运算 > or gt 大于比较运算 <= or le 小于或等于比较运算 >= or ge 大于或等于比较运算 && or and 逻辑AND运算 || or or 逻辑OR运算 ! or not 布尔补码运算 empty 空值运算 func(args) 函数调用 JSP 动态网页新技术

运算符(.)与方括号([]) 无论action elements 或是隐含对象的数据内容,均是一种集合(collection)对象,EL可以通过点运算符(.)或是方括号([])对其作存取 。 ${ param.yearValue } ${ param["yearValue"] } JSP 动态网页新技术

算术运算符 运 算 符 说 明 + 对两个数值进行加法运算 - 对两个数值进行减法运算 * 对两个数值进行乘法运算 / 或是 div 说 明 + 对两个数值进行加法运算 - 对两个数值进行减法运算 * 对两个数值进行乘法运算 / 或是 div 对两个数值进行除法运算 % 或是 mod 对两个数值进行模数运算 JSP 动态网页新技术

表达式A{+、-、*}B 首先如果A与B为null,则运算之后的结果,是一个long型态的0 。 A或B其中一个是BigDecimal,则两者均会转换成为BigDecimal 。 运 算 符 返回结果 运算符+ A.add(B) 运算符- A.subtract(B) 运算符* A.multiply(B) JSP 动态网页新技术

表达式A{+、-、*}B A或B为Float、Double或是包含.、 e或是E:的字符串(String) : 如果A或是B其中之一为BigInteger,两者均会强制转型为BigDecimal,否则转型为Double,然后进行运算 。 如果A或B为BigInteger,两者均会被强制转换成为BigInteger,然后进行表8-4中的相关运算 。 运 算 符 返回结果 运算符+ A.add(B) 运算符- A.subtract(B) 运算符* A.multiply(B) JSP 动态网页新技术

表达式A{+、-、*}B 如果非上述状况,A与B一律转换成为Long,然后进行运算 。 如果运算结果产生例外,则为错误结果 。 JSP 动态网页新技术

表达式A {/,div} B 如果A与B为null,则运算之后回传一个long型态的0 。 假若A或B为BigDecimal或是BigInteger,两者被强制转换成为BigDecimal 并且返回A.divide(B, BigDecimal.ROUND_HALF_UP)的运算结果 。 如果非上述情形,A与B强制转换成为Double然后进行运算。最后,如果运算结果产生例外,则为错误结果 。 JSP 动态网页新技术

表达式A {%,mod} B 如果A与B为null,返回Long型态数值0 。 假若A或 B为Float、Double或是包含.、e或是E的字符串(String),将A与B两者强制转换为Double之后进行运算 。 如果A或B为BigInteger,强制转换为BigInteger之后,返回A.remainder(B)的运算结果 。 A与B如果非上述状况则转换为Long进行运算。最后,若运算结果 发生例外,则为错误结果 。 JSP 动态网页新技术

关联运算符 运 算 符 说 明 == and eq 等于 != and ne 不等于 < and lt 小于 > and gt 说 明 == and eq 等于 != and ne 不等于 < and lt 小于 > and gt 大于 <= and le 小于等于 >= and ge 大于等于 JSP 动态网页新技术

表达式A {<,>,<=,>=,lt,gt,le,ge} B 若是A等于B,运算符<=, le, >=或是ge返回true的结果。 当A 或是B其中之一为null,返回false。 假若A或B为BigDecimal,将A与B强制转换成为BigDecimal然后返回A.compareTo(B)的运算结果。 如果A或B为Float或是uble,强制转换Double之后,进行运算。 如果A 或B为BigInteger,强制转换BigInteger ,然后返回A.compareTo(B)的比较结果。 如果A 或B为Byte、hort、Character、Integer或是Long,强制转换成为Long 然后进行运算。 当A或是B其中之一为字符串(String),强制转换成为String之后依字母进行字符串比较。 JSP 动态网页新技术

表达式A {==,!=,eq,ne} B 当 A 或是B其中之一为null,返回false运算结果。 若A 或者B为BigDecimal,两者均会强制转换成为BigDecimal再进行运算,对于==运算符而言,回传一个A.equals(B)的结果,而!=运算符则返回!A.equals(B)的结果。 当A或者B为 Float或是Double,两者均会强制转换成为Double然后进行运算。 若A 或者B为BigInteger,两者均会强制转换成为BigInteger,其中若是运算符为==,回传A.equals(B),!=则返回!A.equals(B)的运算结果 若A 或者B为Byte、Short、Character、Integer或是Long,将被强制转换成为Long之后进行运算。 若A 或者B为Boolean,将被强制转换成Boolean作运算。 若A 或者B为String,将被强制转换成String作运算。 JSP 动态网页新技术

逻辑运算符 运 算 符 说 明 && 或 and 逻辑AND运算 || 或 or 逻辑OR运算 ! 或 not 布尔值补码 说 明 && 或 and 逻辑AND运算 || 或 or 逻辑OR运算 ! 或 not 布尔值补码 JSP 动态网页新技术

Empty运算符 empty被用来判断是否指定的值为null或是空值,并且返回一个代表判断结果的Boolean值,empty的运用非常简单,如下式 : ${empty A} 其中的A为所要判断的值,下面为empty的运算规则 : 若是判断值A为null,返回true的运算结果,若是A的值为空的字符串、数组或是集合对象,也返回true的结果,除此之外,一律返回false 。 JSP 动态网页新技术

条件式三元运算符 三元运算符针对特定判断式的运算结果,决定返回的值: ${A?B:C} A为判断式,如果A的结果为true,返回B,否则返回C值的结果 。 JSP 动态网页新技术

< > <= >= lt gt le ge 运算符优先级 运算符优先级 [] . () - (unary) not ! empty * / div % mod + - (binary) < > <= >= lt gt le ge == != eq ne && and || or ? : JSP 动态网页新技术

内建对象 内建对象 说 明 pageContext 取得网页运行环境的相关信息 pageScope 取得page范围内特定属性的属性值 说 明 pageContext 取得网页运行环境的相关信息 pageScope 取得page范围内特定属性的属性值 requestScope 取得request范围内特定属性的属性值 sessionScope 取得session范围内特定属性的属性值 applicationScope 取得application范围内特定属性的属性值 param 取得request对象的单一参数值 paramValues 取得request对象的参数值 header 取得request对象单一标头值 headerValues 取得request对象标头值 cookie 取得request对象的cookie initParam 取得网页运行环境的初始参数值 JSP 动态网页新技术

内建对象 pageContext可用来取得PageContext对象当中,与JSP运行环境有关的内容信息 。 pageScope、requestScope、sessionScope和applicationScope,分别用来存取4个不同范围内的属性值 。 Param、paramValues、header、headerValues以及cookie,用來存取request对象的相关成员内容,例如网页传递参数、标头信息或是cookie等等 。 initParam 用来获取网站初始化值。 JSP 动态网页新技术

EL对象与 request 对象存取 EL对象 Request对象存取 param ServletRequest.getParameter(String name) paramValues ServletRequest.getParameterValues(String name) header HttpServletRequest.getHeader(String name) headerValues HttpervletRequest.getHeaders(String) cookie HttpServletRequest.getCookies() JSP 动态网页新技术

范围变量 EL当中4个与范围有关的隐含对象,pageScope、requestScope、sessionScope和applicationScope,可直接用来存取属于特定范围内的变量值。从对象的名称,可以很轻易的了解这些对象的适用范围,除此之外,它们与JSP内建所的隐含对象基本上是相同的 。 EL 对 象 JSP 对 象 pageScope pageContext requestScope request sessionScope session applicationScope application JSP 动态网页新技术

存取范围变量 在JSP网页当中取得特定范围变量属性,必须引用getAttribute(),并且指定所要取得的变量名称 : application.getAttribute("cname") 通过EL的存取方式: ${applicationScope.cname} JSP 动态网页新技术

Param & paramValues EL对象param与paramValues被设计用来提供使用request之外的一个选择 ,下表列出相同效果的request方法。 EL request ${param.paraName} request.getParameter(paraName) ${paramValues.paraName } request.getParameterValues(paraName) JSP 动态网页新技术

Param & paramValues存取 param内容包含当前网页所有的request参数,这段程序代码取得其中名称为yearValue的参数值 。 ${param.yearValue } 。 针对取得的参数内容,进一步对其作运算 。 ${ param.yearValue+100 } param与paramValues最大的好处便是简化了request参数数据的存取 。 JSP 动态网页新技术

Header & headerValues Header与headerValues這两个对象可以达到request对象取出HTTP标头信息 的功能,语法也相对简单许多。 ${header["host"]} 指定不同的标头名称,可直接返回相对的信息。 JSP 动态网页新技术

cookie 提供直接读取cookie所需的语法。 ${cookie.cname.value} 如果想要了解此cookie的识别名称,省略value即可。 ${cookie.cname} JSP 动态网页新技术

initParam 网站一开始启动的时候,通常需要设定某些与网站有关的参数 ,这些参数在网站根目录底下WEB-INF数据夹的web.xml文件里面作设定,打开此文件,在其中加入以下的内容: <web-app >   … <context-param> <param-name>admin</param-name> <param-value>tea</param-value> </context-param> </web-app> 引用initParam读取系统参数非常的容易,指定所要取得的参数名称即可 。 ${initParam.admin} JSP 动态网页新技术

关键字 and eq gt true instanceof or ne le false empty not lt ge null div mod JSP 动态网页新技术