Cookie ,Session

会话技术

从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话。会话技术就是记录这次会话中客户端态的状与数据的。

会话技术分为Cookie和Session:

Cookie:数据存储在客户端本地,减少服务器端的存储的压力,安全性不好,客户端可以清除cookie

Session:将数据存储到服务器端,安全性相对好,但增加服务器的压力

Cookie

默认有效时间,一次会话中

Cookie在传输中无法传中文

创建Cookie对象:

Cookie cookie=new Cookie("名","值");

该cookie会以响应头的形式发送给客户端

 

设置Cookie在客户端的持久化时间: 单位:秒

cookie.setMaxAge(60*2); //时间到后自动清除

如果不设置持久化时间,cookie会存储在浏览器的内存中,浏览器关闭 cookie信息销毁(会话级别的cookie),如果设置持久化时间,cookie信息会    被持久化到浏览器的磁盘文件里

 

 

设置Cookie携带路径

cookie.setPath("/WEB07"); //只有访问

如果不设置携带路径,那么默认产生该Cookie资源下的路径都携带

 

 

发送Cookie给客户端

response.addCookie(cookie);

删除Cookie:

用同名同路径的持久化时间为0的Cookie覆盖

获取客户端携带给服务器的Cookie

Cookie[]  cookie=request.getCookies();

获取Cookie的name

getName();

获取Cookie的Value:

getValue();

Session

Session技术是将数据存储在服务器端的技术,会为每个客户端都创建一块内存空间   存储客户的数据,但客户端需要每次都携带一个标识ID去服务器中寻找属于自己的内        存空间。所以说Session的实现是基于Cookie,Session需要借助于Cookie存储客户的唯一性标识JSESSIONID

Session对象的生命周期:

创建:

第一次执行request.getSession()时创建

销毁:

服务器关闭时

服务器端的资源无任何操作30分钟

时间可以在工程的web.xml中进行配置

<session-config>

        <session-timeout>30</session-timeout>

</session-config>

手动销毁session

session.invalidate();

获得Session对象

HttpSession session = request.getSession();

获取JSESSIONID

String id=session.getId();

 

Session也是存储数据的区域对象,所以通用三个方法:

session.setAttribute(String name,Object obj);  //存值

session.getAttribute(String name);  //取值

session.removeAttribute(String name);  //删除

获取JSESSIONID

String id=session.getId();

当创建Session时会自动创建一个Cookie, name为JSESSIONID,值为随机产生的一串数,

通过JSESSIONID找Session域内的值,当浏览器关闭再打开时,Cookie会重新创建,JSESSIONID

的值也会变化,要想关闭浏览器在打开后还能找回原有的值就需要重新创建个同名Cookie设置持久化时间替代原有的Cookie

代码如下:

//获取Session

HttpSession session=request.getSession();

//获取JSESSIONID

String id=session.getId();

//向Session域中存数据

session.setAttribute("goods", 123);

      

//将JSESSIONID 持久化

//手动创建Cookie

Cookie cookie=new Cookie("JSESSIONID",id);

      

cookie.setMaxAge(60*3);//设置持久化时间时间

response.addCookie(cookie);//发送

 

response.getWriter().write("JSESSIONID:"+id);

猜你喜欢

转载自www.cnblogs.com/hhthtt/p/10708624.html