Cookie&Session
一、Session
/记录用户的登录信息=保存用户的登录信息
//session.setAttribute("uname",name);//键String,值Object
//设置session的最大有效非活动时间 以秒为单位
//session.setMaxInactiveInterval(10);
//打印 sessionID:
//System.out.print(session.getId());
//从session中取出用户的登录信息
//String name=(String)session.getAttribute("uname");//根据键取得对应的值
//判断
/* if(name==null){
response.sendRedirect("/s5/login.jsp");
} */
二、session
//使用Cookie判断用户是否登录
Cookie c=new Cookie("sname",name);//name,value
//设置Cookie的有效期 10s 一周内免登录
c.setMaxAge(60*60*24*7);
//写入响应
response.addCookie(c);
//拿到所有的Cookie
Cookie[] cs=request.getCookies();
//假设法
boolean f = false;//假设没有登录
if(cs!=null){
//遍历
for(Cookie c:cs){//数组或者集合的数据类型 变量名:集合或者数组名
if("sname".equals(c.getName())){//说明登录了 令牌对了
f=true;
}
}
}
if(f==false){
response.sendRedirect("/s5/login.jsp");
}
2.1 session的应用对象
1、保存用户登录状态 用于判断用户是否登录
2、后期建议直接保存User对象(uuid uname upwd urole)
3、购物车项目 将整个购物车保存到session中 List<Goods>
Cookie的应用场合
1、免登陆
2、历史记录(浏览记录)
2.2 Cookie与session的比较:
(1)session是在服务器端保存用户信息,Cookie是在客户端保存用户信息
(2)session中保存的是对象,Cookie保存的是字符串
(3)session随会话结束而关闭,Cookie可以长期保存在客户端
(4)Cookie通常用于保存不重要的用户信息,重要的信息使用session保存