`
m635674608
  • 浏览: 5044117 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JavaWeb中的Session、SessionListener、

    博客分类:
  • java
 
阅读更多

测试环境:Tomcat 5.0.28

JavaWeb中的Session

· 在JavaWeb中使用HttpSession(以下简称session)对象来表示一个会话。

· Session的创建(代表会话周期的开始):第一次调用request.getSession()方法时,会创建一个session对象。

· Session的销毁(代表会话周期的结束):在某个请求周期内调用了Session.invalidate()方法,此请求周期结束后,session被销毁;或者是session超时后自动销毁。

· 对于JSP,如果指定了<%@ page session="false"%>,则在JSP中无法直接访问内置的session变量,同时也不会主动创建session,因为此时JSP未自动执行request.getSession()操作获取session。

· 在session对象刚创建的第一个请求周期内,调用session.isNew()方法将得到true。

· 可以在web.xml文件中配置session默认的超时时间(分钟):

<session-config>
<session-timeout>10</session-timeout>
</session-config>

也可以调用session. setMaxInactiveInterval()方法设置session超时时间(分钟)

SessionListener

· 通过SessionListenr可以监听session的创建和销毁,步骤:
1.写一个类MySessionListener,实现javax.servlet.http.HttpSessionListener接口及其sessionCreated()、sessionDestroyed()方法
2.在web.xml中配置SessionListener:

<listener>
<listener-class>MySessionListener类全名</listener-class>
</listener>

· 当session 被创建和销毁时,容器会分别调用SessionListener的sessionCreated()方法和sessionDestroyed()方法,这 两个方法中传入了一个参数对象HttpSessionEvent,可以通过此对象的getSession()方法获取session对象。

应用:在线人数统计

import java.util.HashSet;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class MySessionListener implements HttpSessionListener {

public void sessionCreated(HttpSessionEvent event) {
HttpSession session = event.getSession();
ServletContext application = session.getServletContext();

// 在application范围由一个HashSet集保存所有的session
HashSet sessions = (HashSet) application.getAttribute("sessions");
if (sessions == null) {
sessions = new HashSet();
application.setAttribute("sessions", sessions);
}

// 新创建的session均添加到HashSet集中
sessions.add(session);
// 可以在别处从application范围中取出sessions集合

// 然后使用sessions.size()获取当前活动的session数,即为“在线人数”
}

public void sessionDestroyed(HttpSessionEvent event) {
HttpSession session = event.getSession();
ServletContext application = session.getServletContext();
HashSet sessions = (HashSet) application.getAttribute("sessions");

// 销毁的session均从HashSet集中移除
sessions.remove(session);
}
}

<!--EndFragment-->
分享到:
评论

相关推荐

    javaweb用session实现后台管理.rar

    javaweb用session实现后台管理.rarjavaweb用session实现后台管理.rarvjavaweb用session实现后台管理.rarvjavaweb用session实现后台管理.rarjavaweb用session实现后台管理.rarjavaweb用session实现后台管理.rar

    JavaWeb 用session统计在线人数

    在JavaWeb开发中,"用session统计在线人数"是一个常见的需求,主要应用于网站或应用的实时用户活动监控。本文将详细解析如何利用session这一核心技术来实现这个功能。 首先,理解session的基本概念。在Web开发中,...

    javaWeb_Session(实现用户一段时间自动登录)

    JavaWeb中的Session技术是Web开发中的重要概念,主要用于在服务器端保持用户状态,尤其是在用户登录后,实现用户在一段时间内的自动登录功能。本篇将详细解释Session的工作原理、配置及其实现用户自动登录的机制。 ...

    JavaWeb使用Session和Cookie实现登录认证

    JavaWeb 使用 Session 和 Cookie 实现登录认证 Session 和 Cookie 是 Web 开发中两种常用的技术,分别用于实现用户会话和客户端数据存储。本文将详细介绍如何使用 Session 和 Cookie 实现登录认证。 什么是 ...

    JavaWeb session 原理分析

    在JavaWeb开发中,Session机制被广泛用于实现用户会话状态的跟踪。Session与Cookie有着紧密的联系,但它们各自承担着不同的角色。为了更好地理解这两者之间的关系以及Session的工作原理,我们需要先了解一些基本概念...

    Javaweb项目session超时解决方案

    Javaweb项目Session超时解决方案 在Java Web开发中,Session机制为我们提供了许多方便,Session是由浏览器和服务器之间维护的。Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠...

    JavaWeb中Session对象的学习笔记

    总结来说,JavaWeb中的Session对象是服务器用来在用户会话之间保持状态的重要工具。通过理解其工作原理和与Cookie的区别,开发者可以更好地选择合适的方法来管理用户会话,提升Web应用的用户体验。在实际开发中,...

    JavaWeb基于Session实现的用户登陆注销方法示例

    JavaWeb中的Session是一种重要的会话跟踪机制,常用于在用户登录之后存储用户的认证信息,确保用户在多个页面间切换时能保持登录状态。本篇文章将详细介绍如何基于Session实现用户登录和注销功能,并对比Cookie和...

    Java Webs实验:session购物车实验

    Java Webs实验:session购物车实验 1.按课程讲解实现购物车的三个页面,实现在三个页面切换,点击增加购物车,查看购物车,删除购物车功能 2.修改三个页面的内容,将逐个商品增加购物车和删除购物车改为多选增加删除...

    基于Session的在线购物车javaWeb开发

    一个基于Session的在线购物车,数据全部存储在Session中,验证码登录,无需数据库,简单易懂

    _基于Javaweb内置对象session的仿真.pdf

    Session对象是JavaWeb开发中最重要的对象之一,它允许不同的用户基于Web服务器的会话方法,保持不同的用户状态,并基于Web服务器内存在整个用户会话过程中保持任何对象。Session机制采用的是在服务器端保持状态的...

    15972138498#Study-Notes-of-JavaWeb#Session 的细节1

    一、当客户端关闭后,服务器不关闭,两次获取Session是否为同一个 二、客户端不关闭,服务器关闭后,两次获取的Session是同一个吗 三、Session什么

    javaweb用户验证码登录session例子

    在Java Web开发中,用户登录验证是不可或缺的一部分,而在这个"javaweb用户验证码登录session例子"中,我们将深入探讨如何结合验证码、用户密码以及Session技术来实现安全的登录过程。Session是Web应用中用于跟踪...

    JavaWeb Session失效时间设置方法

    JavaWeb中的Session是服务器端用来跟踪用户状态的重要机制。它允许开发者在用户的不同请求之间保持数据,例如用户的登录状态。然而,为了维护系统的安全性和资源效率,Session通常会有一定的存活时间,超过这个时间...

    Session-JavaWeb专题

    Session 是 Web 开发中非常重要的概念之一,尤其是在 JavaWeb 开发中。理解 Session 的工作原理及其在 Java 中的具体实现对于开发高效稳定的 Web 应用程序至关重要。通过本课程的学习,你不仅能够掌握 Session 的...

    JavaWeb 使用Session实现一次性验证码功能

    JavaWeb 使用Session实现一次性验证码功能是指在JavaWeb应用程序中使用Session机制来实现一次性验证码功能,这种方法可以有效地防止机器人和恶意用户对网站的攻击。下面是该功能的详细实现过程: 一、验证码的生成...

    JavaWeb基础-Cookie和Session的简单使用案例

    在JavaWeb开发中,Cookie和Session是两种常见的用户会话管理技术,用于在客户端和服务器之间传递信息。本文将深入探讨这两个概念,并通过一个简单的登录案例来阐述它们的使用。 首先,Cookie是服务器发送到用户...

    JavaWeb程序设计入门课件Session对象共9页.p

    【JavaWeb程序设计入门...通过学习这9页的课件,开发者可以对JavaWeb中的Session有基本的理解,为后续的Web开发奠定坚实的基础。实践是检验真理的唯一标准,理论学习后,建议结合实际项目进行练习,以巩固和深化理解。

    11_JavaWeb——Cookie&Session案例资源

    此资源是我的博客11_JavaWeb——Cookie&Session中的案例资源,关于比较难以编写的工具类我已在博客中给出,下载此资源后可直接运行,实现登录注册功能。其中登录功能能够记住用户使得下次登录不需要重复输入用户名和...

    javaweb中Cookie对用户密码保存的例子

    在JavaWeb开发中,Cookie是一种常见的技术,用于在客户端存储少量信息,比如用户的登录状态、购物车内容等。本文将详细解析"javaweb中Cookie对用户密码保存的例子",并探讨如何使用Cookie实现购物车功能。 首先,...

Global site tag (gtag.js) - Google Analytics