JavaWeb 域对象&EL表达式&JSTL标签

目录

一.jsp内置对象之域对象

1.1 概述

1.2 域对象

1.3 域对象的作用

1.4 域对象的使用方法

二.EL表达式

2.1 什么是EL表达式

2.2 EL表达式的功能

2.3 EL表达式的语法

2.5 EL运算符

三.JSPL标签

3.1 JSPl中常用的标签

3.2 使用JSPL标签的步骤

3.3 使用JSPL标签


一.jsp内置对象之域对象

1.1 概述

主要负责在不同web资源之间进行数据交换。由于不同的web资源之间需要共享数据,所以就有了域对象。

1.2 域对象

pageContext:属性的作用范围仅限当前的jsp页面,如果跳到别的jsp页面无效(范围最小)

request:属性的作用范围仅限同一个请求(转发有效)

session:属性的作用范围仅限于一次会话,浏览器打开直到关闭称为一次会话(在此期间会话不失效)

application:属性的作用范围仅限于当前web应用,服务器为关闭或重启,数据有效(范围最大)

1.3 域对象的作用

 该四个域对象的作用都是用于存储数据。

1.4 域对象的使用方法

 保存数据:

pageContext.setAttribute(arg0, arg1)  arg0:名字  arg1:值

 application.setAttribute("msg1","你好啊我是application");
 session.setAttribute("msg2","我是session");
 request.setAttribute("msg3","我是requst");
 pageContext.setAttribute("msg4", "我是pageConext");

获取数据: 

  pageContext.getAttribute(""); 

application.getAttribute("msg1");
 session.getAttribute("msg2");
 request.getAttribute("msg3");
pageContext.getAttribute("msg4");

清除数据

removeAttribute("msg1") 

二.EL表达式

2.1 什么是EL表达式

  EL即Expression Language(表达式语言)

2.2 EL表达式的功能

   替代jsp页面中的复杂代码,其实就是代替<%= %>

2.3 EL表达式的语法

     ${bean.name} 实质是调用bean的getName()方法

     ${name} 

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

2.4 EL表达式的运用 

  •   先在域对象中存储值
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

   <!-- 
    先将驱动包导入
    
    jsp内置对象之域对象:
    1.application 属性的作用范围仅限于在当前web项目中。(范围最大)
    2.session     属性的作用范围权限于一次会话,浏览器打开关闭为一次会话,如果重新在打开浏览器,原本在里面的数据都没有啦。
    3.request     属性的作用范围只限于同一个请求(转发才有效)
    4.pageContext 属性的作用范围只在当前页面有效(范围最小)
     这四个都可以存储数据
    -->
    
     <%
     application.setAttribute("msg1","你好啊我是application");
     session.setAttribute("msg2","我是session");
     request.setAttribute("msg3","我是requst");
   
     %>  
     <jsp:forward page="test02.jsp"></jsp:forward>
  •  使用EL表达式,取出域对象中的值
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
pageContext.setAttribute("msg4","我是pageContext");
 
%>
 application:${msg1}
 <br>
 session:    ${msg2}
 <br>
 request:    ${msg3}
 <br>
 pageContext:${msg4}
</body>
</html>
  •  运行效果

 当我们在四个域对象中存入的属性名一样时 

  •   先往域对象中存入相同的属性名
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
     application.setAttribute("msg","application");
     session.setAttribute("msg","session");
     request.setAttribute("msg","requst"); 
%>
     
 <jsp:forward page="test04.jsp"></jsp:forward>
  •  用EL表达式取值
<%@page import="java.util.ArrayList"%>
<%@page import="com.yjx.pojo.User"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
  pageContext.setAttribute("msg","我是pageContext");
%>
  ${msg}

</body>
</html>
  •  呈现效果

      取出的值: 我是pageContext

      原因:他会从最小的域对象中取

  •  使用EL中的隐含对象(pageScope、requestScope、sessionScope、applicationScope)来取值 

   代码如下:

<%@page import="java.util.ArrayList"%>
<%@page import="com.yjx.pojo.User"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
  pageContext.setAttribute("msg","我是pageContext");
 
