EL全称为Expression Language
即表达式语言。它是JSP 2.0引入的一个新内容。EL可以简化JSP开发中的对象引用,从而规范页面代码,增加程序的可读性及可维护性。
EL的语法
EL的语法非常简单,都是以“${”符号开始,以“}”符号结束的,具体格式如下:
${表达式}
案例
接下来通过一个案例对比使用Java代码与EL获取信息
@WebServlet(name = "MyServlet",urlPatterns= "/MyServlet")
public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("username", "itcast");
request.setAttribute("password", "123");
RequestDispatcher dispatcher = request
.getRequestDispatcher("/myjsp.jsp");
dispatcher.forward(request, response);
}
jsp文件
<%@ page language="java" contentType="text/html; charset=utf-8">
<html>
<head></head>
<body>
用户名: <%=request.getAttribute("username")%> <br />
密 码: <%=request.getAttribute("password")%> <br />
</body>
</html>
通过EL获取MyServlet中存储的信息,修改后的页面代码如下所示
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<html>
<head></head>
<body>
用户名: <%=request.getAttribute("username")%> <br />
密 码:<%=request.getAttribute("password")%> <br />
<hr />
使用EL:<br />
用户名: ${username} <br />
密 码: ${password} <br />
</body>
</html>
EL基本语法的特点
EL中的关键字
算术运算符 |
说明 |
算术表达式 |
结果 |
+ |
加 |
${10+2} |
12 |
- |
减 |
${10-2} |
8 |
* |
乘 |
${10*2} |
20 |
/(或div) |
除 |
${10/4}或${10 div 2} |
2.5 |
%(或mod) |
取模(取余) |
${10%4}或${10 mod 2} |
2 |
比较运算符 |
说明 |
算术表达式 |
结果 |
==(或eq) |
等于 |
${10==2}或${10 eq 2} |
false |
!=(或ne) |
不等于 |
${10!=2}或${10 ne 2} |
true |
<(或lt) |
小于 |
${10<2}或${10 lt 2} |
false |
>(或gt) |
大于 |
${10>2}或${10 gt 2} |
true |
<=(或le) |
小于等于 |
${10<=2}或${10 le 2} |
false |
>=(或ge) |
大于等于 |
${10>=2}或${10 ge 2} |
true |
比较运算符 |
说明 |
算术表达式 |
结果 |
逻辑运算符 |
说明 |
算术表达式 |
结果 |
&&(and) |
逻辑与 |
${true&&false}或${true and false} |
false |
||(or) |
逻辑或 |
${false||true}或${false or true} |
true |
隐式对象名称 |
描 述 |
pageContext |
对应于JSP页面中的pageContext对象 |
pageScope |
代表page域中用于保存属性的Map对象 |
requestScope |
代表request域中用于保存属性的Map对象 |
sessionScope |
代表session域中用于保存属性的Map对象 |
applicationScope |
代表application域中用于保存属性的Map对象 |
param |
表示一个保存了所有请求参数的Map对象 |
paramValues |
表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个String类型数组 |
header |
表示一个保存了所有http请求头字段的Map对象 |
headerValues |
表示一个保存了所有http请求头字段的Map对象,返回String类型数组 |
cookie |
用于获取使用者的cookie值,cookie的类型是Map |
initParam |
表示一个保存了所有Web应用初始化参数的Map对象 |