EL:Expression Language,可以替代JSP页面中的JAVA代码
servlet(增加数据)-> jsp( 显示数据)
传统的 在JSP中用java代码显示数据的弊端:类型转换、需要处理null、代码参杂 --> EL
EL示例:
${requestScope.student.address.schoolAddress}
${域对象.域对象中的属性.属性.属性.级联属性}
EL操作符:
点操作符. – 使用方便
中括号操作符[] – 功能强大:可以包含特殊字符( . - ),
可以获取数组元素,获取变量值 例如存在变量name,则可以${requestScope[name]}获取map属性
Map<String,Object> map=new HashMap<>(); map.put("cn","中国"); map.put("us","美国"); request.setAttribute("map", map);
可以使用此方法 级联获取方法:
${pageContext.request.serverPort}
${pageContext.方法名去掉()和get并且将首字母小写}
${requestScope.map.cn}
${requestScope.map.cn}
关系运算符 逻辑运算符
Empty运算符:判断一个值null、不存在 --> ture
EL表达式的隐式对象(不需要new就能使用的对象,自带的对象)
jsp:request\response
a.作用域访问对象(EL域对象):
1、pageScope
2、requestScope
3、sessionScope
4、applicationScope
pageScope->requestScope->sessionScope->applicationScope
如果不指定域对象,则默认会根据 从小到大的顺序 依次取值
b.参数访问对象:
获取表单数据(request.getParameter()== p a r a m 、 r e q u e s t . g e t P a r a m e t e r V a l u e s ( ) = = {param}、request.getParameterValues()== param、request.getParameterValues()=={paramValues})、超链接中传的值 a.jsp?a=b&c=d,地址栏中的值 a.jsp?a=b&c=d
c.JSP隐式对象:
pageContext,在jsp中可以通过pageContext获取其他的jsp隐式对象;因此如果要在EL中使用JSP隐式对象,就可以通过pageContext简介获取,例如
${pageContext.page} ${pageContext.request} ${pageContext.getSession()} --> ${pageContext.session} ${pageContext.getResponse} --> ${pageContext.response}