jsp el表达式 jstl 的简单介绍和使用

1. JSP为什么会出现

1.servlet展示信息的不方便,引入了JSP。
2.JSP本质上也是一个servlet!!!!!!
3.JSP就是在HTML页面中嵌入了java代码。

1.1JSP中如何嵌套java代码

小脚本(<% java代码%>)
声明标签 <%!变量或者方法声明%>
表达式标签 <%= 表达式%> 在页面上显示的效果
程序代码标签 <%java代码%> 页面上动态展示内容

1.2JSP的内置对象

JSP中一共预先定义了9个这样的对象,分别为:

  • request、response、
  • session:由服务器自动创建的与用户请求相关的对象
  • application:与session对象相比,application对象生命周期更长,类似于系统的“全局变量” ServletContext
  • out、:用于在Web浏览器内输出信息
  • pagecontext:取得任何范围的参数
  • config:取得服务器的配置信息
  • page:类似于Java编程中的 this 指针
  • excep:显示异常信息,只有在包含 isErrorPage=“true” 的页面中才可以被使用

JSP的指令

JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。
语法:<%@ directive attribute=“value” %>
directive:指令名称 attribute 属性名 value:属性值
在这里插入图片描述

2.EL表达式

目的:在JSP中使用EL表达式,可以简化对象和变量的访问是EL表达式

2.1EL表达式语法

${需要展示信息的名字}

注意:

当表达式没有指定变量或者对象的范围时,
那么容器会依次从pageContext—>request—>session—>application中查找该变量或对象,我们可以通过隐含 对象获得指定作用域的值:

pageScope对象,用于获取当前页面的属性值
requestScope对象,用于获取请求范围的属性值
sessionScope对象,用于获取会话范围的属性值
applicationScope对象,用于获取程序范围的属性值

2.2 EL中基础操作符

在这里插入图片描述
示例:

单个变量:${a+10}<br>
单个变量:${s}<br>
单个对象:${key.属性名}
//对象类型
Users u=new Users();
u.setName("王老五");
u.setPass("abc");
pageContext.setAttribute("u1",u);
user.name=${u1.name}
user.pass=${u1.pass}
// list集合对象:
List list=new ArrayList();
list.add("刘能");
list.add(30);
list.add(u);
pageContext.setAttribute("list2",list);
list1=${list2[0]}<br/>
list2=${list2[1]}<br/>
list3=${list2[2].pass}<br/>
// map集合:
k1=${map1.k1}<br>
k2=${map1.k2.username}--- ${map1.k2.password}
判断变量是否有值或是否存在:${empty key值}
List list2=new ArrayList();
list2.add("aa");
request.setAttribute("list222",list2);
判断list中是否有数据:${empty list222}

3.JSTL

(1) 什么是JSTL

JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。

(2) JSTL的作用和语法格式,作用:简化jsp页面编写代码
  1. 下载 jakarta-taglibs-standard-1.1.2.zip 包并解压,将 jakarta-taglibs-standard-1.1.2/lib/ 下的两个 jar 文件:standard.jar 和 jstl.jar 文件拷贝到 /WEB-INF/lib/下。
  2. 在JSP页面中引入<%@ taglib prefix=”页面使用的名称” uri=”功能范围的路径”%>
(3) 核心标签

①核心标签是最常用的 JSTL标签。引用核心标签库的语法如下:

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

② 核心标签的分类
表达式操作 out、set、remove、catch
流程控制 if、choose、when、otherwise
迭代操作 forEach、forTokens
URL操作 import、param、url、redirect

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值