cookie=new Cookie(“uname”,“zhangsan”);
Cookie[] cookies=request.getCookies(); if(cookies!=null){ for(Cookie c:cookies){ String name=c.getName(); String value=c.getValue(); if("uname".equals(name)||"pwd".equals(name)) out.print(name+":"+value+"<br>"); } }
cookie的输出
利用cookie提供的
cookie进阶
设置有效期:cookie.setMaxAge(10);
实现五分钟内面输入登录
利用EL表达式卡哇伊获取参数的值、获得隐含对象作用于中属性的值,从而可以替代JSP页面中的复杂代码
计算基本的表达式:${a+b}
访问数组:
${names[0]},${names[1]}
${user.username},${user.pwd}
${user["username"]},${user["pwd"]}
中括号应用范围更广
ArrayList list=new ArrayList(); list.add(new userInfo("lisi","123")); application.setAttribute("list1",list); //第一种形式 ${list1.get(0).username},${list1.get(0).pwd} //第二种形式 ${list1[1].username},${list1[1].pwd}
HashMap map=new HashMap(); map.put("uname","zhangsan"); map.put("pwd","123"); map.put("adress.aa","洛阳"); map.put("user",user); pageContext.setAttribute("map",map); //注意,有特殊符号时只能用中括号形式访问 ${map.uname},${map.pwd},${map["adress.aa"]}
参数访问对象
param
${param.username}
paramValues
${paramValues.hobby[0]},${paramValues.hobby[1]}
作用域访问对象(四个)
范围:pageContext>request>session>application
${pageSccope.a1+pageScope.b1}
上下文访问对象
${pageCotext.request.remoteHost}
头部请求对象:
${header["host"]} ${headerValues["Accept"][0]}
算术运算符:+,-,*,/ div,% mod
比较运算符:>
gt
, >=
ge
,<
lt
,<=
le
,==
eq
,!=
ne
逻辑运算符:&&
and
,|
or
,|
not
条件运算符:? :
判空运算符: empty
${name1==null || name1==""}
定义:用于解决常见问题的自定义标签库
目的:简化前台页面代码
使用方式:
添加JSTL、standard的jar包
添加jsp页面并加入taglib指令
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
标签:
表达式操作标签
out
标签
<c:out value="hello"></c:out> <c:out value="" default="默认值"><c:out> <c:out value="" default="默认值"><c:out>
set
标签
<c:set var="name" value="zhangsan"><c:set> <jsp:useBean id="user" class="com.haust.entity.UserInfo"></jsp:useBean> //给对象属性赋值 <c:set target="${user}" property="username" value="lisi"></c:set> //键值对集合 <c:set target="${map}" property="uname" value="lisi"></c:set>
remove
标签
<c:remove var="name"/>
条件标签
if
标签
<c:if test="${10>5}">十大于五</c:if>
choose、when、otherwise
标签
<c:choose> <c:when test="${age<18}"> 年龄小于18不能打疫苗 </c:when> <c:when test="${age>=18 and age<60}"> 可以打疫苗 </c:when> <c:otherwise test="${age>=18 and age<60}"> 可以打疫苗 </c:otherwise> </c:choose>
迭代标签
forEach
标签forEach
属性
//forEach遍历数组 <c:forEach items="${nums}" var="item" varStatus="status"></c:forEach> ${item} <c:if test="${status.count%3==0}"><br></c:if> //forEach遍历map <c:forEach items="${map}" var="item" varStatus="status"> <c:choose> <c:when test="${status.last}"> ${item.value}:${item.value.username}-${item.value.pwd}<br> </c:when> <c:otherwise> ${item.key}:${item.value}<br> </c:otherwise> </c:choose> </c:forEach> 1-100奇数和 <c:set var="sum" value="0"></:set> <c:forEach begim="1" end="100" step="2" var="i"> <c:set var="sum" value="${sum+i}"></c:set> </c:forEach> ${sum}
forTokens
标签//前台输入,通过jstl实现后台数据输出 1.forTokens <c:forTokens items="${param.stu}" delims="," var="item"> ${item}<br> </c:forTokens>
URL 标签
import
标签<c:import url="input.jsp" ></c:import> //将文件里的内容保存在变量var中 <c:import url="input.jsp" var="url"></c:import> ${url}
url
标签
//显示网址 <c:url value="input.jsp" ></c:url> //将网址保存后展示 <c:url value="input.jsp" var="url1"></c:url> ${url} //添加子标签 <c:url value="input.jsp" > <c:param name="uname" value="lisi"></c:param> <c:param name="pwd" value="123"></c:param> </c:url>
redirect
标签
<c:redirect url="doinput.jsp"> <c:param name="stu" value="488,366,3"></c:param> </c:redirect>
国际化格式
标签
requestEncoding
<fmt:requetEncoding value="utf-8"></fmt:requetEncoding>
formatDate
<jsp:useBean if="date" class="java.util.Date"></jsp:useBean> <fmt:formatDate value="${date}" pattern="yyyy-MM-dd hh:mm:ss E"></fmt:formatDate>
e=“utf-8”></fmt:requetEncoding>
- `formatDate` [外链图片转存中...(img-wegoiQHG-1621251176073)] ```xml <jsp:useBean if="date" class="java.util.Date"></jsp:useBean> <fmt:formatDate value="${date}" pattern="yyyy-MM-dd hh:mm:ss E"></fmt:formatDate>