浏览器与web服务器之间是使用的http协议进行通信的,但是http请求是无状态的协议,只要是两次请求,就无法保持状态。为了解决http协议无状态的问题,引入了访问状态的管理。
访问状态的管理有两种解决方案:客户端和服务器端。
客户端的解决方案:使用cookie实现保存已访问的信息。
cookie:是服务器写在客户端的浏览器中的一个文本文档,其底层是以键值对的方式存储信息。
缺点:信息写在客户端很不安全,信息可以随意修改;而且一段时间后会失效。因此重要信息都是存在服务器中。
服务器端的解决方案:
1.session对象实现页面访问控制:只针对一个用户,可以多次请求
session即会话(客户端与服务器端的多次请求和响应的过程,一个session只针对一个客户端)
特点:同一个浏览器的session编号不变,session是针对用户的,即一个浏览器就是一个用户
session的创建:第一次请求服务器时,有服务器创建,并创建了编号,将编号以cookie回传客户端
session的方法: session.setAttribute("键",值 );
Object session.getAttribute("键");//取出来的是object类型的
session销毁的时机:
1.关闭浏览器一段时间后(时间间断与服务器的配置有关)
2.强制退出(用户退出)
session.invalidate(); 不可依赖,可能不会及时删除 (session被清除,不存在)
session.removeAttribute(""); 可信赖的,及时删除 (session还存在,)
3.关闭服务器
2.application对象实现统计在线人数:(跨用户的)存一个信息,所有用户可以取到
application的方法: application.setAttribute("键",值 );
Object application.getAttribute("键");