JavaWeb-EL技术

10 篇文章 0 订阅
8 篇文章 0 订阅

动态页面技术(二)

1.EL 表达式概述

EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL出现的目的是要替代jsp页面中脚本的编写


2.EL 从域中取出数据(EL最重要的作用)

jsp脚本:<%=request.getAttribute(name)%>
EL表达式替代上面的脚本:${requestScope.name}

EL最主要的作用是获得四大域中的数据,格式${EL表达式}
EL获得pageContext域中的值: ${pageScope.key};
EL获得request域中的值:          ${requestScope.key};
EL获得session域中的值:          ${sessionScope.key};
EL获得application域中的值:    ${applicationScope.key};
EL从四个域中获得某个值${key}; -->同样是依次从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不在向后寻找。

代码:

<!-- 模拟域中的数据 -->
<%
	pageContext.setAttribute("company", "ACM实验室");
	//存储字符串
	request.setAttribute("company", "张衡教学楼");
	//存储一个对象
	User user = new User();
	user.setId(1);
	user.setName("zhangsan");
	user.setPassword("123");
	session.setAttribute("user", user);
		
	//存储一个集合
	List<User> list = new ArrayList<User>();
	User user1 = new User();
	user1.setId(2);
	user1.setName("lisi");
	user1.setPassword("123");
	list.add(user1);
	User user2 = new User();
	user2.setId(3);
	user2.setName("wangwu");
	user2.setPassword("123");
	list.add(user2);
	application.setAttribute("list", list);	
%>
	<!-- 脚本法是取出域中的值 -->
	<%=request.getAttribute("company") %>
	<%
	    User sessionUser = (User)session.getAttribute("user");
	    out.write(sessionUser.getName());
	%>
	
	<!-- 使用EL表达式获得域中的值 -->
	${requestScope.company }
	${sessionScope.user.name }
	${applicationScope.list[1].name}
	
	<!-- 使用el表达式 全域查找 -->
	${company }
	${user.name }
	${list[1].name}
	

3.EL的内置对象11个

pageScope,requestScope,sessionScope,applicationScope - 获取JSP中域中的数据

param,paramValues - 接收参数,相当于request.getParameter()  rrquest.getParameterValues()

header,headerValues - 获取请求头信息,获取请求头信息相当于request.getHeader(name)

initParam - 获取全局初始化参数,相当于this.getServletContext().getInitParameter(name)

cookie - WEB开发中cookie,相当于request.getCookies()---cookie.getName()---cookie.getValue()

pageContext - WEB开发中的pageContext,pageContext获得其他八大对象

${pageContext.request.contextPath} 相当于 <%=pageContext.getRequest().getContextPath%>  

获得:项目名(上下文),这句代码不能实现获得WEB应用的名称。


获取项目的绝对路径和端口号:

<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>


4.EL执行表达式
例如:

<!-- el可以执行表达式运算 -->
${1+1 }
${1==1?true:false }
<!-- empty 判定某个对象是否是null  是null返回true -->
${empty list}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值