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

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}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值