1.session(会话)
例如:用户访问淘宝,完成购物,最后退出页面。
2.session执行步骤
- 1.当客户端向服务端发出第一次请求时,服务端会产生一个session对象,用于存储用户的信息,并生成一个sessionID用于识别不同的用户。
- 2.生成一个jessionID和sessionID的值相同,并将JsessionID放入Cookie中,该Cookie的name等于JESSIONID,value=服务端sessionID的值,发送给客户端。
- 3.因此,服务端和客户端可以一一对应(JSESSIONID-SESSIONID)
- 4.在请求时,服务端会先验证客户端以前有没有登陆过(服务端会用cookie中的jessionid区服务端的session中匹配),如果登陆过,则可以直接登陆。如果没有登陆过,则开始第一步。
3.session特性
- 1.Cookie(JESSIONID)保存在客户端,session(SESSIONID)保存在服务端
- 2.session同一次会话共享 (登陆成功后,不管哪个页面,都可以取到提交的值 例如:用户名
和密码)
**4.session的方法
***session为内置对象,所以不需要new
- 1.object getAttribute(key); //获取session中(key,value) key的值 (需要转换为string类型)
//将session kv对中名为"uname"的值取出,并将其强转为String类型赋值给name
String name = (String)session.getAttribute("uname");
- 2.void setAttribute(key,value); //设置kv对的属性和值
String name =request.getParameter("uname");
//将name的值赋给uname
session.setAttribute("uname",name);
- 3.设置最大有效非活动时间
例如登陆状态下不进行任何操作,一段时间后就退出登陆。
session.setMaxInactiveInterval(10);
//请求转发
request.getRequestDispatcher("welcome.jsp").forward(request,response);
- 4.删除session对象
使session失效会直接干掉session,里面的信息都会被删除
session.invalidate(); //直接使session对象失效,但会删除里面存储的别的东西
session.removeAttribute("uname");