一、EL表达式:

1.简介:EL全称为Expression Language,原本是JSTL1.0为方便存储数据所定义的语言,当时只能在JSTL标签中

使用,到了JSTL2.0之后,EL已经成为正式纳为正式的标准规范之一,因此只要是支持Servlet2.4/JSP2.0的Container,

就可以在网页中直接使用EL。

2.语法:${sessionScope.user.sex},所有的EL都是以${开始,以}结尾

3.运算符:.和[]两种运算符来存取数据,同时也可以混合使用,[]是为了解决属性名带有特殊字符,例如使用setAttribute()

存一个属性名为com.test.web的属性名,使用.就无法获取到,使用[]就没问题。

例如:

${sessionScope.user.sex} = ${sessionScope.user["sex"]}
${sessionScope.shoppingCart[0].price}

4.变量范围:EL获取变量的方法很简单,例如${username},它的意思就是取出某一范围中名称为username的变量,因为没有指定具体一范围,所以它默认会从page范围找,假如找不到,一次 到Request、session、application范围,加入途中找到username就直接回传,假如全部范围找过之后没有找到返回null。

        属性范围        在EL中的名称
Page PageScope
Request RequestScope
Session SessionScope
Application ApplicationScope

获取指定某一范围的变量

${pageScope.username}:取出page范围内的username变量
${requestScope.username}:取出request范围内的username变量
${sessionScope.username}:取出session范围内的username变量
${application.username}:取出application范围内的username变量

其中pageScope、requestScope、sessionScope、application都是EL表达式的隐含对象

5.自动类型变换

    age:${param.age }
<br><br>
age:<%=request.getParameter("age") %>
<br><br>
对数据进行加减操作之后:
<br><br>
age:${param.age + 10}
<br><br>
age:<%=request.getParameter("age") + 10%>

6.隐含对象

        ①与范围有关的对象
application
session(重要)
request(重要)
page。
②与输入有关的对象
param(重要):获取一个请求参数
paramValues(重要):获取一组请求参数
③其他对象
cookie
header
headerValues
initParam:获取当前web应用的初始化参数
pageContext(重要)

7.运算符

        ①算数运算符
+、-、*、/、%
②关系运算符
==、!=、>、>=、<、<=
例如:${param.user == param.user1}
③逻辑运算符
&&、||、!
④其他运算符
empty运算符:主要用来判断值是否为空,是为true,否则为false
条件运算符
()运算符
⑤EL函数,自定义函数
jstl函数:
fn:contains(String, substring)
...

EL自定义函数:在EL表达式中调用的某个Java类的静态方法,这个静态方法需要在web应用程序中进行配置才可以被EL

表达式调用,EL自定义函数可以扩展EL表达式的功能,让EL表达式完成普通Java程序代码所完成的功能。

编写自定义函数的步骤:

编写EL自定义函数映射的Java类中的静态方法,这个Java类必须带有public修饰符,方法必须是这个类的带有

public修饰符的静态方法。

编写标签库描述文件(tld文件),在tld文件中描述自定义函数。

在JSP页面中导入和使用自定义函数。

二、JSTL

核心标签库

1.jstl表达式

        out:显示数据内容,例如:<c:out value="${username}">
set:将变量储存至jsp范围中或是JavaBean的属性中,<c:set value="value" var="varName" [scope="{page|request|session|application}"]>其中target、property、value属性支持EL表达式
remove:移除属性
catch

2.jstl流程控制

if:没有else,但是可以把结果存储到域对象中
choos、when、otherwise,可以实现if else的效果但较为麻烦,when和otherwise不能脱离choose使用
而且when必须要在otherwise

3.迭代操作

        forEach:为循环控制,它可以将集合中的成员循环浏览一遍,运作方式当条件符合时,就会持续重复执行<c:forEach>
的本体内容。索引从0开始
语法:<c:forEach [var="varName"] items="collection"[varStatus="varStatusName"][begin="begin"][end="end"][step="step"]>
本体内容...
</c:forEach>
forTokens:用来浏览一个字符串中所有成员,其成员是由定义符号所分割的
语法:<c:forToken items="StringOfTokens" delims="delimiters"[var="varName"][varStatus="varStatusName"][begin="begin"][end="end"][step="stpe"]>
</c:forToken>

4.URL操作

        import:可以把其他静态页面包含至本身JSP网页,与<jsp:include>的区别在于:<jsp:include>只能包含
和自己同一个web application下的文件,而<c:import>除了能够包含和自己同一个问application的文件之外,
亦可以包含不同web application或者是其他网站的文件。
语法:<c:import url="url"[context="context"][var="varName"]>
redirect:从当前页面重定向到指定的页面,也可以是其他web application应用的页面。
url:产生一个url地址,可以Cookie是否可用来进行智能URL重写,对GET请求的参数进行编码
客户端请求:代表站点:${pageContext.request.contextPath }
或者<%= request.getContextPath %>

