1. Cookie
cookie : name(key) -> value
javax.servlet.http.Cookie
cookie是由服务端产生,再发送给客户端保存。
相当于本地缓存的作用。可以提高服务端的效率,但是安全性较差。
常用方法:
public Cookie(String name ,String value) //Cookie cookie = new Cookie("uname",zs)
String getName(); //获得Name值
String getValue(); //获得Value值
void setMaxAge(int expiry); //设置最大有效期(秒)
a.服务端准备Cookie:
第一步:response.addCookie(Cookie cookie)
第二步:页面跳转(转发,重定向)*-------(JSP页面跳转的两种方式)
b.客户端获取Cookie:
request.getCookies(); 获取的为服务端的全部Cookie,通常用数组保存。
建议cookie只保存 英文数字,否则需要进行编码,解码
2.Session
session(服务端) 中文翻译为:会话
例如:浏览网站:开始----关闭(一次会话)
购物:浏览----付款----退出 (一次会话)
session执行机制:、
a. 客户端第一次请求服务端时,服务端会产生一个session对象(用于保存该客户端的信息)并且每个session 对象都会有一个唯一的sessionId(用于区分其他的session);
b. 服务端又会产生一个cookie 并且该cookie的name = JSESSIONID ,value= 服务端sesssionId的值;
c. 然后服务端会在响应客户端的同时,将该cookie发送给客户端,至此,客户端就有了一个cookie(JSSEIONID)与服务端的session一一对应
客户端第二次在请求时,服务端会先用客户端的cookie中的JSESSIONID 与服务端session中的sessionid匹配,若匹配成功,则说明之前登陆过,就无需再次登录。
session方法:、
String getId(): //获取的sessionId
Boolean isNew(); //判断是否为第一次访问、
void invalidate(); //使session失效(退出登录,注销)
void setAttribute(); //保存数据
Object getAttribute(); //获得数据
void setMaxInactiveInterval(秒) ; //设置最大非活动时间
int getMaxInactiveInterval(); // 查看最大非活动时间