Java session 常用方法及用例

session与cookie 常见方法及用例

session

服务器可以为每个用户浏览器创建一个会话对象(session对象),一个浏览器只能产生一个session,当新建一个窗口访问服务器时,还是原来的那个session。session中默认保存的是当前用户的信息。因此,在需要保存其他用户数据时,我们可以自己给session添加属性。session(会话)可以看为是一种标识,通过带session的请求,可以让服务器知道是谁在请求数据

Cookie的定义

网站为了辨别用户身份、进行session跟踪而存储在用户本地终端上的数据(通常经过加密)。也就是说如果知道一个用户的Cookie,并且在Cookie有效的时间内,就可以利用Cookie以这个用户的身份登录这个网站。

  会话cookie和持久cookie的区别?
  如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。
  如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。 
  存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。

session与cookie区别和联系

session是由服务器创建的,并保存在服务器上的。在session创建好之后,会把sessionId放在cookie中返回(response)给客户端。返回的代码应该是这样子的。返回的cookie是保存在客户端的。

@RequestMapping(value = "/test",method = RequestMethod.POST)
    public void test(HttpServletRequest request,HttpServletResponse response) throws IOException {

        /**
         * session 常见方法
         * .getId() 获取sessionId
         * .isNew() 判断Session是否是新的(如果客户端请求消息中返回了一个与Servlet程序当前获得的HttpSession对象的会话标识号相同,
         *          则认为这个HttpSession对象不是新建的),如果session存在则赋值,否则创建一个新的session
         * .setMaxInactiveInterval(int value) 设置session最大时效 时间单位秒;
         * .getMaxInactiveInterval() 获取session最大时效
         * .getCreationTime() 获取session创建时间
         * .getLastAccessedTime() 获取session最后访问时间
         * .invalidate() 销毁session对象
         * .setAttribute(String key, Object value); 设置session 对象中的数据
         * .getAttribute(String key) 获取session存储的信息
         * .removeAttribute(String name); 删除session中存储的数据
         */

        /**
         * 创建一个session request.getSession() 效果等同于 true
         * true:如果这个http请求如果有session,择直接通过.getSession()获取一个session,否则创建一个新的;当前session中存取信息时使用
         * false:只能获取当前请求中的session,如果没有则不会创建,且返回null 若无法确定会话一定存在,则推荐使用;当前session中获取信息时使用
         */
        HttpSession session=request.getSession(false);
        /**
         * session.isNew()  此方法,判断session是否已被创建,作用等同于 request.getSession(true),二者选其一即可
         */
        //session.isNew();
        session.setAttribute("data","测试啊");//session中添加数据
        Cookie cookie=new Cookie("JSESESSION",session.getId());//创建cookie,且保存sessioID
        cookie.setPath(request.getContextPath());
        response.addCookie(cookie);//将session 返回请求
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值