会话技术session

什么是会话?

会话Session代表的是客户端与服务器的一次交互过程,这个过程可以是连续也可以是时断时续的。

例:tomcat的会话,mybatis的会话,shiro的会话管理

为什么要使用会话技术呢?

实际上会话问题解决的还是客户端与服务器之间的通信问题,通过一些会话技术,可以将每个用户的数据以例如cookie/session的形式存储,方便以后用户访问资源的时候使用。
资源可能是本地文件,也可能要通过web服务器获取,或者是当前服务器的内存中。
可能是C/S架构,或者是B/S架构都可以使用

常见会话技术

一:JavaWeb (B/S)

会话技术——Cookies和Session详解 - 知乎 (zhihu.com)

客户端会话技术 —— Cookie

Cookies 可以简单的理解为服务器暂存在你浏览器中的一些信息文件,它将你在网站上所输入的一些内容,或者一些选项记录下来,当下一次你访问同一个网站的时候,服务器就会主动去查询这个cookie资料,如果存在的话,将会根据其中的内容,提供一些特别的功能,例如记住账号密码等

总结一下就是:

  • 网页之间的交互是通过HTTP协议传输数据的,而Http协议是无状态的协议 (数据提交后,浏览器和服务器的链接就会关闭,在此交互的时候 需要重新建立新的连接)
  • 服务器无法确认用户的信息,于是给每一个用户发一个通行证,通过此确认用户的信息

但是cookie最新的浏览器会有跨域的问题

服务器会话技术 —— Session

Session是另一种记录浏览器状态的机制,Cookie保存在浏览器中,Session保存在服务器中。用户使用浏览器访问服务器的时候,服务把用户的信息,以某种形式记录在服务器,这就是Session

总结:Javaweb会话机制主要是为了解决http无状态的问题,用来确认用户。但是现在更多的用jwt代替会话机制,因为。。。(留个坑,后面填)

二:mybatis的会话(C/S)

在mybatis下有一个session包,这里面有一个sqlSession对象。一次查询数据库会创建一个session,关于这次查询的所有操作都会在这个session中进行,比如解析sql,开启事务,执行sql,封装返回值

三:shiro的session (C/S)

shiro是一个简单易用的安全框架,提供了一个企业级会话管理的功能。

shiro可以通过自己定义的session存储一些数据,不需要通过web容器。


        // Do some stuff with a Session (no need for a web or EJB container!!!)
        // 存一些数据在shiro的session,这里的session不是servlet的session,是shiro自己的。
        Session session = subject.getSession();
        session.setAttribute("someKey", "aValue");
        String value = (String) session.getAttribute("someKey");
        if (value.equals("aValue")) {
            log.info("Retrieved the correct value! [" + value + "]");
        }
trieved the correct value! [" + value + "]");
        }
  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值