1:el介绍
在jsp嵌入大量的java代码,这样java代码和html标签就在一个页面了,导致jsp页面维护成本非高。
后期开发的时候,我们经常会使用Servlet处理业务逻辑,然后把处理后的数据转发到jsp页面上,最终在jsp页面把处理后的结果显示出来即可。
在开发中:
使用Servlet程序接收用户的请求并处理数据,jsp页面仅仅只是显示数据,jsp页面中不写java代码。
要在jsp页面获取不同域中存放的数据,在jsp页面上还是需要嵌入Java代码。
怎么处理 ?
2:el是什么
EL:expression language: 表达式语言,一般称它为EL表达式
它的主要功能就是从不同的域中取出数据,执行某个运算,判断等业务逻辑。
格式为:${ key} = request.getAttribute(“key”) , key就是在域对象中存储数据时的 key 值,request.setAttribute(key,value)
注意:如果域中不存在某个key值的话,EL取出来的是一个空字符串
3:EL的使用
EL表达式语句在四个域对象中执行查询时,用key为关键字,
分别从page、request、session、application四个域中查找相应的对象,如果取到值就返回对应的value,如果没有则返回空字符串 “” ,不是null
从page开始找,找到就返回,找不到就返回空字符串
先从page里面找,如果找到就立即返回显示,如果没有找到就会去request中找,找到返回,没有找到就去session中找,找到返回,没有找到去servletContext中如果找到返回,如果没有,就返回“”;
4:EL表达式获取javabean - 简单的java对象,user,emp , stu 对象的数据
5:EL表达式获取复杂数据
获取集合,map的值
6:EL表达式执行运算
1:四则运算
2:比较运算
3:判断对象是否为空
7:EL的11个内置对象使用
pageContext:就是jsp中的pageContext
pageScope:jsp中的内置对象page
requestScope:jsp中的内置对象request
sessionScope:jsp中的内置对象session
applicationScope:jsp中的内置对象ServletContext
page ,request ,session ,application 类似于一个map集合,在el表达式中直接使用这个4个内置对象,然后 . 上key,就能够从不同的范围中取出数据。
如果不知道在那个范围,就直接书写key值。
param:是获取用户请求参数中的携带的数据,类似于request中的getParameter方法
paramValues:是获取用户请求参数中的携带的数据,类似于request中的getParameterValues方法 用于获取复选框中的数据
header:获取请求头中的信息,根据指定的头获取 referer
headerValues:根据某个头获取头对应的多个value值
cookie:直接获取cookie对象
initParam:获取初始化配置的参数
EL表达式可以在jsp页面简化我们的Java代码,甚至可以不用书写Java代码。但是EL结构简单,不能完成更加复杂的业务逻辑,以及不能完成在页面的循环判断等功能。
Html 标签也不能完成咱们的逻辑处理
Java代码可以完成逻辑处理,但是规定了呢,jsp只做显示,不能写Java代码
如果要在jsp页面做逻辑处理怎么办呢 ?
Sun公司也意识到这个问题,于是又诞生了JSTL