0
点赞
收藏
分享

微信扫一扫

El表达式

芒果六斤半 2022-04-21 阅读 65
jsjava

目录

一、什么是El表达式

二、EL获取数据(从四大域中获取属性)

三、EL隐式对象

1.page,pagescope,pagecontext区别

2.通过pageScope,requeScope,SessionScope,appicationScope来获取域中的数据

 3.cookie和initParam对象演示cookie对象cookie对象Ccookie对象

四、EL访问Bean的属性

五、四大作用域的特点和区别

一、page

二、request

三、session 

四、application  


一、什么是El表达式

  • Expression Language表达式语言
  • JSP EL既可以用来创建算术表达式也可以用来创建逻辑表达式
  • 是一种在JSP页面获取数据的简单方式(只能获取数据,不能设置数据)
  • El表达式一般操作域对象,不能操作局部变量
  • 语法格式

二、EL获取数据(从四大域中获取属性)

        EL只能从四大域中获取属性,一般操作域对象



        <%@ page language="java" contentType="text/html; charset=UTF-8"
            pageEncoding="UTF-8"%>
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
        </head>
        <body>
            <%
                pageContext.setAttribute("name", "linjie");
                request.setAttribute("name", "lucy");
                session.setAttribute("name", "king");
                application.setAttribute("name", "bilibili");
            %>
            name=${name }
            name=${applicationScope.name }
        </body>
        </html>
name=linjie

name=bilbil 

三、EL隐式对象

EL的11个内置对象,除了pageContext以外,其他10个内置对象的类型都是java.util.Map类型

1.page,pagescope,pagecontext区别

<%

    pageContext.setAttribute("name", "linjie");
    request.setAttribute("name", "lucy");
    session.setAttribute("name", "king");
    application.setAttribute("name", "bilibili");
%>
text1=<%=pageContext.getRequest()%><br>
text2=<%=pageContext.getRequest().getAttribute("name")%><br>
text4=${pageScope.name}<br>
text5=${pageContext.getAttribute("name")}<br>
text6=${pageContext.request.getAttribute("name")}<br>

隐含对象名称

功能描述

pageContext

对应于JSP页面中的pageContext对象

pageScope

代表page域中用于保存属性的Map对象

requestScope

代表request域中用于保存属性的Map对象

sessionScope

代表session域中用于保存属性的Map对象

applicationScope

代表application域中用于保存属性的Map对象

param

表示一个保存了所有请求参数的Map对象,获取请求参数的某个值,其底层实际调用request.getParameter()

paramValues

表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个String类型数组,获取请求中的指定参数的所以值,其底层实际调用request.getParameterValues()

header

表示一个保存了所有http请求头字段的Map对象,用于获取

请求头字段的某个值

headerValues

表示一个保存了所有http请求头字段的Map对象,

返回String类型数组

cookie

用来取得使用者的cookie值,cookie的类型是Map

initParam

表示一个保存了所有Web应用初始化参数的Map对象,获取初始化参数,其底层调用的是ServletContext.getInitParameter()

2.通过pageScope,requeScope,SessionScope,appicationScope来获取域中的数据

 3.cookie和initParam对象演示cookie对象cookie对象Ccookie对象

JSP 开发中,经常需要获取客户端的 Cookie 信息,为此,在 EL 表达式中,提供了 Cookie 隐式对象,该对象是一个代表所有 Cookie 信息的 Map 集合, Map 集合中元素的关键字为各个 Cookie 的名称,值则为对应的 Cookie 对象,具体示例如下:

      获取cookie对象的信息:${cookie.userName}
      获取cookie对象的名称:${cookie.userName.name}
      获取cookie对象的值:${cookie.userName.value}

在开发一个 Web 应用程序时,通常会在 web.xml 文件中配置一些初始化参数,为了方便获取这些参数, EL 表达式提供了一个 initParam 隐式对象,该对象可以获取 Web 应用程序中全局初始化参数,具体示例如下所示:

        ${initParam.count} 

四、EL访问Bean的属性


1、什么是java Bean        JavaBean是公共Java类,但是为了编辑工具识别

需要满足至少三个条件

有一个public默认构造器(例如无参构造器)
属性使用public 的get,set方法访问,也就是说设置成private同时get,set方法与属性名的大小也需要对应。例如属性name,get方法就要写成,public String getName(){},N大写。
需要序列化。这个是框架,工具跨平台反映状态必须的

注意点:

1.EL可以通过${key.属性}的方式获取到指定值,其底层实际调用的是该对象的相应属性的get方法

2.EL可以通过索引访问List,但无法访问Set。因为Set中没有索引概念,访问map同理

五、四大作用域的特点和区别

一、page

二、request

三、session 

四、application  

举报

相关推荐

0 条评论