EL(Express Lanuage)表達式能夠嵌入在jsp頁面內部,減小jsp腳本的編寫,EL出現的目的是要替代jsp頁面中腳本的編寫。html
EL最主要的做用是得到四大域中的數據,格式${EL表達式}java
一樣是依次從pageContext域,request域,session域,application域中獲取屬性,在某個域中獲取後將不在向後尋找。cookie
示例:session
一、EL得到普通字符串app
二、EL得到User對象的值dom
三、EL得到List<String>的值jsp
四、EL得到List<User>的值ui
五、EL得到Map<String,String>的值spa
六、EL得到Map<String,User>的值code
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="com.itheima.domain.*" %> <%@ page import="java.util.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <!-- 模擬域中的數據 --> <% pageContext.setAttribute("company", "阿里"); //存儲字符串 request.setAttribute("company", "企鵝"); //存儲一個對象 User user = new User(); user.setId(1); user.setName("zhangsan"); user.setPassword("123"); session.setAttribute("user", user); //存儲一個集合 List<User> list = new ArrayList<User>(); User user1 = new User(); user1.setId(2); user1.setName("lisi"); user1.setPassword("123"); list.add(user1); User user2 = new User(); user2.setId(3); user2.setName("wangwu"); user2.setPassword("123"); list.add(user2); application.setAttribute("list", list); %> <!-- 腳本法是取出域中的值 --> <%=request.getAttribute("company") %> <% User sessionUser = (User)session.getAttribute("user"); out.write(sessionUser.getName()); %> <hr/> <!-- 使用EL表達式得到域中的值 --> ${requestScope.company } ${sessionScope.user.name } ${applicationScope.list[1].name} <!-- 使用el表達式 全域查找 --> ${company } ${user.name } ${list[1].name} <!-- el能夠執行表達式運算 --> ${1+1 } ${1==1?true:false } <!-- empty 斷定某個對象是不是null 是null返回true --> ${empty list} </body> </html>
pageScope,requestScope,sessionScope,applicationScope;
獲取JSP中域中的數據
接收參數:param,paramValues;
獲取請求頭信息:header,headerValues;
獲取全局初始化參數:initParam;
WEB開發中cookie:cookie;
WEB開發中的pageContext:pageContext;
例子:
<!-- 得到表單的參數 -->
<%
request.getParameter("username"); %> <!-- 使用el得到參數 --> ${param.username } ${header["User-Agent"] } ${initParam.aaa } ${cookie.name.value }
${cookie.abc.value }
<!-- 經過el表達式得到request對象 -->
${pageContext.request }
與${requestScope}不一樣,對象不只包含域,並且還有其餘數據和方法
<!--得到WEB應用的名稱-->
$(pageContext.request.contextPath)至關於<%=pageContext.getRequest().getContextPath%>