1.EL表达式
1)作用:
EL(Expression Language):在JSP页面上使用的一种数据访问语言
<%=request.getParameter(“userName”)%>
2)语法
${表达式}
${userName}
3)EL中的标识符、保留字、变量、常量
标识符:同Java标识符-表达式中变量的命名规则
保留字:el表达式中的运算符
变量:将变量映射到一个对象 ${product}
常量:
Null常量: null 表示一个空对象
4)EL中的运算符
. 运算符 :访问对象的属性 ${product.price}
[] 运算符:相似于. 运算符
${product[price]}
List list=new arrayList();
${list[0].price}
Product[sp?name]
算术:+ - */ mod
比较: == != > < >= <= 返回bool值 true false
逻辑:与 或 非 返回bool
Empty: 判断对象是否为空
条件:? : ${ 5<3 ? userName:“条件不成立@” }
()运算符: 改变运算先后顺序
5)EL隐式对象(11)
Page(pageScope)\request(requestScope)\session(sessionScope)\application(applicationScope)
属性值的访问先后顺序:由作用域小到大的先后顺序去访问
赋值:用作用域(内置)对象
访问:用EL表达式的隐式对象来访问
PageContext—pageContext
获取上下路径
Param\ paramValues
Header\headerValues
Cookie
initParam:web应用的初始化参数
2.JSTL
1)何为JSTL及其组成
A: JSTL:解决JSP页面上的代码块重复问题,把相同功能的代码块抽象成标签的形式,形成标签库,sun公司形成的标签库
B:JSTL(5个部分)
Core 核心标签库:循环,变量的输出、地址获取
I18N 国际化标签库
SQL 、XML
FN标签库
FM :格式化标签库 double—》money $ 日期显示
2)JSTL的下载与使用方法
A 导入jstl.jar到 lib文件夹下
B 在jsp页面上通过taglib指令引入 标签库
*.tld 标签库描述符文件:描述标签的内容
C 在JSP页面上使用标签
<prefix:标签名称 标签的属性>
标签体
</prefix:标签名称>
3)Core标签库的使用方法
<c:out> <c:if>
<c:forEach>:遍历集合
<c:if test=”条件表达式”> 条件判断 :条件表达式返回true,显示标签体的内容
<c:choose > 多分枝条件判断
自定义标签
自定义标签库(Tag library)
通过SimpleTagSupport类实现
通过实践发现,直接通过SimpleTag接口来编写标签处理器类是有一些麻烦的,因为SimpleTag接口中有很多方法需要我们来实现,但是现实使用中,我们并不是所有方法都使用。
基于这个原因,我们还可以通过另一种方式来实现标签处理器类,就是SimpleTagSupport,这个类实现了SimpleTag接口,并且接口中的方法都已经被该类实现了,所以我们直接通过继承该类就可以更加方便的实现一个标签处理器类。
SimpleTagSupport
通过继承SimpleTagSupport实现标签处理器类,只需要重写doTag()方法即可。
Public class MyTag2 extends SimpleTagSupport {
@Override
Public void doTag() throws JspException, IOException {
JspWriter out = getJspContext().getOut();
out.print(“<h1>你好啊,我是自定义标签</h1>”);
}
}
<tag>
<name>tag2</name>
<tag-class>com.atguigu.web.tag.MyTag2</tag-class>
<body-content>empty</body-content>
</tag>
tld文件