WEB20_EL

本节概要

EL介绍

EL从域中取数据

EL内置对象

EL表达式

什么是EL?

express Language.是一种嵌入到JSP页面的表达式语句,目的是为了减少并替代JSP脚本的书写!

总之就是偷懒的工具。

EL从域中取数据

我们使用JSP脚本和EL之间的取数据进行比较

<body>
	<%-- 准备数据 --%>
	<% request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");
		request.setAttribute("name", "jerry"); 
		User user = new User();
		user.setName("汉三");
		user.setPassword("123");
		session.setAttribute("user",user); 
		List<User> list = new ArrayList<User>();	
		User user1 = new User();
		user1.setName("李四");
		user1.setPassword("12");
		User user2 = new User();
		user2.setName("王五");
		user2.setPassword("132");
		list.add(user1);
		list.add(user2);
		application.setAttribute("list", list);
	%>
	<!-- 获得单个数据 -->
	<%=request.getAttribute("name") %>
	${requestScope.name }
	<!-- 获得对象数据 -->
	<% 
		User user3 = (User)session.getAttribute("user"); 
		out.write(user3.getName());
	%>
	${sessionScope.user.name }
	<!-- 获得集合数据 -->
	<%
		List appList = (List)application.getAttribute("list");
		User user4 = (User)appList.get(0);
		out.write(user4.getName());
	%>
	${applicationScope.list[0].name }
</body>

从上面的代码可以看出,我们使用了el语句的一句话便代替了许多的Jsp脚本代码。

而还有一个最重要的方法${key}。这个在上篇博文中,我们提到,pageContext的findAttribute(String)方法,而这个${key}的方法底层就是使用了findAttribute(String)方法!

而${}获得值也是依次从page域到request域到session域到application域的!并且这个方法比较常用!

EL的11个内置对象

因为在上篇博文中提到的JSP某些历史原因,我们对这11个内置对象已经不必太掌握了。因为这些都是一些关于页面处理而使用的对象,如在上篇博文JSP中提到的,如果我们在Jsp发展的第二时期的话,那么这些就是重点,但是现在我们已经只是把Jsp作为页面显示的工具了,页面处理已经交给了servlet了,因此这个知识我们了解亦可。

获得Jsp域对象数据:

pageScope、requestScope、sessionScope、applicationScope

接受参数

param、paramValue相当于request.getParameter(name)与request.getParameterValues()

获取头信息

header、headerValues相当于request.getHeader(name)与request.getHeaderValues();

获取全局初始化参数信息

initParam相当于this.getServletContext().getInitParameter(name);

获得Cookie

cookie相当于request.getCookies()--request.getName()--request.getValues()

获得pageContext对象

pageContext:注意这里我们通过获得了pageContext对象就可以获得到其他的八大内置对象

另外上边写的获得Jsp域对象数据并非是获得了Jsp域对象的全部,而只是域中的数据。

最重要的一行代码:${pageContext.request.contextPath}相当于request.getContextPath();

这句代码在开发中会经常用到.

有了这句话,我们就可以在url中动态的书写项目名了。类似这样的

直接在字符串中使用即可,WEB容器在翻译Jsp页面时会自动的判断的

EL表达式

和Jsp脚本一样。在El里也有表达式。例如

${1+1}就是一个表达式,我们也可以在页面上输出。

另外,类似这样的表达式

${user!=null?"user不为null":"user是null的"}

最后,在el中还有自己的“关键字"empty,目的就是判断一个对象是否为null

${empty user}就与${user==null?true:false}是相同的

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值