【java学习笔记】JSP之----------EL表达式语言


EL的介绍:
EL全称 Express Language 表达式语言,重要功能是获取jsp页面的数据
因为原生的jsp 获取数据 操作繁琐,于是有了 EL表达式,EL表达式与JSTL标签库配合,就能打造出一个不错的完整web项目。

EL的基本使用

EL的使用:

  1. 从四大域中获取数据
  2. 从指定域中获取数据
  3. 从请求参数中获取数据

从四大域中获取数据:
可以看到我们在pageContext中存入了name=pageContext的信息,如果我们通过java代码读取,那将会比较繁琐,例如代码中的pageContext.getAttribute();有了EL表达式我们就能通过${}的方式去访问我们想访问的数据。
${name}表示获取name属性值

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>1.获取四大域中的数据</title>
</head>
<body>
<%--优先级依次是pageContext,request,session,application--%>
<%

    pageContext.setAttribute("name","pageContext");
    request.setAttribute("name","request");
    session.setAttribute("name","session");
    application.setAttribute("name","application");
   String str= pageContext.getAttribute("name").toString();
    System.out.println(str);
%>
name=${name}
</body>
</html>

执行结果:
在这里插入图片描述

从指定域中获取数据:
我们还可以通过指定域,来获取信息。
pageScope代表当前jsp页面范围;requestScore表示 request请求范围(用户提交请求结束后,request生命周期结束);sessionScore表示session 会话范围(服务器关闭或session延时时间到,session生命周期结束);application表示用户共享信息范围

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>2.从指定域中获取数据</title>
</head>
<body>
<%--XXXScope.name代表获取XXX信息域中name的属性值--%>
<%
    pageContext.setAttribute("name","pageContext");
    request.setAttribute("name","request");
    session.setAttribute("name","session");
    application.setAttribute("name","application");
%>
pageContext的name=${pageScope.name}</br>
request的name=${requestScope.name}</br>
session的name=${sessionScope.name}</br>
application的name=${applicationScope.name}</br>
</body>
</html>

执行结果:
在这里插入图片描述

从请求参数中获取数据:
${param.name}
需要时刻牢记,param获取前端页面传递进来的参数值
requestScope获取 服务器自己设置的requese参数值

${param.name} 等价于 request.getParamter(“name”),这两种方法一般用于服务器从页面或者客户端获取的内容,这些内容都是String的。
${requestScope.name} 等价于request.getAttribute(“name”),一般是从服务器传递结果到页面,在页面中取出服务器端保存的值!

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>4.获取请求中的指定参数</title>
</head>
<body>

<form action=${pageContext.request.contextPath}/show1.jsp method="post">
    username<input type="text" name="username">
    password<input type="text" name="password">
    <input type="submit" value="提交">
</form>
</body>
</html>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>show1.jsp</title>
</head>
<body>
<%--获取请求中的指定参数 param.属性名--%>
request的username的参数值是:${param.username}</br>
request的password的参数值是:${param.password}

</body>
</html>

执行结果:
在这里插入图片描述
在这里插入图片描述

EL的进阶使用

  1. 获取JavaBean(实体类)获取数据
  2. 从数组中获取数据
  3. 从集合中获取数据
  4. 从Map中获取数据

获取JavaBean数据:
从我们自己设置的request内容中访问数据,所以用requestScope
${user.password}表示获取requestScope的user属性值的password的值

<%@ page contentType="text/html;charset=UTF-8" language="java" import="entity.User" %>

<html>
<head>
    <title>7.访问实体类JavaBean的属性</title>
</head>
<body>
<%--访问实体类的属性${Key.属性} 没有访问到会显示空字符串,不会报异常--%>
<%
    User user=new  User("mulan","123456");
    request.setAttribute("user",user);

%>
mulan用户的密码是${requestScope.user.password}

</body>
</html>

在这里插入图片描述执行结果:
在这里插入图片描述

2.从数组中获取数据:
和java后端读取数组元素一样 属性名[index]

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>8.访问数组中的数据</title>
</head>
<body>
<%
    String names[]={"mulan","lily","mike"};
    pageContext.setAttribute("name",names);
%>
<%--当数组下标越界不显示异常,只是不显示--%>
name[0]=${name[0]}<br>
name[1]=${name[1]}<br>
name[4]=${name[4]}


</body>
</html>

执行结果:
在这里插入图片描述

从集合中获取数据:
集合的底层是数组,所以我们可以像访问数组一样访问

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>9.访问类的ArrayList集合</title>
</head>
<body>
<%
   List<Integer> list=new ArrayList<Integer>();
   list.add(1);
   list.add(2);
   list.add(3);
   pageContext.setAttribute("key",list);

%>

list[0]=${key[0]}<br>
list[1]=${key[1]}<br>
list[2]=${key[2]}<br>


</body>
</html>

执行结果:
在这里插入图片描述

4.访问Map的数据元素
${Key.get(key)}

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>10.访问类的Map键值对</title>
</head>
<body>
<%
    Map<String,Object> map=new HashMap<String,Object>();
    map.put("1","first");
    map.put("2","second");
    map.put("3","third");
    pageContext.setAttribute("key",map);
%>
one=${key.get("1")}<br>
two=${key.get("2")}<br>
three=${key.get("3")}
</body>
</html>

执行结果
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值