注意:
①Session是基于Jsessionid实现的,JSessionId是作为Cookie存到客户端数据里的,因此存在cookie丢失而导致session丢失的情况
一、创建属于该客户端(一次会话)的私有的session区域
HttpSession session =request.getSession(); //方法内部判断该客户端是否已经存在session,判断的一句是根据
JsessionId是否存在,如果存在则不创建,直接返回这个Session
String id =session.getId(); //获取该session对象的id
session.setAttribute(String key,String value);
二、获取session,从Session中获得存储的数据
HttpSession session=request.getSession(); //已存在Session所以直接返回该客户端的Session
String attribute=(String) session.getAttribute("name");
三、session的生命周期
创建:服务器端第一次的request.getSession
销毁:①服务器(非正常)关闭 ② 默认生命周期为30分钟(从不操作服务器的资源:地址链接/数据资源等,开始计时),设置就在web.xml,一般都是固定的没必要动态配置 ③手动销毁 session.invalidate();
四、Jsessionid的持久化----------避免Cookie销毁而找不到session
手动创建一个存储sessionid的Cookie,设置持久化时间