Javaweb四大域对象&EL表达式&JSTL标签

1.作用域

四大作用域:page(当前jsp有效) request(一次请求) session(一次会话) application(整个web应用)

page域指的是pageContext.

request域指的是HttpServletRequest

session 域指的是HTTPSession

application 域指的是ServletContext,他们都是域对象,原因就是他们都内置了map集合,都有setAttribute getAttribute方法。而且他们的name都是String类型,而value都是Object类型。

他们都有自己固定的生命周期和作用域

page:jsp页面被执行,生命周期开始,jsp页面执行完毕,生命周期结束。

request:用户发送一个请求,开始,服务器返回响应,请求结束,生命周期结束。

session:用户打开浏览器访问,创建session(开始),session超时或被声明失效,该对象生命周期结束。

application:web应用加载的时候创建。Web应用被移除或服务器关闭,对象销毁

1.1使用

存值

pageContext.setAttribute("aa", "张三");
request.setAttribute("aa", "李四");
session.setAttribute("aa", "王五");
application.setAttribute("aa", "麻子");

取值

<h3>使用jsp表达式取值</h3>
    取值如下:<br>
    1.<%=pageContext.getAttribute("aa")%><br>
    2.<%=request.getAttribute("aa")%><br>
    3.<%=session.getAttribute("aa")%><br>
    4.<%=application.getAttribute("aa")%>

2.EL表达式

  1. 概念
  • EL 表达式的全称:Expression Language 表达式语言。

  • EL 是 JSP 内置的表达式语言,用以访问页面的上下文以及不同作用域中的对象,取得对象属性的值,或执行简单的运算或判断操作。

  1. 作用
  • EL表达式主要是替换和简化 jsp 页面中表达式脚本在jsp页面中进行数据的输出。

  • EL 表达式仅仅用来读取数据,而不能第数据进行修改。

  1. 特点
  • EL 在得到某个数据时,会自动进行数据类型的转换

  • EL 表达式输出数据时,如果有则输出数据,如果为 null 则什么也不输出。

  1. EL 表达式与 JSP 表达式的区别
    ① 如果数据为 null,jsp 显示 null,EL 则什么也不显示;

    ② EL 显示的数据,必须存放在域对象或上下文对象中;

    ③ EL 可以自带数据类型转换的功能;

  2. 语法格式
    ${表达式}

  3. 注意事项

  • jsp 默认是支持 el 表达式的。
  • 如果要忽略 el 表达式,有两种方式

(1)设置 jsp 中 page 指令中:isELIgnored=“true” 忽略当前jsp页面中所有的el表达式

(2)${表达式}:这种方式忽略当前这个 el 表达式,会在当前页面呈现原有格式。


<h2>二、EL表达式</h2>
    <h3>使用EL表达式取域对象的值</h3>
    1.${pageScope.aa }<br>
    2.${requestScope.aa }<br>
    3.${sessionScope.aa }<br>
    4.${applicationScope.aa }
<h3>EL运算符</h3>
${1+2 }____${1>2 }____${3==5 }____${empty myls }
<h3>使用EL表达式取对象的值</h3>
${对象 }

<body>
      <%
          request.setAttribute("key","值");
      %>
      <!-- 表达式脚本输出 key 的值是: -->        
    <%=request.getAttribute("key1")==null?"":request.getAttribute("key1")%><br/>
     <!-- EL 表达式输出 key 的值是: ${key1} -->
</body>

注意:

  • EL 在表达式在输出 null 值的时候,输出的空串。

  • 而 jsp 表达式脚本在输出 null 值的时候,输出的是 null 字符串。

3.JSTL

  1. 概念
  • JSTL标签库,全称是 JSP Standard Tag Library JSP标准标签库。

  • 是由 Apache 组织提供的开源的、免费的、不断完善的 JSP 标签。

  1. 作用
  • JSTL 标签库是用来简化和替换 JSP 页面上的 java 代码(代码脚本),这样使得整个 JSP 页面变得更佳简洁。
    JSTL的

优点:

  • 提供一组标准标签
  • 可用于编写各种jsp页面

在使用JSTL之前我们需要导包
在jsp页面添加taglib指令

3.1使用步骤

  1. 导入 jstl 相关的jar包
    在这里插入图片描述

  2. 引入标签库

<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>

  1. 使用标签
  • 使用 taglib 指令引入标签库,就可以使用标签了,其中 prefix 用来指定前缀名,可以改变,但是建议使用约定俗成的比较好。

  • URI 相当于库的唯一标识,因为 JSTL 由多个不同的库组成,使用该属性指定要导入哪个库。

<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>

使用标签
    使用 taglib 指令引入标签库,就可以使用标签了,其中 prefix 用来指定前缀名,可以改变,但是建议使用约定俗成的比较好。

URI 相当于库的唯一标识,因为 JSTL 由多个不同的库组成,使用该属性指定要导入哪个库

3.2使用

三、JSTL(jsp标准标签库)

通用标签:set out remove


<c:set var=“sb” value=“ 665 + 1 " s c o p e = " s e s s i o n " > < / c : s e t > < c : o u t v a l u e = " {665+1 } " scope="session"></c:set> <c:out value=" 665+1"scope="session"></c:set><c:outvalue="{sb }”></c:out>
移除前: s b < b r > < c : r e m o v e v a r = " s b " s c o p e = " r e q u e s t " / > 移 除 后 : {sb }<br> <c:remove var="sb" scope="request"/> 移除后: sb<br><c:removevar="sb"scope="request"/>{sb }

条件标签:if


<c:if test=“ e m p t y m y l s " > 666 < / c : i f > < h 3 > 跟 下 一 个 界 面 有 关 : 没 有 登 录 显 示 表 单 登 录 了 欢 迎 x x x < / h 3 > < c : i f t e s t = " {empty myls}"> 666 </c:if> <h3>跟下一个界面有关:没有登录显示表单 登录了欢迎xxx</h3> <c:if test=" emptymyls">666</c:if><h3>xxx</h3><c:iftest="{not empty uname}”>
欢迎 u n a e m ! < / c : i f > < c : i f t e s t = " {unaem}! </c:if> <c:if test=" unaem</c:if><c:iftest="{empty uname }“>

用户名:

密码:




</c:if>

迭代标签:foreach


打印1-10

<c:forEach var=“i” begin=“1” end=“10” step=“2”>
i < / c : f o r E a c h > 遍 历 集 合 : < b r > < c : f o r E a c h i t e m s = " {i } </c:forEach> 遍历集合:<br> <c:forEach items=" i</c:forEach><br><c:forEachitems="{myls}” var=“g”>
${g.gname }
</c:forEach>
<c:forEach items=“aa,bb,cc,dd” delims=“,” var=“a”>
${a}
</c:forEach>

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值