<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>EL表达式的简单应用</title>
</head>
<body>
请求的uri为:${pageContext.request.requestURI}</br>
Content-Type的响应头:${pageContext.request.contentType }</br>
服务器信息:${pageContext.servletContext.serverInfo }</br>
Servlet的注册名:${pageContext.servletConfig.servletName }</br>
</body>
</html>
1.EL隐式对象:pageContext ,pageCope,requestSope,sessionSope,applicationScope
2.EL 表达式 ${ }
3.点运算 .
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>EL表达式的简单应用</title>
</head>
<% pageContext.setAttribute("userName", "admin"); %>
<%request.setAttribute("bookName", "JAVA教程"); %>
<% session.setAttribute("userName", "CAIZHEN"); %>
<%application.setAttribute("bookName", "java课程设计"); %>
${pageScope.userName }</br>
${requestScope.bookName }</br>
${sessionScope.userName }</br>
${applicationScope.bookName }</br>
${userName }</br>
</body>
</html>
上面的程序简单的介绍了四种web域相关对象
PageContext和HttpServletRequest,HttpSession和ServletContext这四个对象之所以可以存储数据,是因为他们内部都定义了一个Map集合但是这些Map集合也是有一定作用范围的。为了获取这四个域中的数据,提供了pageScope,requestScope,sessionScope和这四个隐式对象,值得注意的是,如果不指定是哪个隐式对象,就会依此在page,request,session,application这四个作用域内按顺序依此查找相对应的值。
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>EL表达式的简单应用</title>
</head>
<body style="text-align: center;">
<form action="${pageContext.request.contextPath }/webapp/EL.jsp"
method="post">
num1<input type="text" name="num1"></br> num2<input type="text"
name="num2"></br> num3<input type="text" name="num2"></br> <input
type="submit" value="提交"></br>
<hr>
num1:${param.num1 }</br> num2:${paramValues.num2[0] }</br>
num3:${paramValues.num2[1] }</br>
</form>
</body>
</html>
上面代码里用到了param和paramValue这两个隐式对象,专门获取客户端访问Jsp页面时的传递的请求参数。
param对象用于请求参数的某个值,他是map类型,与request.getParameter()方法相同 {param.name},其中的name为表单中的name值。如果一个参数有多个值,则可以使用paramValues对象获取参数的所有值,该对象用于返回请求参数所有值组成的数组,如果要获取某个参数的第一个值,则可以使用以下代码{paramValues.name[0]}这个是获取返回的数组中的第一个值。
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>EL表达式的简单应用</title>
</head>
<body style="text-align: center;">
<%response.addCookie(new Cookie("userName","admin")); %>
Cookie对象的信息:${cookie.userName }</br>
Cooke对象的名称和值:${cookie.userName.name }=${cookie.userName.value }</br>
</body>
</html>
这里用到了另外一个隐式对象cookie 首先新建了一个cookie的对象,且设置cookie的名称为userName,值为admin,然后利用cookie对象获取名叫userName的cookie,然后从这个cookie中读取他的名字和值,其中获取cookie对象的信息:${cookie.userName] 获取cookie对象的名称${cookie.userName.name} 获取cookie对象的值 ${cookie.userName.value}
在执行的过程中发现首次访问获取不到信息,刷新后才会看到信息,这是因为浏览器第一次访问服务器时,服务器会向浏览器回写一个Cookie,此时的Cookie信息存储在浏览器中,当刷新浏览器后,第二次再访问这个jsp时,由于浏览器已经存储了名为userName的cookie信息,所以当再次访问相同资源时,浏览器会将此Cookie信息一同发送给服务器,这时使用表达式${cookie.userName.name}和${cookie.userName.value}就可以获取Cookie的名称和值。