session (服务端 内置对象) 下一章讲
一 Cookie(客户端 不是内置对象 必须要new):客户端对象 但是由服务端产生 再发送给客户端保存 其实就是本地缓存
相当于 本地缓存的作用 : 客户端(xxx.mp4)-》服务端(xxx.mp4) 第一次访问 访问完之后 产生cookie 下次访问 直接看本地的就行 提高效率
作用:提高效率
缺点 : 安全性较差
用response 重定向发送也好 用request 请求转发也好 都可以实现 Cookie的发送
并且无论发送到那个页面 只要是发送给客户端 在另一个页面 客户端都能够获取到Cookie(换浏览器就不一定管了)
二 cookie 的方法
(1)
Cookie : key=value
javax.servlet.http.Cookie
public Cookie(String key , String value)
String getName(); 获取name
String getValue(); 获取value
void setMaxAge(int expiry) 设置最大有效期 单位是秒
(2)服务端 发送给客户端 :
response.addCookie(Cookie cookie); 生成一个Cookie
直接页面跳转即可(转发 重定向)
(3)客户端获取cookie:request.getCookies();
a. 服务端增加cookie 用 response 客户端获取对象 用 request;
b 不能直接获取某一个单独对象 只能一次性 全部的cookie拿到
Cookie[] cookie = request.getCookies();
接收Cookie的时候 必须要用Cookie数组 因为Cookie 还有一个SESSIONID 也就是说 Cookie 发过来 至少有两个
通过F12 可以发现 除了自己设置的cookie对象 还有一个 JSESSIONID 的cookie
C:\Users\系统用户的名字 \AppData\Roaming 里面可以找到 本地缓存数据 和cookie
三 使用cookie实现 记住用户名功能
// 模拟服务端
<%
String name =request.getParameter(“uname”);
Cookie cookie =new Cookie(“uname”,name);
response.addCookie(cookie);
response.sendRedirect(“login.jsp”);
%>>
// 客户端
<%
Cookie[] cookie = request.getCookies();
String name = cookie[0].getValue();
%>