EL11个内置对象
EL11个内置对象
一、概述
El一共11个内置对象,无需创建即可使用。这11个内置对象中有10个是Map类型,最后一个是pageContext对象
l pageScope
l requestScope
l sessionScope
l applicationScope
l param;
l paramValues;
l header;
l headerValues;
l initParam;
l cookie;
l pageContext;
二、域相关的对象
域内置对象一共有4个:
l pageScope:${pageScope.name}等同与pageContext.getAttribute(“name”);
l requestScope:${requestScope.name}等同与request.getAttribute(“name”);
l sessionScoep: ${sessionScope.name}等同与session.getAttribute(“name”);
l applicationScope:${applicationScope.name}等同与application.getAttribute(“name”);
如果在域中保存的是JavaBean对象,那么可以使用EL来访问JavaBean属性。因为EL只做读取操作,所以JavaBean一定要提供get方法,而set方法没有要求。
全域查找:${person}表示依次在pageScope、requesScopet、sessionScope、appliationScope四个域中查找名字为person的属性。三、请求参数相关的内置对象
param和paramValues这两个内置对象是用来获取请求参数的。
l param:Map<String,String>类型,param对象可以用来获取参数,与request.getParameter()方法相同。
注意,在使用EL获取参数时,如果参数不存在,返回的是空字符串,而不是null。这一点与使用request.getParameter()方法是不同的。
l paramValues:paramValues是Map<String, String[]>类型,当一个参数名,对应多个参数值时可以使用它。
四、请求头相关内置对象
header和headerValues是与请求头相关的内置对象:
l header:Map<String,String>类型,用来获取请求头。
l headerValues:headerValues是Map<String,String[]>类型。当一个请求头名称,对应多个值时,使用该对象,这里就不在赘述。
五、应用初始化相关参数相关内置对象
l initParam:initParam是Map<String,String>类型。它对应web.xml文件中的<context-param>参数。
六、Cookie相关内置对象
l cookie:cookie是Map<String,Cookie>类型,其中key是Cookie的名字,而值是Cookie对象本身。
七、pageContext对象
ageContext:pageContext是PageContext类型!可以使用pageContext对象调用getXXX()方法,例如pageContext.getRequest(),可以${pageContext.request}。也就是读取JavaBean属性!!!