EL表达式和JSTL

本文介绍了EL表达式在JSP2.0中的使用,包括EL的初识、标识符规范、保留字、变量、常量、运算符以及隐式对象。同时讲解了JSTL中的Core标签库,特别是<c:out>标签的两种语法应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在JSP开发中,为了获取Servlet域对象中储存的数据,需要经常书写很多Java代码,这样的做法会使JSP页面混乱,难以维护,为此,在JSP2.0规范中提供了EL表达式。EL是一种简单的数据访问语言。

1.1初识EL

EL表达式的语法非常简单,都是以"${"开始,以"}"结束的,具体格式如下

${表达式}

在项目的src目录创建包cn.itcase.chapter08.servlet,在包里创建一个用于存储用户名和密码的类MyServlet.java

 然后,在WebContent目录下编写一个名为myjsp.jsp的JSP文件,用于存储输出 MyServlet所有信息;

 运行结果

 

1.2 EL表达式中的标识符
        在el书写过程中,会用一些符号来标记变量、函数名等,这些符号称之为标识符。
        书写规范:
        1.不能以数字开头
        2.不能包含el中的关键字:and , or 等
        3.不能使用el表达式的隐式对象。
        4.不能包含特殊符号,比如正斜杠等

1.3 EL中的保留字

保留字就是编程语言里事先定义好并赋予了特殊含义的单词。

1.3 EL中的变量
        基本格式:${域对象的名称},这个域对象的名称可以理解为就是el中的变量,
              那这个变量就不需要定义了,可以直接使用。

1.4 EL 中的常量
       1.布尔常量:true或false
       2.数字常量:整型、浮点常量,使用方式和java差不多
       3.字符串常量:使用方式和java差不多,比如:${"el的字符串常量"}
       4.Null常量:${null}
    
1.5 EL中的运算符
       1.点运算符:获取域对象中属性的值。
           比如: ${person.name }
       2.方括号运算符:在域对象里,有的属性包含特殊字符,所以用方括号的方式来获取值
        比如:<% 
             Map<String,String> map= new HashMap<String,String>();
            map.put("my-name","map的值");
            request.setAttribute("user",map);
          %>
        ${user["my-name"] }
       3.算术运算符:+ — * /
       4.比较运算符: > < >= <= == !=
       5.逻辑运算符: &&(and) ||(or) !(not)
       6.empty 运算符:用来判断域对象中的值是否存在,不存在返回为true,否则返回的结果是false.
       7.三目运算符:参照java的用法。

1.6 EL 隐式对象
       1.pageContext对象:为了获取jsp中的隐式对象。
         比如:
         获取项目的路径:${pageContext.request.contextPath }<br/>
         获取请求的URL:${pageContext.request.requestURI }

运行结果

 

 

2.web域相关的对象
         域作用范围从小到大:pageContext--->request--->session--->application(servletContext)
         el表达式获取域对象中的值:如果域对象的名称相同,获取的是域作用范围最小的值。
                                   和pageContext对象的findAttribute方法的效果是一样的。

${requestScope.指定对象}<br/>

在WebContent目录下编写一个名为scopes.jsp的JSP文件

 运行结果

 3. param和paramValues对象:

前者用来获取一个值,后者用来获取请求参数的所有值

在WebContent目录下编写一个名为param.jsp的JSP文件:

运行结果

 

  4.Cookie对象:

格式:

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

在WebContent目录下编写一个名为cookie.jsp的JSP文件:

运行结果

 

 

JSTL

JSTL中的Core标签库

<c:out>标签:最常见的操作就是向页面输出一段文本信息因此提供了此标签,改标签可以将一段文本内容或表达式的结果输出到客户端

语法一:没有标签体的情况

<c:out value="value" [default="defaultValue"]
[escapeXml="{true|false}"] />
 

语法二:有标签体的情况

<c:out value="value" [escapeXml="{true|false}"]>
defaultValue
</c:out>

 

在WebContent目录下编写一个名为c_out1.jsp的JSP文件

运行结果

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值