回顾
cookie
- 如何向浏览器返回 cookie
- resp.addCookie(new Cookie(名, 值));
- 如何获取浏览器发送来的 cookie
- req.getCookies() => 数组
- cookie 的寿命如何控制
- setMaxAge(-1) 默认,关闭浏览器,cookie 销毁(会话cookie jesessionid)
- setMaxAge(0) 立刻销毁
- setMaxAge(正整数) 单位是秒,过多少秒后销毁
- cookie 有什么大小限制
- 4k
- 20 个左右
- 300 个左右
session
- 如何创建或获取 session
- HttpSession session = req.getSession()
- session.setAttribute(名, 值);
- session.getAttribute(名) 返回值
- 描述 session 的工作过程
- req.getSession() 首次会创建 session 对象,产生一个唯一id
- 通过 jsessionid cookie 将 session 的唯一id返回给浏览器,浏览器会存储此cookie
- 浏览器再次发生请求时,会携带此cookie,可以根据它id值找对应的 session对象
- session 在何时会销毁
- 当30分钟不发送请求,session 就会过期,从而销毁
- session.invalidate()
jsp
-
jsp 的注释、代码块、表达式
-
<%-- --%> <% %> <%= 表达式 %>
-
-
page 指令的作用
-
<%@ page contentType="" import=""%>
-
-
include 指令的作用
-
<%@ include file="另一个jsp"%>
-
-
9 个隐式对象
pageContext request session application response out page config exception
今日内容
1. EL 和 JSTL(*)
定义和语法
expression language, 作用:就是从各个域中获取变量的值,并显示
${ 域变量名 }
域变量的查找
pageScope.变量名
requestScope.变量名
sessionScope.变量名
applicationScope.变量名
变量名 从小到大依次查找四个域,找到了就显示,找不到继续向下查找。如果四个域都没有找到,不显示结果,但不会报错
用EL显示值
自定义类型,例如 Student (*)
- 语法:${ 变量名.属性名 } 实际调用的属性对应的 get 方法
数组和 list
- 语法:${ 集合变量名[索引] }
map 集合
- 语法:${ 集合变量名.key }
特殊运算符
empty 可以用来检查
- 对象是否为null
- 字符串是否为 “” 串
- 数组和集合是否没元素(基本类型数组不行!)
三元
- 语法 ${ 条件表达式 ? 结果1 : 结果2 }
隐式对象
要求掌握
${pageContext.request.contextPath} 获取虚拟目录,以及四个跟域相关的隐式对象即可
jstl
jsp 标准标签库(主要使用 core 核心标签)
<c:if test="${empty 变量名}"> ... </c:if>
<c:if test="${not empty 变量名}"> ... </c:if>
<c:forEach items="${集合变量名}" var="临时变量名">
${临时变量名}
</c:forEach>
2. 学生管理系统改进(*)
添加学生流程
查询学生流程
登录流程
体现的思想称为 mvc
- m - model 模型 - 主要指数据(以及数据逻辑部分)
- v - view 视图 - 用来展示数据的,对应 jsp 页面
- c - controller 控制器 - 将模型和视图联系起来的类,对应 servlet