EL表达式
1、EL表达式特点:1)可以与JSTL和javascript结合使用;
2)会自动类型转换;
3)可以访问一般变量,还可以访问javaBean中的属性以及嵌套属性和集合对象
4)可以执行算术运算、逻辑运算、关系运算和条件运算等操作。
5)可以获取命名空间,可以访问JSP作用域
6)可以与java类的静态方法进行映射
2、EL表达式三种禁用方法
1)使用“\” 如:\${ number }
2)<@page isELIgnore = "true">
3)web.xml中配置
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>true</el-ignored>
</jsp-property-group>
</jsp-config>
3、EL表达式访问数据
通过[ ]或者 . 访问元素
1)数组元素的获取:如 array[0]
2)list集合元素获取:list[ index ]
4、EL表达式算术运算、逻辑运算
5、EL表达式隐含对象:
5.1)pageContext对象:访问jsp内置对象,但不能获取application、config、pageContext、servletContext对象;在获取这些内置对象后,可以获取对应的属性,这些属性与对象getXXX()方法对应,在使用时,去掉方法名的get,并将首字母变为小写;
request中的getServerPort()
${ pageContext.request.serverPort }
5.2)pageScope对象:隐含对象用于返回包含page(页面)范围内的属性集合,返回值为java.util.Map对象
5.3)requestScope对象:隐含对象用于返回包含request请求范围内的属性集合,返回值为java.util.Map对象
request.setAttribute("userName","mr");
${requestScope.userName}
5.4)sessionScope对象:隐含对象用于返回包含session(会话)范围内的属性集合,返回值为java.util.Map对象
session.setAttribute("userName","mr");
${sessionScope.userName}
5.5)applicationScope对象:隐含对象用于返回包含application范围内的属性集合,返回值为java.util.Map对象
application.setAttribute("userName","mr");
${applicationScope.userName}
5.6)param对象:用于获取请求参数的值,应用在参数值只有一种情况,在应用param对象时,返回的结果为字符串;
<input name="name" type="text"/>
${ param.name }
//如果文本框中输入的是中文
${ param.setCharacterEncoding("utf-8") }
5.7)paramValues对象:如果一次请求多个值时,paramValues对象获取请求的参数的值,在应用paramaValues对象时,返回结果为数组。
<input name="action" type="checkbox" id="action" value="登山" />
<input name="action" type="checkbox" id="action" value="游泳" />
<input name="action" type="checkbox" id="action" value="晨跑" />
<input name="action" type="checkbox" id="action" value="慢走" />
request.setCharacterEncoding("utf-8");
${ paramValues.action[0] }
${ paramValues.action[1] }
${ paramValues.action[2] }
${ paramValues.action[3] }
5.8)header 和 headerValues对象:用于获取HTTP请求的一个具体的header的值,有时候拥有多个不同情况的值,这是必须使用headerValues对象。
//获取header的connection属性
${ header.connection }
//获得header的user-agent属性
${ header["user-agent"] }
5.9)initParam对象:用于获取web应用初始化的参数
<context-param>
<param-name>user</param-name>
<param-vlaue>sqc</param-value>
</context-param>
//获取
${ initParam.user }
//比如版权
<context-param>
<param-name>user</param-name>
<param-value>sqc所有</param-value>
</context-param>
版权归${ initParam.user}
5.10)cookie对象:没有设置cookie存值的方法,但是有获取cookie的方法
Cookie cookie = new Cookie("user","sqc");
response.addCookie(cookie);
//获取cookie
${cookie.user.value}