会话技术- session

服务端会话技术
Servlet的一个对象,全称HttpSession,同时也是一个作用域。
生活中实例
登录网站,关闭浏览器之后会提示你重新登录。
如何做到关闭浏览器后通知你重新登录。

Session作用域的特性
存放的值可以跨页面,只要你不关闭浏览器那么你的作用域的值就一直存在。也就意味着会话不结束session长存(可以设置最大存活时间)。

实际项目中如何实现访问页面拦截
在登录成功之后,将用户的ID或者对象存到Session中,如果访问页面的时候判断Session中存在这个ID 意味着现在已经登录可以访问本页面,如果ID获取不到,意味着没有登录。

会话跟踪技术
实际说session不具备检测浏览器开启关闭的功能,所有能实现的原理就在JSESSION
上。

能实现这种跟踪技术要依赖Cookie。

去面馆吃饭,要了一碗面,此时这碗面属于你个人,此时你和这碗面是有关联的。 吃到一半不想吃了,来了另外一个人发现了桌上的半碗面,那么面虽然还在但是这个人一定还会重新点一碗新的面,旧的面会被服务员倒进垃圾桶(Java进行垃圾回收)。

只要浏览器不关闭,会话不超时,无论新建多少个选项卡都能访问到session的数据。

案例:用户登录
1、如果用户没有登录,需要跳转到login.jsp
2、如果用户登录了,允许访问任意本项目页面,并且在页面中显示登录的账号
3、如果关闭浏览器,需要重新登录。

实现步骤:
1、用户登录成功之后将名称保存到session中

2、在本项目各个页面获取用户账号

任何本项目的页面都可以访问
3、关闭服务器后者关闭浏览器,再次访问非登录,跳转到登陆页面中。

关闭浏览器之后直接不让访问其他直接给跳转到了Login.JSP页面

Session是服务器对象,为什么关闭服务器在启动我们还能够获取session信息
session 的活化与钝化功能。
简单说明:
活化:将session从本地读取到内存中 (启动服务器的时候)
钝化:从内存中将数据保存到本地硬盘 (关闭服务器的时候)
session一般都保存一些非常重要的数据,开发者为了不会因为服务器异常关闭导致内存中的数据丢失,会将数据钝化到本地。 重启后直接恢复到内存中。 数据一直存在。

Tomcat服务器默认支持session活化与钝化功能。

你可能感兴趣的:(javaWeb)