10.24 servlet-会话机制

目录

1.概念

2.Cookie

3.Session

4.Session和cookie的区别

5.ServletContext


1.概念

会话:一次会话中包含多次请求和响应。一次会话中,浏览器第一次给服务器发送请求,会话建立,直到有一方断开为止。
会话跟踪:会话跟踪的目的是让http协议默认的无状态变为有状态,在一次会话中,让服务器识别                    多次的请求来自于同一浏览器客户端。
实现方式:
客户端会话技术: Cookie
服务端会话技术: Session

2.Cookie

Cookie存小文本数据(4kb),记录状态。

1.  创建Cookie对象,绑定数据

Cookie cookie=new Cookie(String name,String value);
2. 发送Cookie对象
Cookie cookieResponse.addCookie();
3.  获取Cookie ,拿到数据,识别身份
Cookie[] request.getCookies(); (在众多cookie中找到本站点发cookie)
4. 默认 浏览器关闭,cookie中数据销毁,但可以 setMaxAge( int seconds)
    设置cookie存活时间。(以秒为单位)

5. Cookie作用和特点(背)

        a. cookie存储在客户端浏览器

        b. 浏览器对单个cookie的大小是有限制的(4KB ),对同一域名服务器来最多可以(20个)

        c. cookie中一般用于存储少量不敏感的数据

        d. 有cookie,下次可以不登录情况下,完成服务器端对客户端身份的识别(免登录 )

3.Session

1.概念 : 服务端会话技术,在一次会话中多次请求间共享数据,将数据保存在服务端对象中。

2.session的实现是依赖于cookie的

        session在cookie会话中通过JSESSIONID名称标识会话,确保用户唯一性。

        获取sessionID采用HttpSession的getID()方法。

3.特点

        Session可以存储一次会话中多次请求数据,存储服务器内存

        Session可以存储任意类型数据(Object) ,任意大小的数据

4. session什么时候被销毁?

        a. 客户端关闭

        b. 服务器端关闭

        c. 主动销毁    session.invalidate()
        d. 超时,默认情况下30分钟失效

4.Session和cookie的区别

1. session存储数据在服务器端,Cookie在客户端
2. session没有数据大小的限制 ,Cookie有 4kb
3. session数据安全,cookie相对于不安全

5.ServletContext

Request 代表一次请求(响应)

Session 代表一次会话 (多次请求和应答)

ServletContext代表一次应用 (多次会话)
ServletContext共享范围大于Session共享范围要大于Request共享范围
request)
心得:在禁用cookie时,可以使用url重写来发送sessionID。正确
           在doGet()方法的第一行加入request.setCharacterEncoding("UTF-8"),错误。

你可能感兴趣的:(1024程序员节,servlet)