JSP(7)—EL和JSTL的更多相关文章

  1. jsp与El,jstl知识点总结归纳

    jsp与El,jstl知识点总结归纳 jsp部分 一.jsp的三大指令 page ,include,taglib 1.jsp中的page指令 <% page %>-设置jsp 例如: &l ...

  2. 第75节:Java的中的JSP,EL和JSTL

    第75节:Java中的JSP,EL和JSTL 哭吧看不完的!!! Cookie和`Session 请求转发和重定向的区别: 地址不一样 请求次数也不一样 数据无法传递 4.跳转范围有限制 效率 请求转 ...

  3. [Java] JSP笔记 - EL、JSTL 常用标签

    一. 什么是 EL 语言 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语言. 二.EL 语言的作用 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMASc ...

  4. JSP、EL、JSTL

    JSP(Java Server Pages) 什么是JSP Java Server Pages(Java服务器端的页面) 使用JSP:SP = HTML + Java代码 + JSP自身的东西.执行J ...

  5. Jsp应用EL和JSTL实例对比。

    普通方式: register.jsp <%@ page language="java" import="java.util.*" pageEncoding ...

  6. JSP和EL和JSTL

    什么是JSP Java Server Page的缩写从用户角度看待,就是一个网页从程序员角度看待,其实是一个java类,它继承了Servlet,所以可以直接说jsp就是一个Servlet 为什么会有J ...

  7. Cookie、Session、jsp、EL、JSTL

      会话技术 Cookie Session 从访问一个站点,到关闭不继续访问 称为一次会话过程.会话技术就是记录本次会话中客户端的状态与数据的. 会话技术分为cookie.session. cooki ...

  8. JSP的EL和JSTL解析

    1. EL 简介EL 全名为Expression Language,所有EL都是以${ 为起始.以} 为结尾的.EL 语法很简单,它最大的特点就是使用上很方便. 接下来介绍EL 主要的语法结构: ${ ...

  9. jsp之el表达式jstl标签

    不管是el表达式还是jstl标签最终的目的都是要消除jsp中的java代码,当然是消除显式的java代码 el表达式的出现是为了简化jsp中读取数据并写入页面的操作. el表达式的功能不多,也很好记 ...

随机推荐

  1. P2860 [USACO06JAN]冗余路径Redundant Paths

    题解: 首先要边双缩点这很显然 然后变成树上问题 发现dp,dfs好像不太对 考虑一下度数 发现只要在度数为1的点之间连边 但我好像不太会证明这个东西.. 网上也没有看到比较正确的证明方法和连边策略. ...

  2. ASP.NET machineKey的作用和使用方法

    ASP.NET machineKey的作用 如果你的Asp.Net程序执行时碰到这种错误:“验证视图状态 MAC 失败.如果此应用程序由网络场或群集承载,请确保 <machineKey> ...

  3. GB/T19001—2008质量管理体系要求、标准、贯标(贯彻标准)

    应知应会知识 GB/T19001—2008质量管理体系要求.标准.贯标(贯彻标准)   一.质量管理体系的八项管理原则是什么? 1.以顾客为关注焦点 2.领导作用 3.全员参与 4.过程方法 5.管理 ...

  4. ELK 环境搭建4-Kafka + zookeeper

    一.安装前准备 1.节点 192.168.30.41 192.168.30.42 192.168.30.43 2.操作系统: Centos7.5 3.安装包 a.java8: jdk-8u181-li ...

  5. Codeforces Gym100783H 最短路 其他

    原文链接https://www.cnblogs.com/zhouzhendong/p/CF-Gym100783H.html 题目传送门 - CF-Gym100783H 题意 给定一个 $n$ 个节点 ...

  6. BZOJ1497 [NOI2006]最大获利 网络流 最小割 SAP

    原文链接http://www.cnblogs.com/zhouzhendong/p/8371052.html 题目传送门 - BZOJ1497 题意概括 有n个站要被建立. 建立第i个站的花费为pi. ...

  7. 014 Security的认证流程源码级详解

    一:任务 1.任务 认证处理流程说明 认证结果如何在多个请求之间共享 获取认证用户信息 二:认证处理流程处理说明 1.流程图 这里只是一个登陆到登陆的认证部分的流程图. 2.流程解释 3.断点跟踪 页 ...

  8. 010 异步处理Rest服务

    一:任务 1.任务 使用Runnable异步处理Rest服务 使用DefaultResult异步处理Rest服务 异步处理的配置 2.原理图说明 二:Callable进行异步处理 1.程序 新建一个a ...

  9. 基于TensorFlow的MNIST数据集的实验

    一.MNIST实验内容 MNIST的实验比较简单,可以直接通过下面的程序加上程序上的部分注释就能很好的理解了,后面在完善具体的相关的数学理论知识,先记录在这里: 代码如下所示: import tens ...

  10. JavaScript深拷贝实现原理简析

    原文:http://www.cnblogs.com/xie-zhan/p/6020954.html JavaScript实现继承的时候,需要进行对象的拷贝:而为了不影响拷贝后的数据对原数据造成影响,也 ...