javaweb中Cookie和Session实现

1.核心概念

Cookie是存在于浏览器的文本,用于保存用户的登录密码等数据;
Session存在于服务端,用于跟踪用户登录状态等;

2.Cookie实现

	Cookie[] cookies = request.getCookies();
			if(cookies!=null&&cookies.length>0)
			{
				for (Cookie cookie:cookies)
				{
					System.out.println(cookie.getName()+":"+cookie.getValue());
				}
			}else
			{
				Cookie cookie = new Cookie("name", "yalong");
				cookie.setMaxAge(120);
				response.addCookie(cookie);
			}

在servelt中通过response给浏览器设置Cookie数据。

3.Session实现


			String user = request.getParameter("user");
			String password = request.getParameter("password");
			HttpSession session = request.getSession();
			String username = (String) request.getSession().getAttribute("user");
			if(username ==null || username.equals(""))
			{
				if("yalong".equals(user)&&"yalong921".equals(password))
				{
					session.setAttribute("user", user);
					session.setAttribute("password", password);
					response.getWriter().print("登录成功");
				}else
				{
					response.getWriter().print("首次登录失败");
				}
			}else
			{
				response.getWriter().print("当前处于登录状态");
			}

底层原理:服务器为每一个访问的浏览器分配一个唯一的id,并且会将这个jsessionid以cookie的形式发送到浏览器(服务器调用了getSession()方法才会返回jsessionid到浏览器,并不是每个请求过来都返回),浏览器再次访问时就会把这个jsessionid发送到服务器,服务器就能找到session对象。
  如果浏览器再次访问(请求消息头中带有jessionid)时,服务器能找到对应的sessionid,则服务器不再返回sessionid到浏览器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值