//从 J2SE 1.4 开始,Java 编译器不再支持 import 进未命包名的类、接口。
//也就是说在jsp页面导入的类必须定义在包中 这里实体类 Lee 定义在包 el 中
package el;
//POJO 实体类 Lee
public class Lee {
//属性 name
private String name="lee";
//属性age
private int age=99;
//存取器
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
//el.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!-- 导入Pojo 实体类 Lee -->
<%@ page import="el.Lee" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>EL 表达式</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<%
//创建实体类对象 lee
Lee lee=new Lee();
//将对象lee置入Page(页面)作用域中
pageContext.setAttribute("lee_page", lee);
//将对象lee置入request作用域中
request.setAttribute("lee_request", lee);
//将对象lee置入session作用域中
session.setAttribute("lee_session", lee);
//将对象lee置入application作用域中
application.setAttribute("lee_application", lee);
//将带特殊符号(.)的属性置入request作用域中
request.setAttribute("common.error", "出错了");
//创建cookie并添加到response中
Cookie cookie=new Cookie("cookieName","myCookie");
response.addCookie(cookie);
%>
<!-- 创建一个 jsp bean -->
<jsp:useBean id="leeBean" class="el.Lee" scope="request"></jsp:useBean>
<table>
<tr>
<td colspan="2">
4种EL取值范围
</td>
</tr>
<tr>
<td>
Page <!-- 获取pageContext作用域中的对象属性 -->
</td>
<td>
${pageScope.lee_page.age }
</td>
</tr>
<tr>
<td>
Request <!-- 获取request作用域中的对象属性 -->
</td>
<td>
${requestScope.lee_request.age }
</td>
</tr>
<tr>
<td>
Request "common.error" <!-- 获取带特殊符号的属性 -->
</td>
<td><!-- 当属性名带有特殊符号的时候必须使用中括号的形式取值 -->
${requestScope["common.error"] }
</td>
</tr>
<tr>
<td>
Session <!-- 获取session作用域中的对象属性 -->
</td>
<td>
${sessionScope.lee_session.age }
</td>
</tr>
<tr>
<td>
Application <!-- 获取application作用域中的对象属性 -->
</td>
<td>
${applicationScope.lee_application.age }
</td>
</tr>
<tr>
<td>
默认 <!-- 按 page request session application 的顺序取值-->
</td>
<td>
${lee_page.age}
</td>
</tr>
</table>
<br/><br/>
<form method="post" action="el.jsp">
<table>
<tr>
<td>输入你的名字:<br/>
<input type="text" name="username" /></td>
</tr>
<tr>
<td>
选择你使用的语言:<br/>
chinese:<input type="checkbox" name="language" value="ch"/>
english:<input type="checkbox" name="language" value="en"/>
</td>
</tr>
<tr>
<td><input type="submit" /></td>
</tr>
</table>
</form>
<br/>
<div>
你输入的名字:${param.username } <!-- 使用 param 获取传递的参数 -->
</div>
<br/>
<div><!-- 使用 paramValues 获取传递的参数数组 -->
你选择的语言:${paramValues.language[0] }:${paramValues.language[1]}
</div>
<br/>
<div><!-- 使用EL 表达式计算结果 -->
变量+1=
${requestScope.lee_request["age"]+1 }
</div>
<br/>
<div>
<!-- 使用 EL 表达式显示 cookie -->
cookie:
${cookie.cookieName.value}
</div>
<br/>
<div>
pageContext:... <!-- EL 的 pageContext 封装了很多实用的功能-->
<!-- 请求的类型 -->
method:${pageContext.request.method }<br/>
<!-- 请求的字符串 显示为 url?后的传递参数 -->
queryString:${pageContext.request.queryString }<br/>
</div>
</body>
</html>