广告
返回顶部
首页 > 资讯 > 精选 >java中的session对象及其常用方法是什么
  • 354
分享到

java中的session对象及其常用方法是什么

2023-06-20 14:06:32 354人浏览 薄情痞子
摘要

本篇内容主要讲解“java中的session对象及其常用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java中的session对象及其常用方法是什么”吧!session对象用于在会话

本篇内容主要讲解“java中的session对象及其常用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java中的session对象及其常用方法是什么”吧!

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

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

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

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

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

session的工作原理如下:

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

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

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

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

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

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

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

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

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

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

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

使用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+"/";%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>" rel="external nofollow" >       <title>session对象方法</title>    <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0">    <meta http-equiv="keyWords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/CSS" href="styles.css" rel="external nofollow" > -->  </head>   <body>    <b>    会话ID:<%=session.getId() %> <br>    是否新会话:<%=session.isNew() %><br>    设置和获取属性对象:用户名 =    <%session.setAttribute("用户名","bing"); %>    <%=session.getAttribute("用户名") %><br>    <%    Date creationTime = new Date(session.getCreationTime());    Date accessedTime = new Date(session.getLastAccessedTime());     %>     会话创建时间:<%=creationTime %><br>     上次访问时间:<%=accessedTime %><br>     会话持续时间(s):<%=session.getMaxInactiveInterval() %><br>     <%session.setMaxInactiveInterval(12); %>     修改后的会话持续时间(s):<%=session.getMaxInactiveInterval() %><br>     <%session.invalidate(); %>     </b>  </body></html>

获取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对象及其常用方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: java中的session对象及其常用方法是什么

本文链接: https://www.lsjlt.com/news/297236.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java中的session对象及其常用方法是什么
    本篇内容主要讲解“java中的session对象及其常用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java中的session对象及其常用方法是什么”吧!session对象用于在会话...
    99+
    2023-06-20
  • java中的session对象及其常用方法小结
    session对象用于在会话范围内,记录每个客户端的访问状态,以便于跟踪每个客户端的操作状态,在会话存储的信息,在浏览器发出后续请求时可以获取这些会话的有效数据。 在jsp页面中可以...
    99+
    2022-11-12
  • PHP中PDO是什么,其对象使用的常见方法是什么
    本篇内容介绍了“PHP中PDO是什么,其对象使用的常见方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!PDO是什么PDO是别人写的“...
    99+
    2023-06-20
  • java中的方法是对象么
    对象,类,属性,方法的解析:以人为例。类:人可以看作一个类。对象:具体到什么人(黄种人,白种人,黑种人,中国人等等)这就可以看作是对象,可以根据需求继续往下区分,比如 男人 女人。属性:比如说黄种人的特点:黄皮肤,黑头发,黑眼睛等等,这些就...
    99+
    2016-01-18
    java入门 java 方法 对象
  • Java中方法和对象的关系是什么
    在Java中,方法和对象是密切相关的。对象是类的实例,它可以拥有属性和行为。方法是对象的行为,它定义了对象可以执行的操作。 在Jav...
    99+
    2023-10-26
    Java
  • java中什么是静态的对象和方法
    什么是静态变量Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。使用 static 可以修饰变量、方法和代码块...
    99+
    2016-04-17
    java入门 java 静态 对象 方法
  • JAVA中对象复制与引用的方法是什么
    在Java中,对象的复制可以使用两种方法:浅复制和深复制。1. 浅复制(Shallow Copy):通过复制对象的引用,创建一个新的...
    99+
    2023-08-18
    JAVA
  • java输出document对象的方法是什么
    在Java中,输出一个Document对象,可以使用以下方法:1. 使用DOM方式输出:可以使用Transformer类将Docum...
    99+
    2023-10-11
    java
  • java map转list对象的方法是什么
    Rate limit reached for gpt-3.5-turbo in organization org-68Lqb4iD2...
    99+
    2023-10-18
    java
  • Java类对象封装的方法是什么
    Java类对象封装的方法是通过定义类、属性和方法来封装数据和行为。类是一种模板或蓝图,用于创建具有相似属性和行为的对象。属性是类的成...
    99+
    2023-10-23
    Java
  • java对象实例化的方法是什么
    Java对象实例化的方法有两种:使用new关键字和使用反射机制。1. 使用new关键字:最常用的实例化方法是使用new关键字,通过调...
    99+
    2023-08-15
    java
  • java对象的创建与使用方法是什么
    Java对象的创建与使用方法如下:1. 定义类:在Java中,对象的创建需要先定义类。类是一个抽象的概念,用于描述对象的属性和行为。...
    99+
    2023-05-13
    java对象的创建 java
  • Java反序列化对象的方法是什么
    Java中反序列化对象的方法是使用ObjectInputStream类的readObject()方法。可以使用以下步骤来反序列化一个...
    99+
    2023-09-14
    Java
  • java随机创建对象的方法是什么
    Java随机创建对象的方法有多种,以下是其中几种常用的方法:1. 使用反射:利用Class类的newInstance()方法可以实例...
    99+
    2023-10-18
    java
  • java创建多个对象的方法是什么
    在Java中,可以通过以下方法创建多个对象: 使用构造函数:可以通过调用类的构造函数来创建对象。构造函数是一个特殊的方法,用于初...
    99+
    2023-10-24
    java
  • java实体对象转map的方法是什么
    Java实体对象转Map的方法有以下几种:1. 使用Java反射机制:通过使用Java的反射机制,可以获取实体对象的所有字段和对应的...
    99+
    2023-09-16
    java
  • java给list添加对象的方法是什么
    Java给List添加对象的方法是使用List的add()方法。该方法用于将指定的元素添加到列表的末尾。下面是使用add()方法添加...
    99+
    2023-09-25
    java
  • java直接打印对象的方法是什么
    在Java中,可以使用`System.out.println()`方法来直接打印对象。这个方法会自动调用对象的`toString()...
    99+
    2023-10-11
    java
  • Vue实例对象的常用属性和方法是什么
    这篇“Vue实例对象的常用属性和方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue实例对象的常用属性和方法是什么...
    99+
    2023-07-06
  • Linux下常用的网络命令及其使用方法是什么
    Linux下常用的网络命令及其使用方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Linux下常用的网络命令及其使用方法hostnamehostname 没有选项,...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作