1
${作用域.属性名}相当于pageContext.findattribute("属性名")
Person p=new Person();
p.setNmae("张飞");
p.setAge(7);
pageContext.setatrribute("person",p,pagescope)
${pagescope.person.age}
2
获取当前web的上下文:<%=request.getContextPath() %>
获取当前web的上下文:<%=((httpservletRequest)pageContext.request).getContextPath() %>
获取当前web的上下文EL:${pageContext.request.contextPath}
pageContext:jsp内置对象
PageContext:El内置对象
3
使用el表达式的内置对象pageContext时
如果调用的方法从get开始,并且方法没有参数getXxx()此时可以写成pageContext.xxx
此{pageContext.xxx}等价于pageContex.request.contextpath
如果调用的方法是isXxxx开始的也可使用 并且方法没有参数 pageContext.xxxx
获取当前web应用的上下文:<%= ((HttpServletRequest)pageContext.getRequest()).getContextPath() %><br>
获取当前web应用的上下文EL:${pageContext.request.contextPath}<br>
获取当前查询字符串EL:${pageContext.request.queryString}<br>
获取请求的URIEL:${pageContext.request.requestURI}<br>
获取请求方法EL:${pageContext.request.method}<br>
获取sessionIDEL:${pageContext.session.id}<br>
获取是否是新创建的session:${pageContext.session.new}<br>
${empty pageScope.list}
String=null true
String="" true
Sring="df" true
4
empty 运算符主要用来判断值为null或是空的
当使用该运算符判断集合属性时:
*可以判断是否存在属性
可以判断该属性的集合是否为空集合
为空 返回true
不为空 返回false
5
当使用empty判断集合时
作用域中集合不存在 返回值为true
作用域的集合存在 但集合中没有存放对象 返回值为true
作用域的集合存在 并且集合中存放对象 返回值为false
6
Jsp中名称 EL表达式中名称
page pageScope
request requestScope
session sessionScope
application applicationScope
7
如何自定义一个标签:
如何写一个自定义标签:
1 定义标签的样式<itcast:Date/>
2 定义标签处理类
* 1.Jsp 引擎将代表 JSP 页面的 pageContext 对象传递给标签处理器对象
* * 该方法jsp引擎调用,传递页面的pageContext对象,给该方法的参数
*
3 配置tld文件(xml文件)
4 在web.xml文件中配置tld文件(可以省略)
5 在jsp页面使用
* 引入标签库
* uri:在web.xml文件定义的<taglib-uri>标签的值,或者是tld文件中
<uri>http://www.itcst.cn/jsp/mytag/core</uri>标签的值
* prefix:在jsp中使用标签的前缀名
<%@ taglib uri="/WEB-INF/tag.tld" prefix="itcast" %>
* 使用标签:
<itcast:Date/>
注:tld文件的位置:
* Tld 文件可以放置在 web 应用程序的 WEB-INF 目录及其子目录中,但不能放置在 WEB-INF 目录下的 classes 和 lib 子目录中 。
* tld 文件也可以放置在 WEB-INF/lib 目录下的 jar 包的 META-INF 目录及其子目录中
* 在servlet2.4规范及其以后的版本中 tld文件不用在web.xml文件配置,也就是上面的第四步可以省略
* tld文件服务器查找顺序:
web服务器先在/WEB-INF/下查找,WEB-INF/下查找不到,在lib下jar包中META-INF目录中查找