session 和 cookie

来源:互联网 发布:windows脚本编程格式 编辑:程序博客网 时间:2024/06/14 23:22

Session

当用户第一次连接到服务器的时候,服务器为该用户建立一个Session,并分配给用户一个唯一的标识(Session ID),以后用户每次提交请求,都要将标识一起提交。服务器根据标识找出特定的Session,用这个Session记录用户的状态
只要在每个请求和响应中包含特定的Session ID,服务器就可以将一个用户与另一个用户区分开

创建Session对象

HttpSession session = request.getSession(true);

因为是首次访问服务器,服务器中还没有相对应的Session,所以会创建一个新的Session对象

存储会话中的信息

session.setAttribute("name""value");

设置需要存储的值以及相应的参数名称。对应当前用户的状态

其他页面中获得保存的Session并查找与会话相关联的信息。

HttpSession  session = request.getSession(true);session.getAttribute("name");

废弃会话数据

session.removeAttribute("name");//删除指定的参数名称和参数值。session.invalidate();//使整个会话失效。

Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等。

生成Cookie

Cookie  c =  new  Cookie(“key”,”value”);

生成的Cookie以键值对的形式存在,key和value都必须是String类型

设置Cookie有效期

c.setMaxAge(1000);//1000秒后失效

参数为正值,保存Cookie到浏览器的硬盘上
参数为负值,不保存Cookie
参数为0,删除Cookie

发送Cookie对象

response.addCookie(c);

读取所有Cookie

  Cookie[]  cookies = request.getCookies();    Cookie   c = null;    if(cookies!=null){         //遍历读取回来的Cookie数组        for(int i=0;i<cookies.length;i++){              c = cookies[i];              //获取key值和value值              out.println(c.getName()+”<br>”);              out.println(c.getValue()+”<br>”);         }    }
原创粉丝点击