广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java中的session对象及其常用方法小结
  • 439
分享到

java中的session对象及其常用方法小结

2024-04-02 19:04:59 439人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

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

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+"/";
%>

<!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(); 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: java中的session对象及其常用方法小结

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

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

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

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

下载Word文档
猜你喜欢
  • java中的session对象及其常用方法小结
    session对象用于在会话范围内,记录每个客户端的访问状态,以便于跟踪每个客户端的操作状态,在会话存储的信息,在浏览器发出后续请求时可以获取这些会话的有效数据。 在jsp页面中可以...
    99+
    2022-11-12
  • java中的session对象及其常用方法是什么
    本篇内容主要讲解“java中的session对象及其常用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java中的session对象及其常用方法是什么”吧!session对象用于在会话...
    99+
    2023-06-20
  • JAVA中STRING的常用方法小结
    一、创建并初始化一个字符串 String b = "hello"; 使用构造方法创建并初始化一个字符串 String();//初始化字符串,表示空字符序列 String(value)...
    99+
    2022-11-15
    JAVA STRING
  • Java对象池技术的原理及其实现方法
    这篇文章主要讲解了“Java对象池技术的原理及其实现方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java对象池技术的原理及其实现方法”吧!摘 要 :本文在分析对象池技术基本原理的基础上...
    99+
    2023-06-03
  • Java运行时动态生成对象的方法小结
    目录一、利用JDK自带工具类实现二、利用三方Jar包实现三、利用Groovy脚本实现最近一个项目中利用规则引擎,提供用户拖拽式的灵活定义规则。这就要求根据数据库数据动态生成对象处理特...
    99+
    2022-11-12
  • Java中request对象常用方法汇总
    Java中的request对象是HttpServletRequest类型的对象,它封装了HTTP请求的信息。常用的request对象...
    99+
    2023-08-17
    Java
  • Java中Calendar类的一些常用方法小结
    目录原理简介获取时间时间计算总结原理简介 Java中提供了Calendar这个专门用于对日历进行操作的类,那么这个类有什么特殊的地方呢,首先我们来看Calendar的声明: pu...
    99+
    2022-11-12
  • Java中Object类常用的12个方法(小结)
    目录前言1. getClass 方法 2. hashCode 方法 3. equals 方法 4. clone 方法 5. toString 方法 6. notify 方法 7. n...
    99+
    2022-11-12
  • java对象转化成String类型的四种方法小结
    目录方法1:采用 Object#toString()方法 方法2:采用类型转换(String)object方法 方法3:采用 String.valueOf(Object) 方法 方法...
    99+
    2022-11-12
  • Java中request对象常用方法有哪些
    在Java中,HttpServletRequest对象是处理HTTP请求的对象,常用的方法有:1. getParameter(Str...
    99+
    2023-08-18
    Java request
  • 【总结】PHP中常用查询语句及其使用方法
    在Web开发中,常常需要从数据库中查询数据并以特定格式呈现给用户。PHP语言是一种常用的Web编程语言,也是处理数据库查询的重要工具之一。本文将介绍PHP中常用的查询语句及其使用方法。一、SELECT语句SELECT语句用于从数据库...
    99+
    2023-05-14
    php 数据库
  • java中字符串常见的方法及总结
    目录java字符串常见的方法字符串的比较字符串的搜索截取子字符串去除首尾空白字符串替换字符串分割字符串拼接字符串格式化字符串类型转换转换为char[]字符数组总结java字符串常见的...
    99+
    2022-12-29
    java字符串 java字符串方法 java字符串常见方法
  • Python中常见的反爬机制及其破解方法总结
    一、常见反爬机制及其破解方式 封禁IP,使用cookie等前面文章已经讲过 现在主要将下面的: ​ ~ 验证码 ​ —> 文字验证码 —> OCR...
    99+
    2022-11-12
  • PHP中PDO是什么,其对象使用的常见方法是什么
    本篇内容介绍了“PHP中PDO是什么,其对象使用的常见方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!PDO是什么PDO是别人写的“...
    99+
    2023-06-20
  • C++中临时对象的常见产生情况及其解决的方案
    目录前言1. 以值传递的方式给函数传参验证临时对象的而外开销(1)解决方案2. 类型转换成临时对象 / 隐式类型转换保证函数调用成功验证临时对象的而外开销(2)解决方案3. 函数返回...
    99+
    2022-11-12
  • 总结java中判断对象是否为空的方法
    我们想要判断对象是否为空,像基本类型那样判断是不可以的, ==={} ?这样是错误的,因为这只是比较引用地址是否相同,所以可以采取下面的方法来进行判断。根据for...in遍历对象,如果存在则返回true,否则返回falsefor ( le...
    99+
    2017-08-16
    java 判断 对象 为空 方法
  • Java中Spock框架Mock对象的方法经验总结
    目录一、技术方案二、非静态资源三、Mock被测对象1.@Autowired构造方法2.@Autowired属性对象,无构造方法3.PowerMock用法4.共享对象以及初始化四、定义...
    99+
    2022-11-13
  • Java 对象开发技术中函数的常见问题及解决方法
    Java 是一种面向对象的编程语言,因此,在 Java 的开发中,对于对象的处理是非常重要的。而对象的处理中,函数的使用更是必不可少的。然而,在 Java 对象开发技术中,函数也存在着一些常见问题,本文将介绍这些问题,并给出相应的解决方法...
    99+
    2023-07-05
    对象 开发技术 函数
  • JS中Date的一些常用方法小结
    目录内置对象Date创建Date对象日期的格式化Date对象自带的方法获取时间戳附:获得Date总的毫秒数(距离1970年1月1号过了多少毫秒)总结内置对象Date Date对象在实...
    99+
    2022-11-13
    js date方法 js日期函数date js日期函数
  • vuex获取state对象中值的所有方法小结(module中的state)
    目录vuex获取state对象中的值直接从store实例取值 使用mapState取值的多种方法使用module中的state vuex调用state数据第一种第...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作