JavaWeb:EL表达式和JSTL标签库之一

Listener监听器

  1. Listener是JavaWeb三大组件之一(Servlet、Listener、Filter过滤器)
  2. Listener是JavaEE的规范,是接口。
  3. 监听器的作用是,监听某种事务的变化。通过回调函数,反馈给客户去做一些相应的处理

ServletContextListener监听器

ServletContextListener监听器可以监听ServletContext对象的创建和销毁。

EL表达式

Expression Language是表达式语言

主要是替代jsp页面中的表达式脚本

<!--EL表达式的格式是:-->
${表达式}
<!--EL表达式输出null值时的结果为空-->

EL表达式主要在jsp中输出数据,主要输出域对象中的数据。

EL表达式输出的数据是按照域的从小到大的顺序输出

 <%
    pageContext.setAttribute("key","pageContext");
    request.setAttribute("key","request");
    session.setAttribute("key","session");
    application.setAttribute("key","application");
  %>
  ${"key"}
<!--输出的结果为pageContext-->
<%
    request.setAttribute("key", new String[]{"fire", "hello"});
%>
  ${key[0]}
<!--输出结果为fire-->
<!--List集合同理-->

 <%
    Map map = new HashMap();
    map.put("key1","value1");
    map.put("key2","value2");
    map.put("key3","value3");
    map.put("key4","value4");
    request.setAttribute("key2",map);
  %>
  ${key2.key1}
<!--输出结果为value1-->

EL表达式也是使用get方法,要确保存在该属性的get方法。

<!--非空判断-->
<%
request.setAttribute("emptyNull",null);
${empty emptyNull}
<!--返回结果为true-->
  • .点运算可以输出Bean对象中的某个属性的值
  • []中括号运算,可以输出有序集合中某个元素的值
  • 并且[]中括号运算,还可以输出map集合中key里含有的特殊字符key的值。
 <%
    Map map = new HashMap();
    map.put("s.e.t","value4");
    request.setAttribute("key2",map);
  %>
  ${key2['s.e.t']}
变量名 类型 作用
pageContext pageContextlmpl 它可以获取jsp中的九大内置对象
pageScore Map<String,Object> 它可以获取pageContext域中的数据
requestScore Map<String,Object> 它可以获取request域中的数据
sessionScore Map<String,Object> 它可以获取session域中的数据
applicationScore Map<String,Object> 它可以获取application域中的数据
param Map<String,String> 它可以获取请求参数
paramVaues Map<String,String[]> 它可以获取请求参数,获取多个值的时候使用
header Map<String,String> 获取请求头的信息
headerValues Map<String,String[]> 获取请求头的信息,他可以获取多个值的情况
cookie Map<String,Cookie> 它可以获取当前请求的Cookie信息
initParam Map<String,String> 它可以获取web.xml中配置的上下文参数

JSTL标签库

JSTL标签库是一个不断完善的开放源代码的JSP标签库

EL表达式是为了替代表达式脚本,而JSTL标签库是为了替代代码脚本

  1. 核心标签库
  2. 格式化
  3. 函数
  4. 数据库
  5. XML
  • <c:set>标签
<!--使用c:set保存域对象-->
<c:set scope="page" var="key" value="value"></c:set>
<!--
	scope表示存到那个域
	page表示pageContext域;
	request表示request域;
	session表示session域;
	application表示application域

	var表示key
	value表示value
-->
  • <c:if>标签
<!--
	test表示判断条件(使用EL表达式输出)

-->
<c:if test="${12==12}">
<h1>12等于12</h1>
</c:if>
<!--不支持if-else的语法-->
  • <c:choose><c:when><c:otherwise>
<!--
choose标签开始判断
when标签来判断
-->
 <%
    session.setAttribute("height",180);
  %>
  <c:choose>
    <c:when test="${sessionScope.height>=190}">
      <h5>很高</h5>
    </c:when>
    <c:when test="${sessionScope.height>=180}">
      <h5>挺高</h5>
    </c:when>
    <c:otherwise>
      <h5>不太行</h5>
    </c:otherwise>
  </c:choose>
<!--输出的结果为挺高-->
posted @ 2022-01-04 22:54  Boerk  阅读(27)  评论(0编辑  收藏  举报