html:
:显示注释
java:
// :单行注释
/* */:多行注释
jsp:
<%– jsp注释 –%>:隐式注释
EL表达式:JSP 2.0 将EL 表达式添加为一种脚本编制元素。
E L(Expression Language) 目的:为了使JSP写起来更加简单
1、语法结构
${expression} 语法:${表达式或变量}
el表达式中出现的变量必须是 作用域(pageContext,request,session,application)中的属性
如果他们四个的属性都一样那么取作用域最小的pageContext,request,session,application
pageContext.setAttribute("a",1111);
request.setAttribute("a",222);
session.setAttribute("a",3333);
application.setAttribute("a",444);
${a}--->1111
没有pageContext,--->222
再没有request,--->3333
再没有session---->444
...
<%= %>:变量必须值脚本中的变量
2、[ ]与.运算符
EL 提供“.“和“[ ]“两种运算符来存取数据。
EL表达式可以直接用”.”获取private修饰的属性
pageContext.setAttribute(“user”,user);
user.name{user.address}
empty 用来判断 是否为null和””
${empty user.name}
EL 隐含对象:
pageContext:
${pageContext.request.contextPath } 项目名
pageScope:
类型:java.util.Map
作用:取得page 范围的属性名称所对应的值
pageContext.setAttribute("name",1111);
request.setAttribute("name",2222);
session.setAttribute("name",3333);
application.setAttribute("name",444);
${pageScope.name}取出的是page中的a对应的值1111
${requestScope.name}-->2222
${sessionScope.name}-->3333
${applicationScope.name}-->444
。。。
param:
类型:java.util.Map
作用:如同request.getParameter(String name)。回传String 类型的值
${param.name}
paramValues:
类型:java.util.Map
作用:如同request.getParameterValues(String name)。回传
String[] 类型的值
${paramValues.name[index]}
cookie:
如同request.getCookies( )
initParam:
如同application.getInitParameter(String name)。回传String 类型的值
JSTL:
(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的
开放源代码的JSP标签库,是由apache的jakarta小组来维护的。
JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。
JSTL 所提供的标签函数库主要分为五大类:
(1)核心标签库(Core tag library):核心
(2)I18N 格式标签库(I18N-capable formatting tag library)
(3)SQL 标签库(SQL tag library)
(4)XML 标签库(XML tag library)
(5)函数标签库(Functions tag library):了解
使用jstl步骤:
1.导入jstl相关jar包(jstl.jar standard.jar)
2.使用<%@taglib %>指令导入jstl核心标签库
<%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix = “c”%>
prefix:起别名的作用
“`
<c:set value="${pageContext.request.contextPath}" var="path"/>
顺序执行
<c:if test="${}">
</c:if>
<c:if test="${}">
</c:if>
switch case:相当于
<c:choose>
<c:when test="${}">
</c:when>
<c:when test="${}">
</c:when>
<c:when test="${}">
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
//varStatus-->${status.count}计次数
<c:forEach varStatus="statux" items="${pageScope.list}" var="user">
${status.count}:username:${user.name} age:${user.age}<br>
</c:forEach>
//相当于favs.split(",");
<%
String faverates = "lol,dota,cf";
pageContext.setAttribute("faverates",favs);
%>
<c:forTokens items="${favs}" delims="," var="fav">
</c:forTokens>
```
varStatus状态:
index 索引从0开始
count 从1开始,也就是当前遍历次数
current 当前正在迭代的对象
first 是否是第一个
last 是否是最后一个