EL表达式的简单应用

<%@ 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的名称和值。

猜你喜欢

转载自blog.csdn.net/cainame/article/details/81228147