JavaWeb(EL表达式+JSTL标签)

总结:
监听器应用场景.
由于servletRequest,HttPSession,ServletContext对象都是容器创建通过对这些对象注册监听器,
就可以得知何时创建或销毁了他们
比如:
1.在容器启动时加载框架容器
2.在contextDestoryed方法中对应用的级别的资源进行释放.
3.统计在线人数.

EL,JSTL
EL表达式:
为什么需要EL表达式和JSTL标签
.JSP中嵌套的大量java代码增加了页面内容的复杂度,使得页面不够简洁,不方便代码的维护
为此sun公司制定了jsp标签(类是html标签)来代替java代码
Apache组织开发的一套标签被sun公司整合后,称为标准标签库(JSP  Standard Tag Library即JSTL),需要
配合EL表达式,已达到减轻JSP文件的复杂度,方便维护JSP文件的目的


什么是EL表达式
EL(Expression Language)表示是一套简单的计算规则,用于给JSP 标签的属性赋值,也可以直接输出
表达式也可以脱了标签单独使用.

EL表达式的作用
.EL表达式的作用可以分为以下几类:
-访问bean的属性
-输出简单的运算结果
-获取请求参数值

使用EL表达式访问Bean属性
.通常情况下JavaBean指的是一个公共的类,含有一个空参的构造函数,一些属性以及访问这些属性提供的get/set方法
方法名与属性名需要符合一定的规范.
使用EL表达式访问Bean属性时可以使用如下两种方式
-方式一:${对象名.属性}
-方式二:${对象名["属性名"]}

控制器servlet
request.setAttribute("user",user);
传统的取出方式

EL表达式方式:${user.name}

page和pageContext区别
page:表示jsp页面本身
pageContext;表示当前页面的上下文对象:表示一个空间,可以放值也可以取值,作用范围仅限当前页面
(可以从页面的任何一个通过java小脚本的方式获取pageContext对象)

执行过程:容器会一次从pageContext,request,session,application中查找绑定名称为"user"的对象
找到后调用getName方法,然后输出.

访问Bean属性案例-1
.使用EL表达式访问Bean的各个属性
方案:创建User类对象,绑定在request对象中,输出基本类型属性值以及引用类型的属性值.

El表达式和java小脚本的比较
-如果request没有user对象
1.java小脚本吧空指针,500异常
2.而EL表达式输出空白

-如果没有那么属性赋值
1.java小脚本输出null
2.而EL输出""

小结:
以${user.name}方式访问会避免上端产生的问题
两种写法对比后,EL表达式具备了简介,以及会将null转换成""输出的特性
ps:使用EL表达式属性名不能写错,否则报错

 

${user.name}
方式二:${对象名["属性名"]}
.方括号中的属性名可以使用引号或双引号.
.此种方式允许[]中出现绑定名,还可以允许[]中出现从0开始的下标,用于访问数组中的某个元素的值.

request.setAttribute("user",user);
${user["name"]} 

指定对象的查找范围.
在编写EL表达式时,可以指定查找对应绑定名对象的范围.
如:在session中查找邦定名为user的对象时,可编写如下代码:

request.setAttribute("id", "id");
号码:${shop.user[id]}  等同于:号码:${shop.user["id"]} 
可以在request对象中绑定一个属性名称,然后在EL中通过这个绑定名来获取到属性名称从而间接访问对象属性.

${sessionScope.user.name}
pageScope
requestScope
ApplicationScope
ps:一旦指定了查找范围,那么在该范围内没有找到指定的绑定对象时,不会再去其他的区域中查找.

使用EL表达式做运算
.EL表达式可以做一些简单的计算,可将结果直接输出或给JSP标签的属性赋值
-算术运算:+ - * / %  ps:这里+号只能求和,不能够连接字符串
-逻辑运算$$ || !
-关系运算:> < <= >=  ==  !=
-empty:用来判断一个字符串是否为空,或者是一个集合是否为空
以下四种情况为true:
空字符串
空的集合
值为null
找不到对应的值

使用EL表达式获取请求参数值
request.getParamether("name")
等价于
${param.name}

.request.getParametherValues("name")
  等价于
.${paramValues.city}


什么是JSTL
JSEL:(JSP Standard Tag Library)JSP标签库.是JAVAEE5.5核心
如何使用JSTL
1.将JSTL标签对应的jar文件拷贝到WEB-INF/lib目录下.
2.使用taglib指令导入要使用JSP标签
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

uri:jsp标签的命名空间
prefix:命名空间的前缀

核心标签:  if标签
.语法:
 <c:if test="" var="" scope="">

 </c:if>
.当test属性为true时,执行标签体的内容,test属性可以使用EL表达式赋值
.var 属性:记录test结果的临时变量
.scope 属性:指定绑定的范围(pageContext,request,session,application)
ps:var和scope要配合使用

练习:通过if标签输出男性员工信息.

核心标签-choose标签
语法:
<c:choose>
    <c:when test=""></c:when>
    <c:when test=""></c:when>
    <c:otherwish></c:otherwish>
</c:choose>

when代表一个处理分支,当test属性为true时会执行该分支,可以出现1次或多次
当没有符合when时,则执行otherwish,可以出现0次或1次

核心标签-forEach标签
.用来遍历集合或数组
语法:
<c:forEach var="" items="">

</c:forEach>
items:指定要遍历的集合,一般使用EL表达式来赋值
var属性:指定一个绑定名称
varStatus属性:指定一个绑定名称,绑定值是一个有容器创建的对象,该对象封装了当前的迭代的状态.

varStatus属性
index返回正在被迭代的对象的下标,下标从0开始
count:返回是第几次迭代,从1开始.

练习:使用forEach标签输出绑定对象中的Employee属性


作业:将t_emp中的数据使用el表达式配合jstl标签的形式在页面显示出来

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值