zoukankan      html  css  js  c++  java
  • Session管理

    Session的作用是维持一个会话的连接。每一个session有一个sessionID。

    浏览器第一次发送请求给服务器,服务器查找请求中的Cookie有没有JsessionID,如果有则根据ID找到session,就将请求与之前的会话联系起来了,

    否则,服务器新建一个session,将sessionid通过cookie传给客户端,这样,每次客户端都会传回这个cookie,服务端就能找到jsessionID,联系会话。

    由于cookie可能会被禁用,可以使用以下的方式

    1,URL重写

    在网址后面增加参数,作为传递的依据.     格式是: 地址?k=v&k=V

    2,使用隐藏的表单来传递数据  type='hidden'即可

    3,上面的两种方法适合于不需要跨越很多页面的情况。使用cookie解决这些问题。

    不能直接删除一个cookies,要想删除只能新创建一个同名 的cookie,然后设置maxAge=0;

    Cookie cookie=new Cookie("K","V");
    cookie.setMaxAge(0);
    response.addCookie(cookie); 
    

    4,HTTPSession

    HttpSession中的值是保存在内存中的,可以把任意的java类型的数据写入HttpSession中。
    与Cookie不一样,HttpSession的值不会发送给客户端,而是保存在服务器内存。Servlet容器为每一个HttpSession创建一个唯一的标识符——jsessionid,标识符传递到客户端,客户端之后只需要把标识符发回来就可以了。一般通过Cookie或者将jsessionid作为参数放在URL的后面。

             HttpSession session=req.getSession();
        
            if(session.isNew()){
                System.out.println("新的Session");
                session.setAttribute("Time",System.currentTimeMillis());
            }
            System.out.println(session.getAttribute("Time"));
            System.out.println(session.getId());
            
            //用户最后一次离开之后,这个Session还能存活10s,10s之后服务器就把那个用户给忘记了。
            //值设为0,session就永远有效
            session.setMaxInactiveInterval(10);
    //使得这个Session强制过期
    session.invalidate();

      

  • 相关阅读:
    【回顾整理】HTML+CSS个的两个实战项目
    【转】tkinter实现的文本编辑器
    迟到的tkinter---学校选课刷屏器
    调用有道翻译API
    【leetCode】3Sum Closest
    【LeedCode】3Sum
    【LeedCode】String to integer(atoi)
    【LeetCode】Reverse digits of an integer
    前端工程师必备PS技能
    【LeetCode】Add Two Numbers
  • 原文地址:https://www.cnblogs.com/Coder-Pig/p/6890152.html
Copyright © 2011-2022 走看看