会话技术cookie、session

1.为什么使用会话技术

http协议是一种无状态协议,所以服务端是无法识别客户端。为了解决这个问题,使用会话技术,即session和cookie。

其目的是为了记录客户端的状态,区别在于session在后端,cookie在前端。原理均是给客户端开辟一个独立的空间记录客户端的状态。

2.会话技术周期

浏览器打开一个站点(开始),浏览器关闭(结束)。如果只是关闭了系统的站点网页session和cookie是仍然存在的。

3.创建cookie

以购物车举例,用户选中商品添加购物车实际是一次想后端请求商品信息的请求。服务端在返回商品信息时,要把商品的标识id放进cookie。创建cookie:Cookie cookie =new Cookie("name","zhangsan");  response.addCookie(cookie); 

4.设置cookie的生命周期

一般来说默认 cookie的生命周期随会话结束而结束。也可设置其存在时间,cookie.setMaxAge(secend);时间为秒。

5.设置带cookie的请求路径

如果未设置cookie的请求路劲,则路劲为new cookie的servelet 同级路径。同级路径及其子路径都会带cookie,反之则不带。

设置路径cookie.setPath();

6.创建session

session技术是给予cookie技术之上的。创建session的语句是:request.getSession()。该语句会自动做判空操作。

创建后会创建一个cookie对象放入response对象,cookie内容是:JSSESSIONID; 

7.session存取数据

seesion.setAttribute(String,Object);

session.getAttribute(String name);

session.removeAttribute(name);

8.session生命周期

开始:调用request.getSession();

结束:  服务端(非正常)关闭;

          session.invalidate();

          session失效过期(默认30分钟无服务端资源操作);

         设置失效时间,在web.xml中:

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

          cookie失效

面试题:浏览器关闭,session会销毁吗?不会,若cookie销毁了session扔存在,只是JSESSIONID不见了,找不到了。

session作用范围:一次会话

猜你喜欢

转载自blog.csdn.net/u011862930/article/details/88045631
今日推荐