%>
  ${pageScope.msg}
  <br>
  ${requestScope.msg}
  <br>
  ${sessionScope.msg}
  <br>

</body>
</html>

2.5 EL运算符

  三元运算运用

  Empty运算符

  代码如下:

<%@page import="java.util.ArrayList"%>
<%@page import="com.yjx.pojo.User"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
  User u=new User(0,"zz","zz123");
  
  pageContext.setAttribute("user", u);
  List<User> user=new ArrayList();
  pageContext.setAttribute("u",user);
%>
 
  <!--三元运算符-->
  ${applicationScope.msg==null?"真":"假"}
  <br>
  用户名: ${user.name}
   <br>
  密码:${user.pwd.equals("")?"为空":"不为空"}
   <br>
   <%--Empty 判断集合中为空--%>
   ${empty u}
   <br>
   <%--not empty 判断集合中不为空--%>
   ${not empty u?"xx":"yy"}
</body>
</html>

三.JSPL标签

3.1 JSPl中常用的标签

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

3.2 使用JSPL标签的步骤

  • 先导入驱动包

    

  • 在页面中导入JSTL标签库
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

3.3 使用JSPL标签

  • JSTL中set标签 ,相当于pageContext.setAttribute("a",1)

  <c:set scope="page" var="a" value="1"></c:set>
  • JSTL中out标签的使用->    
  <c:out value="${a}"></c:out>
  •  JSTL中的remove使用

  <c:remove var="a" scope="page"/>
  •   条件标签if使用
 <!-- 条件标签if使用 -->
 <% 
  String yy="123";
  pageContext.setAttribute("yy",yy);
 %>
 
 <c:if test="${yy!=null}">
   <h1>欢迎登录</h1>  
 </c:if>
 
 <c:if test="${yy==null}">
  <h1>登录失败</h1>
 </c:if>
  •  迭代标签:forEach 
 <!-- 迭代标签:forEach  -->
  <%
     List<Shiwu> s=new ArrayList();
     for(int i=1;i<=5;i++){
         Shiwu sw=new Shiwu();
         sw.setId(i);
         sw.setName("娃哈哈"+i);
    	 s.add(sw);
     }
     
     pageContext.setAttribute("list",s);
  
  %>

今天的学习就到这里啦。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaWeb 中,使用 EL 表达式和 JSTL 可以实现在 JSP 页面中进行动态数据处理和展示。下面我来分别介绍这两种技术的实现方法。 1. EL 表达式的实现 EL 表达式是一种用于在 JSP 页面中访问 JavaBean 中属性的语言。在 JSP 页面中,我们可以通过 ${} 语法来使用 EL 表达式。例如,我们可以通过 ${user.name} 来获取 JavaBean 中的 name 属性的值。 要在 JavaWeb 中使用 EL 表达式,我们需要完成以下步骤: 1) 在 JSP 页面中引入 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>,指定页面编码为 UTF-8。 2) 在 JSP 页面中引入 JSTL 标签库 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>。 3) 在 JavaBean 中定义属性,并提供 getter 和 setter 方法。 4) 在 JSP 页面中使用 EL 表达式来访问 JavaBean 的属性值。例如:${user.name}。 2. JSTL 的实现 JSTL 是一组 JSP 自定义标签,用于在 JSP 页面中进行动态数据处理和展示。JSTL 提供了一些常用的标签库,例如 core、fmt、sql、xml 和 functions 等。 要在 JavaWeb 中使用 JSTL,我们需要完成以下步骤: 1) 在 JSP 页面中引入 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>,指定页面编码为 UTF-8。 2) 在 JSP 页面中引入 JSTL 标签库 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>。 3) 在 JSP 页面中使用 JSTL 标签库提供的标签来进行动态数据处理和展示。例如,使用 <c:forEach> 标签来遍历一个集合: ``` <c:forEach var="item" items="${list}"> ${item} </c:forEach> ``` 这样就可以在 JSP 页面中使用 EL 表达式和 JSTL 来进行动态数据处理和展示了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值