jsp EL表达式 JSTL标签库学习笔记

1.什么是 jsp,它有什么用?
jsp 的全换是 java server pages。Java 的服务器页面。
jsp 的主要作用是代替 Servlet 程序回传 html 页面的数据。
因为 Servlet 程序回传 html 页面数据是一件非常繁锁的事情。开发成本和维护成本都极高。

2.jsp 的本质是什么。
jsp 页面本质上是一个 Servlet 程序。
jsp 翻译出来的 java 类,它间接了继
承了 HttpServlet 类。也就是说,翻译出来的是一个 Servlet 程序

jsp有三种脚本:

1、声明脚本
声明脚本它可以声明jsp页面中的代码。
格式是:<%! %>

2、表达式脚本
作用: 表达式脚本的作用是在jsp页面上输出数据。
格式是:<%= %>

3、代码脚本
作用:可以在jsp页面中定义自己需要的语句。
格式是:<% %>
jsp中有三种注释:
1、html注释
html注释翻译之后会在_jspService()方法以out.write输出到页面
2、java注释
// 单行注释
/* 多行注释 */
java的多行注释在翻译之后在翻译到servlet程序的源代码中
3、jsp注释
<%-- jsp注释 --%>
jsp注释可以注掉jsp中所有内容,在jsp翻译的时候会被完全忽略掉

jsp中的九大内置对象:
1、request
2、response
3、pageContext
4、exception
5、application
6、out输出
7、page 指向this对象,也就是jsp对象
8、session
9、servletConfig

四个域对象
四个域对象分别是:
pageContext (PageContextImpl 类) 当前 jsp 页面范围内有效
request (HttpServletRequest 类)、 一次请求内有效
session (HttpSession 类) 一个会话范围内有效(打开浏览器访问服务器,直到关闭浏览器)
application (ServletContext 类) 整个 web 工程范围内都有效(只要 web 工程不停止,数据都在)

它们从小到大的顺序分别是:pageContext 、Request、Session 、application

使用的优先顺序是从小到大:pageContext 、Request、Session 、application

.jsp 中的 out 输出和 response.getWriter 输出的区

out和Response输出的区别。
out输出都写到out缓冲区中
response输出都写到Respnse的缓冲区中,
当jsp页面中所有代码都执行完成之后。全做以下两个操作
1、执行out.flush()操作,把out缓冲区中的数据都追加到Response缓冲区中
2、执行Response的flush()操作。把Response缓冲区中的数据,都写给客户端。
在jsp页面中,统一使用out来进行输出。
out.write()可以输出字符串
out.print()可以输出任意数据
jsp的常用标签
静态包含
格式: <%@ include file="">
动态包含
格式是:<jsp:include page="" >
请求转发
格式是:<jsp:forward page="" >

1.EL 表达式
a)什么是 EL 表达式,EL 表达式的作用?
EL 表达式的全称是:Expression Language。是表达式语言。
EL 表达式的什么作用:EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。
因为 EL 表达式在输出数据的时候,要比 jsp 的表达式脚本要简洁很多。
在这里插入图片描述
b)EL 表达式搜索域数据的顺序
EL 表达式主要是在 jsp 页面中输出数据。
主要是输出域对象中的数据。
当四个域中都有相同的 key 的数据的时候,EL 表达式会按照四个域的从小到大的顺序去进行搜索,找到就输出
c)EL 表达式输出 Bean 的普通属性,数组属性。List 集合属性,map 集合属性
在这里插入图片描述
i. empty 运算
empty 运算可以判断一个数据是否为空,如果为空,则输出 true,不为空输出 false。
以下几种情况为空:
1、值为 null 值的时候,为空
2、值为空串的时候,为空
3、值是 Object 类型数组,长度为零的时候
4、list 集合,元素个数为零
5、map 集合,元素个数为零
在这里插入图片描述
ii. 三元运算
表达式 1?表达式 2:表达式 3
如果表达式 1 的值为真,返回表达式 2 的值,如果表达式 1 的值为假,返回表达式 3 的值。
同c++

