通过session保存数据

                                  通过session保存数据
开发工具与关键技术:Visual Studio 2015
作者:李德新
撰写时间:2019年7月4日

在IT技术的快速发展的今天,越来越多的技术被研发出来,浏览器的功能也越发完善。如我们在网页上经常可以看到的在页面有许多的可以填写的表格,我们在填写完之后我们写的这些表格里面的数据会保存在哪里的呢?其实这就是浏览器里面的一个缓存机制的使用。
浏览器的缓存机制为我们提供了可以将客户数据缓存在客户端上的方式,,可以利用cookie与session等跟服务器端进行数据交互。Cookie与session都是用来跟踪浏览器用户身的会话方式,不同的是cookie是保存在浏览器端而session是保存在服务器端。Cookie主要还是用来保存一些登陆的信息的,用来判断我们是否登录过某个网站,以及保存上次看过的页面的信息和浏览计数。而session则有更大的主观性,不但可以用来保存我们的登录的账号信息也可把我们需要用到的一些器它的信息,让这些保存在session中的数据在别的页面上也可以使用。session对比cookie而言存储的数据的量更大而且还具有更大的操作性以及安全性,而且cookie每一次访问都要传输一次,浪费宽带。不过session也并不是全都是好处,session保存的东西越多,服务器占用的内存也就越大,如果同时多人在线就会对我们的服务器内存造成比较大的压力。
在这里插入图片描述
如上图所示,session的创建时非常简单的,我们只需要把我们要的数据获取到之后,把它们保存到session中就好了。但是session的一个好处就是可以在不同网页上去调用保存在session中的数据,这样我们也就实现了,不同页面调用数据的效果了。在我们保存了数据之后,这个session在页面的会话期间都可以使用而且保存的数据的量也比较大。
我们在保存了数据到session中不需要我们在自己重新封装,而是可以直接使用源生接口,而且我们也可以再次封装来对Object和Array有更好的支持。如我在上图中保存的数据一样。
在这里插入图片描述
如上图,我们可以看到我们在session中保存的数据在我们取出来之后我们就可以直接是用了而不用再对我们这些数据进行过多的操作。而且我们所获取到的这些数据在我们没有关闭浏览器之前是不会被取消的,会一直保存到我们整个会话的结束。
在这里插入图片描述
如图所示,我们在获取到我们需要的这些信息之后我们就可以直接使用,回填到我们所需要的回填的表格之中了。如此我们就可以可以在不同的页面上去使用我们所需要的所有的数据。

Session数据保存在服务器端,具体来说,是保存在服务器内存、硬盘或数据库等持久化存储设备中。当用户首次访问 Web 应用程序时,服务器会为该用户创建一个 Session,然后将 Session 的 ID 通过 Cookie 或 URL 的方式返回给客户端,以便客户端能够识别并关联请求与 Session。 当客户端在后续的请求中携带 Session ID 时,服务器会根据该 ID 在服务器端查找对应的 Session,并将请求与该 Session 关联起来。在 Session保存数据会一直存在,直到 Session 超时或被主动销毁。 Session 的具体存储方式可以通过 Web 应用程序的配置文件或代码进行指定。在默认情况下,Session数据保存在服务器内存中,但是如果服务器重启或崩溃,数据会丢失。为了保证 Session数据不会丢失,可以将 Session数据保存到硬盘或数据库中。可以使用以下代码将 Session数据保存数据库中: ``` <Manager className="org.apache.catalina.session.PersistentManager"> <Store className="org.apache.catalina.session.JDBCStore" connectionURL="jdbc:mysql://localhost:3306/session_db" driverName="com.mysql.jdbc.Driver" sessionAppCol="app_name" sessionDataCol="session_data" sessionIdCol="session_id" sessionLastAccessedCol="last_access_time" sessionMaxInactiveCol="max_inactive_interval" sessionTable="session_data"/> </Manager> ``` 这将会将 Session数据保存到名为 session_data 的表中,表中包含 session_id、app_name、session_data、last_access_time 和 max_inactive_interval 等字段,具体含义可以参考配置文件中的注释。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值