1、从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话。
2、Cookie:数据存储在客户端本地
3、Session:将数据存储到服务器端
1、Cookie技术是将用户的数据存储到客户端的技术
2、Cookie cookie = new Cookie(String cookieName,String cookieValue);//不能有中文,且为会话级别
3、cookie.setMaxAge(int seconds);//设置Cookie在客户端的持久化时间
4、cookie.setPath(String path);
//如果不设置携带路径,那么该cookie信息会在访问产生该cookie的web资源所在的路径都携带cookie信息
//示例:
//cookie.setPath("/WEB");
//代表访问WEB应用中的任何资源都携带cookie
//cookie.setPath("/WEB/cookieServlet");
//代表访问WEB中的cookieServlet时才携带cookie信息
5、删除客户端的cookie
//如果想删除客户端的已经存储的cookie信息,那么就使用同名同路径的持久化时间为0的cookie进行覆盖即可
6、接受Cookie
//a、通过request获得所有的Cookie:
//Cookie[] cookies = request.getCookies();
//b、遍历Cookie数组,通过Cookie的名称获得我们想要的Cookie
//for(Cookie cookie : cookies){
// if(cookie.getName().equal(cookieName)){
// String cookieValue = cookie.getValue();
// }
//}
1、Session的实现是基于Cookie,Session需要借助于Cookie存储客户的唯一性标识JSESSIONID
2、HttpSession session = request.getSession();
//如果服务器端没有该会话的Session对象会创建一个新的Session返回,如果已经有了属于该会话的Session直接将已有的Session返回
3、向session中存取数据(session也是一个域对象)
//session.setAttribute(String name,Object obj);
//session.getAttribute(String name);
//session.removeAttribute(String name);
4、生命周期
//创建:第一次执行request.getSession()时创建
//销毁:
//1)服务器(非正常)关闭时
//2)session过期/失效(默认30分钟)
//问题:时间的起算点 从何时开始计算30分钟?
//从不操作服务器端的资源开始计时
//可以在工程的web.xml中进行配置
//<session-config>
// <session-timeout>30</session-timeout>
//</session-config>
//3)手动销毁session
//session.invalidate();