Java教程

Session

本文主要是介绍Session,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  • 服务器会给每一个用户(浏览器)创建一个Session对象

  • 一个Session独占一个浏览器,只要浏览器没有关闭,这个Session就存在

  • 用户登录之后,每个网站都可以访问-->保存用户的信息,购物车等信息


Session 和 Cookie的区别:

  1. Cookie是客户访问服务器的时候,服务器把用户的数据写给用户的浏览器,响应给客户端cookie,浏览器保存(可以保存多个),下次访问携带Cookie过去,服务端从请求中拿cookie【一个Cookie只能保存一个信息,一个web站点可以给浏览器发送多个cookie,最多存放20个cookie;浏览器上限300个cookie】

  2. Session把用户的数据写到用户独占Session中,一个浏览器一个,服务器端保存(保存重要的信息,减少服务器资源的浪费。【第一次访问,在服务端登记一个Session,每个用户有唯一SessionID,由用户拿到;服务器的Session可以存很多数据根据ID来区分,每次访问即可找到相应的Session】

  3. Session对象由服务器创建。

使用场景:

  1. 保存一个登录用户的信息;

  2. 购物车信息;

  3. 在整个网站中经常会使用的数据,我们将它保存在Session中;

使用Session:

        //注册servlet 一个请求对应一个servlet
        //解决乱码
        resp.setCharacterEncoding("utf-8");
        req.setCharacterEncoding("utf-8");
        //把文档变为html
        resp.setContentType("text/html;charset=utf-8");
        //得到Session
        HttpSession session = req.getSession();
        //给Session 存入东西 节点 同时可以存对象,比如Person
        // session.setAttribute("name","rose");
        session.setAttribute("name", new Person("jack", 2, 20));
        //获取session的Id
        String id = session.getId();
        //判断Session是不是新创建的  .write为写出来,print为打印
        boolean aNew = session.isNew();
        if (aNew) {
            resp.getWriter().write("Session 创建成功!id为" + id);
        } else {
            resp.getWriter().write("session已经在服务器中存在!id:" + id);
        }
       ===============================
         //把之前的节点 移除
        session.removeAttribute("name");
        //手动 注销此session
        session.invalidate();
      =========web.xml中配置会话过期================
    </servlet-mapping>
    <!--    设置Session默认的失效时间 自动失效-->
    <session-config>
    <!--    15分钟后Session自动失效-->
        <session-timeout>15</session-timeout>
    </session-config>
</web-app>

这篇关于Session的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!