Cookie-2(通过用户登录来对比session与cookie的区别)

session

存用户信息

session.setAttribute("username",username);

取用户信息

session.getAttribute(name);

生命周期
服务端只要web应用重启就销毁,客户端只需浏览器关闭就销毁。

退出登录

//获取session销毁
HttpSession session = req.getSession();
//销毁session的方法
session.invalidate();

cookie

存用户信息

Cookie cookie = new Cookie("name",username);
resp.addCookie(cookie);

读取用户信息

通过遍历的方式读取到cookie

Cookie[] cookies = req.getCookies();
for (Cookie cookie:cookies){
    if (cookie.getName().equals("name")) {
	out.write("欢迎回来"+cookie.getValue());
    }
}

生命周期

不随服务器的重启而销毁,默认关闭浏览器就销毁,我们通过setMaxAge()方法设置有效期,一旦设置了有效期,则不随浏览器关闭而销毁,而是由设置时间决定。

退出登录

cookie.setMaxAge(0);

工作流程

cookie

1.首先访问到了cookie_login.jsp,输入用户名和密码正确的话添加cookie,重定向到cookiewelcome.jsp,否则再跳转回cookie_login.jsp。

2.cookiewelcome.jsp

//检测获取cookie值
Cookie[] cookies =  request.getCookies();
//判断输出用户名
for (Cookie cookie:cookies) {
    if(cookie.getName().equals("name")) {
        out.write("欢迎回来"+cookie.getValue());
    }
}

登陆完毕退出登录
退出登录代码见上

<a href="/cookieLogout">退出登录</a>
上一篇:通过Cookie存放用户登录信息以及安全性问题


下一篇:UnixBench的实现介绍