iii. “.”点运算 和 [] 中括号运算符
.点运算,可以输出 Bean 对象中某个属性的值。
[]中括号运算,可以输出有序集合中某个元素的值。
并且[]中括号运算,还可以输出 map 集合中 key 里含有特殊字符的 key 的
在这里插入图片描述
e)EL 表达式的是一个隐含对象
EL 个达式中 11 个隐含对象,是 EL 表达式中自己定义的,可以直接使用。
变量 类型 作用
pageContext PageContextImpl 它可以获取 jsp 中的九大内置对象
pageScope Map<String,Object> 它可以获取 pageContext 域中的数据
requestScope Map<String,Object> 它可以获取 Request 域中的数据
sessionScope Map<String,Object> 它可以获取 Session 域中的数据
applicationScope Map<String,Object> 它可以获取 ServletContext 域中的数据
param Map<String,String> 它可以获取请求参数的值
paramValues Map<String,String[]> 它也可以获取请求参数的值,获取多个值的时候使用。
header Map<String,String> 它可以获取请求头的信息
headerValues Map<String,String[]> 它可以获取请求头的信息,它可以获取多个值的情况
cookie Map<String,Cookie> 它可以获取当前请求的 Cookie 信息
initParam Map<String,String> 它可以获取在 web.xml 中配置的上下文参数

i. EL 获取四个特定域中的属性
pageScope ====== pageContext 域
requestScope ====== Request 域
sessionScope ====== Session 域
applicationScope ====== ServletContext

在这里插入图片描述
ii. pageContext 对象的使用

  1. 协议:
  2. 服务器 ip:
  3. 服务器端口:
  4. 获取工程路径:
  5. 获取请求方法:
  6. 获取客户端 ip 地址:
  7. 获取会话的 id
  8. 在这里插入图片描述
    2、JSTL 标签库
    JSTL 标签库 全称是指 JSP Standard Tag Library JSP 标准标签库。是一个不断完善的开放源代码的 JSP 标签库。
    EL 表达式主要是为了替换 jsp 中的表达式脚本,而标签库则是为了替换代码脚本。这样使得整个 jsp 页面变得更佳简洁。
    core 核心库使用
    i. <c:set>
    在这里插入图片描述
    ii. <c:if />
    if 标签用来做 if 判断。
    在这里插入图片描述
    iii. <c:choose> <c:when> <c:otherwise>标签
    作用:多路判断。跟 switch … case … default 非常接近

choose 标签开始选择判断
when 标签表示每一种判断情况
test 属性表示当前这种判断情况的值
otherwise 标签表示剩下的情况
<c:choose> <c:when> <c:otherwise>标签使用时需要注意的点:
1、标签里不能使用 html 注释,要使用 jsp 注释
2、when 标签的父标签一定要是 choose 标签
--%>
<%
request.setAttribute("height", 180);
%>
<c:choose>
<%-- 这是 html 注释 --%>
<c:when test="${ requestScope.height > 190 }">
<h2>小巨人</h2>
</c:when>
<c:when test="${ requestScope.height > 180 }">
<h2>很高</h2>
</c:when>
<c:when test="${ requestScope.height > 170 }">
<h2>还可以</h2>
</c:when><c:otherwise>
<c:choose>
<c:when test="${requestScope.height > 160}">
<h3>大于 160</h3>
</c:when>
<c:when test="${requestScope.height > 150}">
<h3>大于 150</h3>
</c:when>
<c:when test="${requestScope.height > 140}">
<h3>大于 140</h3>
</c:when>
<c:otherwise>
其他小于 140
</c:otherwise>
</c:choose>
</c:otherwise>
</c:choose>ava

iv. <c:forEach />
作用:遍历输出使用。
在这里插入图片描述
2. 遍历 Object
3在这里插入图片描述
3. 遍历 Map 集合

加粗样式
4. 遍历 List 集合—list 中存放 Student 类,有属性:编号,用户名,密码,年龄,
电话信息
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值