Jsp入门第四章——EL表达式

来源:互联网 发布:mac怎么裁剪音乐 编辑:程序博客网 时间:2024/04/27 15:48

EL 全名为Expression Language。它是一种数据访问语言,目的为了简化Jsp代码,这一点和标签的作用是一样的。

基本用法:
(1)、使用变量访问web域对象中存储的值 ${user }
等价于<%= request.getAttribute(“user”) %>

(2)、访问javabean的属性 ${user.address.city }
(3)、执行基本的逻辑运算 ${ num+1 } ${user==null }
(4)、直接使用隐式对象 ${ pageContext }

EL 表达式可以用在哪里
(1)、可以在jsp页面中直接书写el表达式,用于向浏览器输出内容
(2)、在标签的属性中使用el表达式,用于为标签的属性赋值

可以结合之前的scope例子来做个测试。在scopedestination.jsp页面做添加一段代码:

这里写图片描述

测试结果:

这里写图片描述

本来连对象都可以省了,直接${属性名}。

EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。

因为在scopeforward.jsp中定义的属性名就是和EL的隐含对象重名了,所以若是省略对象名,输出的将是对象信息。

EL表达式语言中定义了11个隐含对象,使用这些隐含对象可以很方便地获取web开发中的一些常见对象,并读取这些对象的数据。
这里写图片描述
这里写图片描述
这里写图片描述

${param.参数名}等价于 <%= request.getParameter("参数名")%>

举个例子在WebRoot目录下新建el文件夹,然后新建setparam.jsp
和getparam.jsp。
setparam.jsp的具体代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%    //防止中文乱码,在同一个请求内    request.setCharacterEncoding("UTF-8");%><jsp:forward page="getparam.jsp">    <jsp:param value="张三" name="username" /></jsp:forward>getparam.jsp具体代码如下:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>welcome EL<br>${param.username}<br>

测试结果:
这里写图片描述

${initParam.参数名 }等价于<%=getInitParameter("参数名") %>

用于获取初始参数。举个例子。
在WebRoot/WEB-INF/lib路径下的web.xml中加入一段代码:
这里写图片描述

然后再el文件夹中新建一个initparam.jsp,具体代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>${initParam.username}<!-- 等价于<%=getServletContext().getInitParameter("username")%> -->

测试结果:
这里写图片描述

网页源码:
这里写图片描述

cookie对象:

 ${cookie.key}取的是cookie对象,如 访问cookie的名称和值,需${cookie.key.name}或 ${cookie.key.value}

举个例子,获取session ID
在el中新建一个getcookie.jsp,具体代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>    cooike name:${cookie.JSESSIONID.name}<br>    cooike value:${cookie.JSESSIONID.value}

测试结果:
这里写图片描述

0 0
原创粉丝点击