JavaWeb总结(六)—Session
一、Session的介绍
在Web开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的 session中取出该用户的数据,为用户服务。
Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。
如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。
当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否包含了一个session标识(即sessionId),如果已经包含一个sessionId则说明以前已经为此客户创建过session,服务器就按照session id把这个session检索出来使用(如果检索不到,可能会新建一个,这种情况可能出现在服务端已经删除了该用户对应的session对象,但用户人为地在请求的URL后面附加上一个JSESSION的参数)。如果客户请求不包含sessionId,则为此客户创建一个session并且生成一个与此session相关联的sessionId,这个session id将在本次响应中返回给客户端保存。
二、Session的生命周期
1.Session的创建
一个常见的误解是以为session在有客户端访问时就被创建了,然而事实是直到某Server端程序调用了下列代码是才被创建:
HttpSession session = request.getSession(true);
注意
(1)如果JSP没有显示使用<% page session="false"%>关闭session,则JSP文件在编译成Servlet时会自动加上上面的一句代码,这也是JSP隐含的session对象的来历。
(2)访问.html静态资源因为不会被编译为Servlet,也就不涉及session的问题。
(3)当JSP页面没有显式禁止session时,在打开浏览器第一次请求该JSP时服务器会自动创建一个session,并赋予一个sessionId,发送给客户端浏览器。以后客户端接着请求本应用其他资源时会自动在请求头添加。
2.Session的销毁
(1)直接的调用HttpSession的invlidate()方法,该方法使session失效。
(2)超出HttpSession的过期时间。
第一种设置HttpSession的过期时间。
session.setMaxInactiveInterval(60); //单位为秒
第二种在Tomcat设置HttpSession的过期时间: 单位为分钟。
<session-config><session-timeout>30</session-timeout></session-config>
(3)服务器卸载了当前Web应用。
转载于:https://www.cnblogs.com/yangang2013/p/5387915.html
JavaWeb总结(六)—Session相关推荐
- JavaWeb中的Session、SessionListener、在线人数统计
2019独角兽企业重金招聘Python工程师标准>>> JavaWeb中的Session 在JavaWeb中使用HttpSession(以下简称session)对象来表示一个会话. ...
- JavaWeb中使用session保持用户登录状态
使用session保持用户登录状态 // 登录 成功// 保存用户登录的信息到Session域中req.getSession().setAttribute("user", logi ...
- JavaWeb: Redis存储Session方案
2019独角兽企业重金招聘Python工程师标准>>> 所有支持Servlet规范的容器都自带session管理,于是大多数人都使用HttpSession接口存放状态信息.事实上, ...
- JavaWeb学习:session
关于Session: 图1 session的话,是将数据保存在服务端的,是服务端的会话跟踪技术.关于session的原理,其实session是基于cookies实现的. 假设服务端写了两个servle ...
- JAVAWEB开发之Session的追踪创建和销毁、JSP详解(指令,标签,内置对象,动作即转发和包含)、JavaBean及内省技术以及EL表达式获取内容的使用
Session的追踪技术 已知Session是利用cookie机制的服务器端技术,当客户端第一次访问资源时 如果调用request.getSession() 就会在服务器端创建一个由浏览器独享的ses ...
- JAVAWEB开发之Session的追踪创建和销毁、JSP具体解释(指令,标签,内置对象,动作即转发和包括)、JavaBean及内省技术以及EL表达式获取内容的使用...
Session的追踪技术 已知Session是利用cookie机制的server端技术.当client第一次訪问资源时 假设调用request.getSession() 就会在server端创建一个由 ...
- JavaWeb _ 07 session、Cookie和七天免登陆
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.会话管理 二.cookie 三.session 四.cookie与session的区别 五.七天免登陆 一.会话管理 概 ...
- JavaWeb:掌握Session的使用,完善用户登录注册案例的功能
↑↑Java语法基础 -> 小型项目练习 -> MySQL 更多学习内容均更新在专栏了,记得关注专栏哦 ↑↑
- javaWeb基础六:JQuery—Ajax异步请求
JQuery 之 Ajax 异步请求 1.1 Ajax简介 1.1.1 不使用Ajax存在的问题 在发送请求得到响应时,我们常常只需要刷新网页局部的数据,而不是整个网页的资源(在网页资源过大时,效率会 ...
最新文章
- 区块链的安全软肋是什么?
- 和对象一起运动更快乐!看完这篇正经研究,找对象的理由又多了一个
- 黄金三月,掌握这些,在六十万iOS程序员中脱颖而出
- JAVA 的 Date、Calendar的常用用法
- Oracle Proc开发之Makefile的编写模板
- C语言实现UDP网络通信(附服务端和客服端完整源码)
- Android 开发之多线程处理、Handler 详解
- 如何做到自动化运营--数据驱动
- XML解析-Dom4j的DOM解析方式更新XML
- php会话控制区别和流程,PHP会话控制:cookie和session区别与用法深入理解_后端开发...
- ActiveMQ_2安装
- H5清理微信缓存的方案
- Windows中通过命令行新建文件夹、新建文件
- 捋一捋Android的转场动画
- 一文搞定 Spring Security 异常处理机制!
- dubbo中文官方文档(新地址)
- 《软件工程导论》期末复习知识总结
- PaddleOCR 文字检测部分源码学习(8)-损失函数(4)
- 《一名网络工程师的自我修养》--子网划分
- HTML 视频(Videos)播放