千家信息网

java中session对象及方法实例分析

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇"java中session对象及方法实例分析"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来
千家信息网最后更新 2026年10月31日java中session对象及方法实例分析

这篇"java中session对象及方法实例分析"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"java中session对象及方法实例分析"文章吧。

session对象用于在会话范围内,记录每个客户端的访问状态,以便于跟踪每个客户端的操作状态,在会话存储的信息,在浏览器发出后续请求时可以获取这些会话的有效数据。

在jsp页面中可以直接使用session对象(jsp的内置对象),也可以通过pageContext.getSession()或者request.getSession重新回去session对象。

session可以保存用户的信息和实现购物车等功能。

HTTP协议是一种无状态协议,客户向服务器发出的请求request,然后服务器返回响应response,连接就被关闭了,在服务器不保存连接的有关信息,因此在下一次连接时,服务器已经没有以前的连接信息了,无法判断这一次连接和上一次连接时同一个客户信息,因此,必须使用会话记录有关连接的信息。

从客户打开浏览器连接到服务器,到客户关闭浏览器离开这个服务器,称做一个会话。当客户访问服务器是,可能会反复连接这个服务器上的几个页面、反复刷新一个页面或不断地向一个页面提交信息等,服务器应当通过某种方法知道这是同一个客户,这时就需要session对象。

session的工作原理如下:

1、客户首次访问服务器的一个页面时,服务器就会为该用户分配一个session对象,同时为这个session指定唯一的ID,并且将该ID发送到客户端并写入到cookie中,使得客户端与服务器的session建立一一对应的关系;

2、当客户端继续访问服务器端的其它资源时,服务器不再为该客户分配新的session对象,直到客户端浏览器关闭、超时或调用session的invalidate()方法使其失效,客户端与服务器的会话结束。

3、当客户重新打开浏览器访问网站时,服务器会重新为客户分配一个session对象,并重新分配sessionID。

session对象主要用于属性操作和会话管理,常用方法如下:

1、public void setAttribute(String name,String value)设定指定名字的属性的值,并将它添加到session会话范围内,如果这个属性是会话范围内存在,则更改该属性的值。

2、public Object getAttribute(String name)在会话范围内获取指定名字的属性的值,返回值类型为object,如果该属性不存在,则返回null。

3、public void removeAttribute(String name),删除指定名字的session属性,若该属性不存在,则出现异常。

4、public void invalidate(),使session失效。可以立即使当前会话失效,原来会话中存储的所有对象都不能再被访问。

5、public String getId( ),获取当前的会话ID。每个会话在服务器端都存在一个唯一的标示sessionID,session对象发送到浏览器的唯一数据就是sessionID,它一般存储在cookie中。

6、public void setMaxInactiveInterval(int interval) 设置会话的最大持续时间,单位是秒,负数表明会话永不失效。

7、public int getMaxInActiveInterval(),获取会话的最大持续时间。

8、使用session对象的getCreationTime()和getLastAccessedTime()方法可以获取会话创建的时间和最后访问的时间,但其返回值是毫秒,一般需要使用下面的转换来获取具体日期和时间。

Date creationTime = new Date(session.getCreationTime());Date accessedTime = new Date(session.getLastAccessedTime());
<%@ page language="java" import="java.util.*" contentType="text/html;charset=GBK"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>
             session对象方法                         会话ID:<%=session.getId() %> 
是否新会话:<%=session.isNew() %>
设置和获取属性对象:用户名 = <%session.setAttribute("用户名","bing"); %> <%=session.getAttribute("用户名") %>
<% Date creationTime = new Date(session.getCreationTime()); Date accessedTime = new Date(session.getLastAccessedTime()); %> 会话创建时间:<%=creationTime %>
上次访问时间:<%=accessedTime %>
会话持续时间(s):<%=session.getMaxInactiveInterval() %>
<%session.setMaxInactiveInterval(12); %> 修改后的会话持续时间(s):<%=session.getMaxInactiveInterval() %>
<%session.invalidate(); %>

获取session常用的几种方法

1.spring mvc中

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();

2. struts2中

(1)

ActionContext context = ActionContext.getContext(); Map request = (Map) context.get("request"); Map session = context.getSession(); Map application = context.getApplication();

(2)

ActionContext actionContext = ActionContext.getContext(); HttpServletRequest request = (HttpServletRequest) actionContext.get(ServletActionContext.HTTP_REQUEST); HttpSession session = request.getSession(); ServletContext context = (ServletContext) actionContext  .get(ServletActionContext.SERVLET_CONTEXT);

3.通过ServletActionContext获取

HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession();

以上就是关于"java中session对象及方法实例分析"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

对象 客户 服务器 服务 方法 属性 时间 信息 浏览器 浏览 内容 客户端 页面 范围 分配 实例 实例分析 分析 名字 状态 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司怎么样 华服互联网科技靠谱吗 北京互联网科技公司 互联网 科技创新 广州善班互联网科技 四个字互联网科技公司取名 顺网科技2021年互联网排名 青海省互联网新科技 北京三清互联网科技 互联网科技教育视频 洛阳共同富裕互联网科技有限公司 锡山区互联网智能科技产品供应 皮皮虾互联网科技有限公司 江苏互联网科技小贷 山东大美朱楼互联网科技有限公司 宁波跨境商互联网科技有限公司 普陀区互联网教育科技管理办法 数字互联网科技有限公司 互联网的科技体现在哪里 安徽九吞吴互联网科技有限公司 精品咖啡豆 深圳恒合互联网络科技有限公司 重庆互联网络科技 未来的互联网科技 互联网 科技馆 昭通互联网科技选哪家 东莞新华互联网科技学校 本届互联网大会上的黑科技 互联网科技机房 西安左小互联网科技有限公司
0