Jsp相关
jsp
1. 概述
由sun公司提供的动态web资源开发技术,看起来像html,但是可以在jsp页面中写
java代码。
2. 技术由来
servlet适合处理业务逻辑,但不适合向外输出页面。
html适合开发页面,但不能展示动态数据。
jsp结合了html和servlet的优点,既可以像html那样开发静态页面,也可以书写java代码。
3. jsp 语法
-
jsp表达式:
<%= 脚本表达式 %>
表达式的值会原样输出到当前位置。 -
jsp脚本片段
<% java语句 %>
最终java语句会被翻译为普通的java代码执行。
注意:一个jsp脚本片段可以不完整,但是多个片段必须是完整的。 -
jsp指令
<%@ 指令名称 若干属性 %>
-
Page指令:用来声明当前jsp页面的基本属性,一般放在jsp的最上面。
属性:
language:当前jsp使用的开发语言。
contentType:数据编码格式。
import:导包。 -
include指令:可以实现页面的包含效果。
-
taglib指令:用于导入JSTL标签库。
4. pageContext 隐式对象
——代表当前jsp页面的运行环境
5. jsp标签技术
在jsp中写入大量java代码会导致jsp页面混乱,所以sun公司提出了jsp标签技术,推荐使用jsp标签来代替jsp中的java代码,
并推荐不要在jsp中出现任何一行java代码。
5.1 EL表达式
EL表达式用来代替jsp页面中的jsp表达式,可以获取数据,但不能遍历或者设置,格式如下:
${表达式}
-
获取数据
可以获取常量、变量、数组中的数据、集合中的数据、对象的属性等。值得注意,EL表达式只能从四大作用域中获取数据。 -
执行运算
算术: +、-、*、/、%...
关系: >、<、>=、<=、==...
逻辑: &&、||、!
三元表达式: 表达式? "aaa" : "bbb"
empty运算:判断数据是否为空。 -
常用开发对象
EL表达式内置了11个常用对象
-
pageContext 有了它,意味着有了其他八大隐式对象。
详情可见 -
pageScope-代表pageContest作用域的对象,可以从中获取数据。
-
requestScope-代表request作用域的对象,可以从中获取数据。
-
sessionScope-代表session作用域的对象,可以从中获取数据。
-
applicationScope-代表ServletContext作用域的对象,可以从中获取数据。
-
param : 此对象中保存了所有的请求参数。
-
cookie :所有的cookie对象会保存到这个对象中,可以通过cookie的name获取cookie对象。例如:
${cookie.remname.value}
5.2 JSTL标签库
JSTL标签库用来代替jsp页面中的脚本片段。其有许多子库,我们只使用核心标签库(core)。
使用时先要导入JSTL的jar包,然后在jsp页面通过taglib指令引入核心标签库:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set> 用来向域中设置属性
<c:if> 条件语句
<c:forEach> 用来遍历