什么是Session?
- session表示客户端与服务器的一次会话
- Web中的session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所通过的这段时间,也就是用户浏览这个网站所花费的时间
- 从上述定义中能够看到,session实际是一个特定的时间概念。
- session保存在服务器的内存中,而且为不一样的用户保存不一样的session。
以下购物流程为一个session。web
session对象
- session对象是一个JSP内置对象。
- session对象在第一个JSP页面被装载时自动建立,完成会话期管理。
- 从一个客户打开浏览器并链接到服务器开始,到客户端关闭浏览器离开这个服务器结束,被称为一个会话。
- 当一个客户访问服务器时,可能会在服务器的几个页面之间切换,服务器应当经过某种办法知道这是一个客户,这就须要session对象。
- session对象是HttpSession类的实例。
session对象的经常使用方法:
- long getCreationTime():返回SESSION建立时间
- public String getId():返回SESSION建立时JSP引擎为它设的惟一ID号。
- public Object setAttribute(String name, Object value):使用指定名称将对象绑定到此会话。
- public Object getAttribute(String name):返回与此会话中指定名称绑定在一块儿的对象,若是没有对象绑定在该名称下,则返回null
- String[] getValueNames():返回一个包含此SESSION中全部可用属性的数组。
- int getMaxInactiveInterval():返回两次请求间隔多长时间此SESSION被取消(单位秒)
session的生命周期:
建立:数组
当客户端第一次请求某个jsp或者Servlet的时候,服务器会为当前会话建立一个SessionId,每次客户端向服务器发送请求时,都会将此SessionId携带过去,服务器会对此SessionId进行校验。浏览器
活动:服务器
- 某次会话当中经过超连接打开新页面属于同一个会话。
- 只要当前页面没有所有关闭,从新打开新的浏览器访问同一个项目资源时属于同一会话。
- 除非本次会话的全部页面都所有关闭后再从新访问某个Jsp或者Servlet将会建立新的会话。
注意事项:注意原有会话还存在,只是这个旧的SessionId仍然存在于服务端,只不过再也没有客户端会携带它而后交予服务器校验。这个session设置的超时时间过了服务器会销毁此sessionId。session
销毁:jsp
Session的销毁只有三种方式:网站
- 调用了session.invalidate()方法。
- Session过时(超时)
Tomcat默认的超时时间为30分钟。spa
设置超时时间的两种方式:xml
-
- session.setMaxInactiveInterval(时间)://单位是秒
- 在web.xml中配置
<session-config>对象
<session-timeout>10</session-timeout>
</session-config> 单位是分钟
3.服务器从新启动。