EL(Express Lanuage)表达式可以嵌入在jsp页面内部;EL和JSTL出现的目的是要替代jsp页面中内嵌脚本的编写。(类似模板引擎,将HTML代码和Java代码解耦)
el.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!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>
<!-- java脚本方式(传统方式)取出域中的值 -->
<%=request.getAttribute("name") %>
<%
Object obj = session.getAttribute("name");
out.write(obj+"");
%>
<!-- 使用EL表达式获得域中的值。(EL就是为了取代内嵌的java脚本) -->
${pageScope.name} <%-- 获取pageContext域中name属性的值 --%>
${requestScope.name} <%-- request域 --%>
${sessionScope.user.name} <%-- user是一个JavaBean对象。可以直接用点.的方式获取对象属性值。用.取代get --%>
${applicationScope.list[1].name} <%-- list是一个集合。可以直接用[]的方式获取某个元素。变量表示的属性或包含特殊符号,必须用[],不能用点语法 --%>
<!-- 使用el表达式 全域查找 -->
${name} <%-- 依次从pageContext域,request,session,application域中寻找name属性值 --%>
<!-- el可以执行表达式运算 -->
${1+1}
${1==1?true:false} <%-- 三元运算符 --%>
<!-- empty 判定是否是null 是null返回true -->
${empty user} <%-- 会先从域中查找user对象,再判空; ""也表示空 --%>
<!-- 通过el表达式获得request对象(pageScope是域对象,不是request对象本身) -->
${pageContext.request } <%-- 通过EL内置对象pageContext获取JSP的其他8大内置对象 --%>
${pageContext.request.contextPath } <%-- 通过request对象获取web应用名称 --%>
</body>
</html>