EL:通过EL标签取数据和输出数据,简化代码,尽量在JSP中不要使用Java代码。
语法:${输出数据或者取对象}
WebContent/WebRoot:
文件夹:el
jsp: el.jsp
一.el中的表达式
a)算术运算符
+、-、*、/和 %(或 mod)
b)关系运算符
==(或 eq)、!=(或 ne)、<(或 lt)、
>(或 gt)、<=(或 le)和 >=(或 ge)
c)逻辑运算符
&&(或 and)、||(或 or)和 !(或 not)
d)判空运算符
empty
<%String name="";
request.setAttribute("name",name);%>
如:${empty name}
例如:半径为10厘米的圆的面积为:${10*10*3.14}平方厘米!
1000除以66的余数为:${1000%66}
变量name是否为空:${empty name}
二:表达式语言(EL)中可以使用的隐含对象:
1) pageContext: jsp页面的上下文,
它提供了访问以下对象的方法,
唯一一个既是jsp的隐含对象,
又是el的隐含对象。
通过.操作符来得到数据。
a) servletContext
${pageContext.servletContext}
等于
out.println(pageContext.getServletContext())
b) session
${pageContext.session.id}
等于
out.println(pageContext.getSession().getId())
c) request
${pageContext.request}
等于
out.println(pageContext.getRequest())
d) response
${pageContext.response}
等于
out.println(pageContext.getResponse())
2) param: 把请求中的参数和单个值进行映射
${param.name}或者${param["name"]}
或者${param['name']}
等于
out.println(request.getParameter("name"))
3) paramValues: 把请求中的参数和一个array值进行映射
比如获取多选框的值。
${paramValues.hobby}
或者${paramValues["hobby"]}
或者${paramValues['hobby']}
等于
String[] array =
request.getParameterValues("hobby")
out.println(array);
${paramValues.hobby[0]}
4) cookie: 把请求中的Cookie和单个值进行映射
Cookie cookie =
new Cookie("height","100");
Cookie cookie2 = new Cookie("width","200");
response.addCookie(cookie);
response.addCookie(cookie2);
在服务器端获得从客户端发送过来的cookie:
${cookie.height}: 输出一个Cookie的对象
${cookie.height.name}=${cookie.height.value}
分别输出Cookie的名称和值(height=100)
${cookie.width}: 同上
${cookie.width.name}=${cookie.width.value}: 同上
5) initParam: 把Web应用上下文的初始化参数和单个值进行映射
${initParam.name}
等于
String value = getServletContext()
.getInitParameter("name");
out.println(value);
6) pageScope: 把page范围中的key和value进行映射
pageContext.setAttribute
("name","jack");
${pageScope.name}
等于
out.println(pageContext.getAttribute("name"));
7) requestScope: 把request范围中的key和value进行映射
request.setAttribute("name","jack");
${requestScope.name}
等于
out.println(request.getAttribute("name"));
8) sessionScope: 把session范围中的key和value进行映射
session.setAttribute("name","jack");
${sessionScope.name}
等于
out.println(session.getAttribute("name"));
9) applicationScope: 把application范围中的key和value进行映射
getServletContext().setAttribute("name","jack");
${applicationScope.name}
等于
out.println(getServletContext()
.getAttribute("name"));
注意: 如果没有指明任何的范围根据
key来查找对应的value,
默认从page、request、session
和application从小到大的范围
开始查找,若找到就不往更大的
范围去查找。
例如: ${name} ,分别从page request session 和 application中去查找name的值
(scope.getAttribute("name")),scope为上面四种范围。
语法:${输出数据或者取对象}
WebContent/WebRoot:
文件夹:el
jsp: el.jsp
一.el中的表达式
a)算术运算符
+、-、*、/和 %(或 mod)
b)关系运算符
==(或 eq)、!=(或 ne)、<(或 lt)、
>(或 gt)、<=(或 le)和 >=(或 ge)
c)逻辑运算符
&&(或 and)、||(或 or)和 !(或 not)
d)判空运算符
empty
<%String name="";
request.setAttribute("name",name);%>
如:${empty name}
例如:半径为10厘米的圆的面积为:${10*10*3.14}平方厘米!
1000除以66的余数为:${1000%66}
变量name是否为空:${empty name}
二:表达式语言(EL)中可以使用的隐含对象:
1) pageContext: jsp页面的上下文,
它提供了访问以下对象的方法,
唯一一个既是jsp的隐含对象,
又是el的隐含对象。
通过.操作符来得到数据。
a) servletContext
${pageContext.servletContext}
等于
out.println(pageContext.getServletContext())
b) session
${pageContext.session.id}
等于
out.println(pageContext.getSession().getId())
c) request
${pageContext.request}
等于
out.println(pageContext.getRequest())
d) response
${pageContext.response}
等于
out.println(pageContext.getResponse())
2) param: 把请求中的参数和单个值进行映射
${param.name}或者${param["name"]}
或者${param['name']}
等于
out.println(request.getParameter("name"))
3) paramValues: 把请求中的参数和一个array值进行映射
比如获取多选框的值。
${paramValues.hobby}
或者${paramValues["hobby"]}
或者${paramValues['hobby']}
等于
String[] array =
request.getParameterValues("hobby")
out.println(array);
${paramValues.hobby[0]}
4) cookie: 把请求中的Cookie和单个值进行映射
Cookie cookie =
new Cookie("height","100");
Cookie cookie2 = new Cookie("width","200");
response.addCookie(cookie);
response.addCookie(cookie2);
在服务器端获得从客户端发送过来的cookie:
${cookie.height}: 输出一个Cookie的对象
${cookie.height.name}=${cookie.height.value}
分别输出Cookie的名称和值(height=100)
${cookie.width}: 同上
${cookie.width.name}=${cookie.width.value}: 同上
5) initParam: 把Web应用上下文的初始化参数和单个值进行映射
${initParam.name}
等于
String value = getServletContext()
.getInitParameter("name");
out.println(value);
6) pageScope: 把page范围中的key和value进行映射
pageContext.setAttribute
("name","jack");
${pageScope.name}
等于
out.println(pageContext.getAttribute("name"));
7) requestScope: 把request范围中的key和value进行映射
request.setAttribute("name","jack");
${requestScope.name}
等于
out.println(request.getAttribute("name"));
8) sessionScope: 把session范围中的key和value进行映射
session.setAttribute("name","jack");
${sessionScope.name}
等于
out.println(session.getAttribute("name"));
9) applicationScope: 把application范围中的key和value进行映射
getServletContext().setAttribute("name","jack");
${applicationScope.name}
等于
out.println(getServletContext()
.getAttribute("name"));
注意: 如果没有指明任何的范围根据
key来查找对应的value,
默认从page、request、session
和application从小到大的范围
开始查找,若找到就不往更大的
范围去查找。
例如: ${name} ,分别从page request session 和 application中去查找name的值
(scope.getAttribute("name")),scope为上面四种范围。