JSP Session及其生命周期

简介: @什么是Session:1、session表示客户端与服务器的一次会话2、Web中的session指:用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览网站所花费的时间。
@什么是Session:
1、session表示客户端与服务器的一次会话
2、Web中的session指:用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览网站所花费的时间。
3、在服务器的内存中保存着不同用户的session,一个用户对应一个session
4、从上述定义中可以看到,session实际是一个【特定的时间概念】
 
 
(1)session是JSP的一个内置对象,是HttpSession类的实例。
(2)从客户打开浏览器并连接到服务器开始,到客户关闭浏览器窗口断开与服务器的连接,这一过程成为一个会话。
(3)当客户在同一个网站的不同页面之间进行切换并访问时,服务器是通过session来判断这些请求是否来自同一个客户。
(4)session一般有时间限制,长时间不操作可能会导致session失效。session失效后原session中保存的属性值会全部丢失。
(5)setMaxInactiveInterval(int i)  该方法可直接设定session的生存时间,超过该时间session会重新创建。(单位:秒)
-------------------------------
session对象的常用方法有:
long getCreationTime() : 返回session的创建时间;
public String getId() : 返回session的唯一ID号(该ID在session生成时,由JSP引擎创建)
public Object setAttribute(String name,Object value) : 按照键值对的方式在该session会话中保存一个属性(该属性是一个对象类型)
public Object getAttribute(String name) : 返回指定名称的属性的值(如果该名称的属性不存在,则返回null)
String[] getValueNames() : 返回一个(包含在此session中所有可用属性)的数组。
int getMaxInactiveInterval() : 返回一个时间,该时间表示当前session间隔多少时间之后会失效(单位:秒)。

 
session的生命周期
1.创建:当客户端第一次访问某个jsp或者servlet时候,服务器会为当前会话创建一个SessionId,每次客户端向服务器发送请求时,都会将此SessionId携带过去,服务端会对此SessionId进行校验
2.活动:
①某次会话当中通过超链接打开的新页面属于同一次会话
②只要当前会话页面没有全部关闭,重新打开的浏览器窗口访问同一个项目资源时属于同一次会话
③除非本次会话的所有页面都关闭后在重新访问某个JSP或者servlet将会创建新的会话
注意:注意原有会话还存在,只是这个旧的Session仍然存在于服务端,只不过再也没有客户端会携带它然后交予服务端校验
3.销毁:三种方式
①调用了session.invalidate()方法
②Session过期(超时)、
	配置XML文件
	<session-config>
	<session-timeout>xxx</session-timeout>
	<session-config>
③服务器重新启动

相关文章
|
8月前
|
存储 缓存 Java
JSP页面生命周期详解及优化建议
JSP页面生命周期详解及优化建议
151 0
|
7月前
|
存储 Java 开发者
JSP 教程 之 JSP Session 2
JSP教程讲解了如何使用Session进行会话跟踪。HTTP协议本身无状态,但JSP通过HttpSession接口存储用户信息。默认开启会话跟踪,可设置`&lt;%@ page session=&quot;false&quot; %&gt;`禁用。session对象提供多种方法,如getAttribute()获取绑定对象,getCreationTime()获取创建时间,setAttribute()用于存储数据,以及invalidate()使会话失效。这些方法便于开发者管理用户会话和数据。
69 0
|
4月前
|
自然语言处理 Java 数据库连接
探索研究JSP 生命周期
【9月更文挑战第29天】
45 0
|
7月前
|
Java
JSP 教程 之 JSP Session 1
JSP教程讲解了三种维持HTTP会话的方法:Cookies、隐藏表单域和重写URL。尽管Cookies是最常见的,但由于不总被支持,所以不推荐。隐藏表单域在表单提交时能跟踪会话,但超链接无法触发。重写URL是更通用的方法,即使在无Cookie支持下仍能工作,但需对每个URL动态添加session ID,增加了复杂性。
35 2
|
8月前
|
存储 Java 应用服务中间件
JSP实现简易的聊天功能(Session机制)
这是一个使用JSP实现的简易聊天功能,基于Session机制和服务器端全局应用空间Application。用户通过login.jsp登录,信息存储在Session中。container.jsp展示聊天界面,包括用户列表、聊天内容和输入框,同时处理发送、清空和刷新等操作。view.jsp动态显示聊天历史,根据用户颜色选择改变消息显示。多用户间通过切换浏览器模拟聊天。网址格式为:http://localhost:8080/项目名/...。如果仅本机可访问,可能因不在同一局域网,需确保所有设备在同一网络并使用本机IP替代localhost。
87 3
|
8月前
|
Java 容器
JSP 教程 之 JSP 生命周期 3
了解JSP生命周期对掌握其核心功能至关重要。它包括编译、初始化、执行和销毁四个阶段。在编译阶段,JSP被转化成servlet源码并编译为类。初始化阶段加载servlet,创建实例并执行初始化方法。执行阶段调用_servletService()处理请求和响应,每次请求都会触发该方法处理GET、POST等HTTP操作。最后,销毁阶段调用servlet的销毁方法并删除实例。
62 2
|
8月前
|
Java 数据库连接 容器
JSP 教程 之 JSP 生命周期 4
JSP生命周期包括编译、初始化、执行和销毁四个阶段。在编译阶段,JSP转换为servlet。初始化阶段加载并实例化servlet。执行阶段调用服务方法响应请求。销毁阶段调用销毁方法,如`jspDestroy()`,用于资源释放。示例代码展示了`jspInit()`、`_jspService()`和`jspDestroy()`方法在生命周期中的应用。浏览器显示初始化、服务请求和销毁的计数。
52 1
|
8月前
|
Java 数据库连接 开发者
JSP 教程 之 JSP 生命周期 2
JSP教程探讨了JSP生命周期,包括编译、初始化、执行和销毁四个阶段。当浏览器请求页面时,JSP引擎可能先编译JSP,将其转化为servlet并执行初始化方法jspInit()。在执行阶段,调用servlet的服务方法。最后,通过调用jspDestroy()销毁servlet实例。开发者可覆盖jspInit()进行自定义初始化操作,如建立数据库连接。
49 1
|
8月前
|
Java 容器
JSP 教程 之 JSP 生命周期 1
**JSP生命周期概览**: JSP的生命周期从编译开始,当需要时,servlet容器将JSP转换为servlet类。接着是初始化,加载servlet并实例化,调用初始化方法。执行阶段涉及调用服务方法响应客户端请求。最后,销毁阶段servlet实例的销毁方法被调用,实例被释放。此过程与servlet生命周期相似,但多了编译步骤。
63 1
|
7月前
|
Java 应用服务中间件
JSP 教程 之 JSP Session 4
JSP教程讲解了HTTP无状态特性及Session管理。删除Session数据可通过移除特定属性(removeAttribute())或注销整个会话(invalidate())。设置会话超时使用setMaxInactiveInterval()。在Servlet 2.4及以上版本,可用logout()登出用户并结束相关session。Tomcat的web.xml配置中,&lt;session-timeout&gt;15&lt;/session-timeout&gt;定义了15分钟超时,而getMaxInactiveInterval()以秒返回此值(默认30分钟为1800秒)。
48 0