javaweb中Cookie和Session实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yaonga/article/details/86680315

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到浏览器。

猜你喜欢

转载自blog.csdn.net/yaonga/article/details/86680315