web知识之域对象&EL表达式&JSTL标签

目录

一、jsp内置对象之域对象

二、EL表达式

使用EL表达式👇

EL运算符 

补充 

三、JSTL标签

JSTL基本标签

使用操作👇

JSTL标签库的使用


一、jsp内置对象之域对象

在JSP中,存在四大对象,它们分别是👇

  • pageContext 页面容器
  • request 请求
  • session 服务器存储
  • application 公共存储

它们的范围大小图解👇

从图中可以看到,它们的存储范围大小:application>session>request>page(大到小)

详细介绍👇

  • pageContext:属性的作用范围仅限当前的jsp页面(范围最小),Context的意思是容器、上下文
  • request:属性的作用范围仅限同一个请求(只对转发有效)
  • session:属性的作用范围仅限于一次会话,浏览器打开直到关闭称为一次会话(在此期间会话不失效)当浏览器关闭后被再次打开时,session中的卡号JSESSION会改变,已经不是原来的会话了
  •  application:属性的作用范围仅限于当前web应用(范围最大)

二、EL表达式

EL全称:Expression Language(表达式语言)

功能:替代jsp页面中的复杂代码,相当于<%= %>

语法:

 ${EL expression}  
 ${  bean.name } 等于 ${  bean['name'] },${bean.name}实质是调用bean的getName()方法

使用好处:相比较在JSP中嵌入Java代码,EL应用更简单

注意:EL表达式必须是从域对象中取值,不能完全替代<%= %>的取值方式

使用EL表达式👇

  • 先往域中存值
    application.setAttribute("a", "aaa");
 	session.setAttribute("b", "bbb");
 	request.setAttribute("req", "ccc");
 	pageContext.setAttribute("pag", "ddd");
  •  再使用EL表达式取出
application:${a}
<br>
session: ${b }
<br>
request:${req}
<br>
pageContext: ${pag }
  • 运行一下:

 

 当application,session,request,page四个对象存入时的属性名相同时👇

    application.setAttribute("h", "aaa");
 	session.setAttribute("h", "bbb");
 	request.setAttribute("h", "ccc");
 	pageContext.setAttribute("h", "ddd");
  • 使用存入的属性名取值
application:${h}
<br>
session: ${h }
<br>
request:${h}
<br>
pageContext: ${h }

取到的都是最小的域pageContext里面的值 

 

  •  使用它们在EL中的名称来取值

application:${applicationScope.h}
<br>
session: ${sessionScope.h }
<br>
request:${requestScope.h}
<br>
pageContext: ${h }

 注:由于是在当前页面取值,pageContext是页面容器,可以直接使用存入时的属性名来取值

 使用它们在EL中的名称来取值就会取到自己的值

 

详细介绍👇

 

 

EL运算符 

在使用EL表达式取值时,可以在${ }中对取到的值进行一些运算符操作

运算符可以是布尔类型的运算符或者三元运算符等等👇

补充 

域对象中不仅可以存属性值,还可以存对象、集合等等👇

向域对象pageContext存入一个用户对象

    User u = new User("aa", "567aa");
    pageContext.setAttribute("user", u);

 使用EL表达式对这个对象进行取值:第一种取值方式更方便

用户对象:${user }
用户名:${user.name }
用户密码:${user.pwd}
用户对象:${user }
用户名:${user.getName }
用户密码:${user.getPwd }

 存入集合:

    List<User> list = new ArrayList<>();
    pageContext.setAttribute("us", list);

判断集合是否为空:

判断存入的list集合是否为空:${us.size==0 }或者${empty us }-${not empty us }

三、JSTL标签

JSTL基本标签

  • 通用标签:set、out、remove
  • 条件标签:if
  • 迭代标签:forEach 

使用操作👇

  • 使用之前要将jstl标签库导入到当前项目中:

jstl标签库包:

 导入到项目的lib目录下方:

记得右键建立路径: 

右键buil path成功后就会出现: 

  • 导入成功后在页面上引用: 
<%--tag标签,lib库,导入一个标签库 prefix是标签库的名字--%>
<%@taglib prefix="a" uri="http://java.sun.com/jsp/jstl/core"%>

经过上述操作就可以使用JSTL标签库了👇

JSTL标签库的使用

  • 通用标签:set设置值、out输出值、remove移除值 

 

  • 使用条件标签 if 判断用户是否登录 
<c:if test="${yy!=null}">
    <h1>欢迎使用该系统</h1>
</c:if>
<c:if test="${yy==null}">
    <h1>你现在还没有登录,请点击下面的按钮</h1>
    <button>请进行登录</button>
</c:if>
  • 使用迭代标签 forEach  完成商品的遍历展示

注:items="${list}" 表示存入域对象中的集合list,这里使用了EL表达式${ }来拿到它

goods表示遍历的集合对象

    <c:forEach items="${list}" var="goods">
        <tr>
            <th>${goods.goodsId}</th>
            <th>${goods.goodsName}</th>
            <th>${goods.goodsType}</th>
            <th>${goods.goodsPrice}</th>
        </tr>
    </c:forEach>

感 谢 阅 读 

  • 16
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
首先,你需要创建一个新的 Maven 项目。然后,按照以下步骤进行配置: 1. 在 pom.xml 文件中添加以下依赖: ``` <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>org.apache.taglibs</groupId> <artifactId>taglibs-standard-impl</artifactId> <version>1.2.5</version> </dependency> <dependency> <groupId>org.apache.taglibs</groupId> <artifactId>taglibs-standard-spec</artifactId> <version>1.2.5</version> </dependency> ``` 2. 在 web.xml 文件中添加以下配置: ``` <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <display-name>MyWebApp</display-name> <jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <el-ignored>false</el-ignored> <pageEncoding>UTF-8</pageEncoding> <scripting-invalid>false</scripting-invalid> <isXml>false</isXml> <trimDirectiveWhitespaces>true</trimDirectiveWhitespaces> </jsp-property-group> </jsp-config> <listener> <listener-class>org.apache.jasper.servlet.JasperListener</listener-class> </listener> </web-app> ``` 3. 在 IDEA 中创建 JSP 文件,并在其中使用 EL 表达式和 JSTL 标签库。 以上步骤可以让你用 IDEA 创建一个支持 EL 表达式和 JSTL 的项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值