在做网站开发的时候,我们经常会用到session对象,下面我来谈谈对session的理解;
Java Servlet API引入session 机制来跟踪客户的状态,session指的是在一段时间内,单个客户和web
服务器之间一连串的交互过程,在一个session中,一个客户可能会多次请求同一个网页,也可能请求多个不同服务器资源,例如:在一个邮件系统应用中,从一个客户登录到邮件系统,到写信,收信和发信等,到最后退出邮件系统,整个过程为一个session;再例如:大家在网上购物的时候,从购物到最后的付款,整个过程也是一个session 。
session对像是jsp中的内置对象,可以直接使用;在Servlet中使用session时,必须先创建出该对象,Servlet中创建session的方法:
HttpSession session=request.getSession();或 HttpSession session=request.getSession(boolean value);
在服务器上,通过session ID来区分每一个请求服务器的用户,用户只要一连接到服务器,服务器就会为之分配一个唯一的不会重复的session ID,session ID由服务器统一管理,人为不能控制
session中的主要方法:
- session.getId();//获取session ID,长度为32位
-
session.isNew();//判断是否是新建立的session
-
session.getCreationTime();//获取session创建的时间
- session.getLastAccessedTime();//获取用户最后操作时间
-
sesson.setAttribute(String key,Object value);//将对象存到session中
-
session.getAttribute(String key);//获取session中存的Object对象
- session.removeAttribute(String key);//将键值为key的对象从session中删除
session的销毁
- web容器关闭或重启,session会死亡
- 调用session.invalidate();方法,强制session死亡
- 前后两次请求超过了session指定的生命周期时间,默认为30分钟,我们可以通过在web.xml文件中进行如下配置:
<session-config> <!--设置session的生命周期为5分钟--> <session-timeout>5</session-timeout> </session-config>
也可以调用session.setMaxInactiveInterval(int intelval);方法来设置,单位为秒。
补充:session与cookie的区别
- session将信息保存在服务器上,cookie保存在客户端上
- session比cookie更安全,session比cookie更占资源
- session使用cookie的机制,如果cookie被禁用,那么session也无法使用,因为session ID是以cookie的形式保存在客户端的内存当中
相关推荐
这篇名为"javaee-Session持久化小结"的文章可能涵盖了如何在JavaEE应用中实现Session的创建、管理和持久化。 首先,Session的创建通常是通过HttpSession接口的`getSession()`方法完成的。当用户首次访问服务器时,...
SharePreferences与JavaEE中的session有某些相似之处,但它们的本质和用途有所不同。在这个讨论中,我们将深入理解这两个概念,并探讨它们在各自领域的应用。 首先,SharePreferences是Android提供的一种轻量级的...
在学习过程中,你可以通过《JavaEE中文开发文档》的CHM文件深入研究每一个主题,理解其概念、API用法以及实际应用案例。CHM文件是一种常见的帮助文档格式,其中包含了丰富的索引和搜索功能,方便快速查找所需信息。...
在学习过程中,应注重理论与实践相结合,尝试搭建JavaEE环境,按照文档中的示例编写代码,以加深对每个组件的理解。此外,了解并熟悉相关的开发工具,如IDEA、Eclipse或NetBeans,它们都提供了对JavaEE的良好支持,...
JavaEE(Java Platform, Enterprise Edition)是Java技术在企业级应用开发中的标准,它提供了一系列框架和服务,用于构建分布式、多层的企业级应用程序。这个"javaEE 中文API.chm"文件显然是一份中文版的JavaEE API...
JavaEE,全称为Java Platform, Enterprise Edition,是Java平台针对企业级应用开发的一个标准和框架。它提供了一系列的API和服务,...通过理解并熟练运用这些API,开发者可以高效地开发出稳定、可扩展的JavaEE应用。
10. **Filter和Listener**:在JavaEE中,Filter用于拦截和处理HTTP请求,而Listener监听特定的事件,如session创建或销毁。 11. **部署描述符**:如web.xml和ejb-jar.xml,它们定义了应用的配置信息,包括组件的...
JavaEE中文API则提供了这些规范的中文文档,对于中文使用者来说,理解和学习JavaEE技术更加方便。 JavaEE的主要组成部分包括: 1. **Servlet**:Servlet是Java编程语言中的一个接口,用于扩展服务器的功能。它处理...
JavaEE(Java Platform, Enterprise Edition)是Java平台上用于构建企业级应用的一套标准规范和API。这个"javaee_api.zip"文件包含的是...通过深入学习和理解JavaEE API,开发者可以更高效地开发出满足企业需求的系统。
JavaEE,全称为Java Platform, Enterprise Edition,是Java平台企业版的简称,是一个用于开发企业级应用程序的框架。...通过阅读和运行这些代码,学习者可以加深对JavaEE各组件的理解,提高实际开发能力。
此压缩包“JAVAEE_api_中英文对照版”提供了一个宝贵的资源,帮助开发者理解和使用Java EE中的各种组件和接口。 在Java EE API中,最重要的部分包括: 1. **Servlet**:Servlet是Java编程语言中的一个接口,用于...
总结,Struts2的tokenSession机制是JavaEE Web开发中防止重复提交的有效手段,通过生成并校验token,确保每个请求的唯一性,从而保护了业务数据的完整性。在实际项目中,我们需要正确配置和使用这个机制,以提高应用...
JAVAEE API 中英文对照文件是开发者的重要参考资料,帮助理解并使用JAVAEE的各种组件和服务。 1. **Servlet**: Servlet是JAVAEE中的核心组件之一,它是Java编写的服务器端程序,主要用于扩展服务器的功能,处理HTTP...
这个“javaee中文API”文档涵盖了以上所有模块的详细说明,对于理解每个接口、类和方法的功能,以及如何在实际项目中使用它们,都是极其宝贵的参考资料。开发者可以通过查阅这份文档,快速找到对应的技术点,提高...
这个"J2EE中文API.CHM"文件包含的详细文档可以帮助开发者快速理解和使用这些API,从而更高效地进行JavaEE应用的开发工作。对于初学者,可以按照章节顺序逐步学习,对于有经验的开发者,可以在遇到问题时迅速查找到...
【JavaEE项目案例源码】是一个典型的Web开发实践...以上就是【JavaEE项目案例源码】所涵盖的主要知识点,通过学习和实践这个案例,开发者能够提升自己在JavaEE平台上的Web应用开发能力,对整个开发流程有更深入的理解。
在JavaEE应用中,多对多关系通常通过中间表(或称为关联表)来实现,该表包含两个实体的主键作为外键。让我们深入了解一下这个简单的Hibernate多对多示例。 首先,我们需要定义两个实体类,例如`Student`和`Course`...
通过完成这个作业,你可以了解JavaEE开发的基本流程,掌握如何使用Servlet、JSP、EJB等工具搭建一个简单的Web应用,并对数据库操作和事务管理有初步理解。在实践中不断学习和提升,为更复杂的JavaEE项目打下坚实的...
JavaEE-Turorial-源码 是一套专门为学习Java企业级应用开发提供的教程源代码,它与《JavaEE-Turorial-教材》配套使用,旨在帮助开发者深入理解JavaEE平台的各种技术,并通过实际操作来提升技能。JavaEE(Java ...
4. **EJB(Enterprise JavaBeans)**:EJB是JavaEE中的企业级组件模型,包括会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean(Message-Driven Beans)。这些bean提供了事务管理、安全性和持久化...