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

[转]jsp 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);
        }
}

 

此文转自新浪博客 闪出光芒 JavaWeb中的Session http://blog.sina.com.cn/s/blog_56e2f4250100dpb3.html

 

分享到:
评论

相关推荐

    JavaWeb session 原理分析

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

    jsp JavaWeb 7个案例

    【标题】"jsp JavaWeb 7个案例"涵盖了在JavaWeb开发中常见的实践场景,主要以JSP(JavaServer Pages)技术为核心,结合其他相关工具和技术进行应用开发。在这个项目中,开发者可以学习到如何利用JSP来创建动态网页,...

    基于javaweb+jsp+serverlet

    在这个基于JavaWeb、JSP(JavaServer Pages)和Servlet的图书管理系统中,我们可以深入探讨以下几个关键知识点: 1. **Servlet基础** Servlet是Java EE中的核心组件之一,用于处理HTTP请求。在图书管理系统中,...

    Javaweb-session和cookie笔记

    4. **用户信息展示**:在`success.jsp`页面上判断用户是否已登录(即检查Session中是否有用户信息),如果没有,则显示登录链接;如果有,则显示用户昵称。 5. **验证码实现**:为了增加安全性,可以通过`...

    JAVAWEB-10:会话技术之session&JSP

    - 要获取Session中的数据,使用`Object value = session.getAttribute("key");`。 - 如果不再需要Session,应调用`session.invalidate();`注销Session,释放服务器资源。 **1.2 Session的生命周期与管理** - ...

    原生jsp进行Web编程—作业3-JSP内置对象-Part2

    在usercheck.jsp中进行验证,成功则显示index.jsp(在index.jsp中要检查session.getAttribute("user")是否为空), 失败则重定向到usercheck.jsp。 2、使用JSP中的session对象,模拟用户登陆。 (1)在7-5index.jsp...

    JavaWeb实训-jsp实现对于用户的注册

    JSP还提供了其他内建对象,如`response`用于设置响应,`session`用于管理用户会话,`application`则与整个应用相关。 在JSP中处理数据请求后,通常需要将数据保存到数据库。这涉及到了数据库连接操作。JavaWeb项目...

    JSP(javaweb) 语法

    - **&lt;jsp:useBean&gt;** 用来实例化或查找Java Bean,并将其绑定到JSP页面的域中。 - **&lt;jsp:setProperty&gt;** 设置Java Bean的属性值。 - **&lt;jsp:getProperty&gt;** 获取Java Bean的属性值。 - **&lt;jsp:forward&gt;** 将...

    Java Webs实验:session购物车实验

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

    javaweb作业jsp内置对象作业:使用session完成简单购物车功能

    在JavaWeb开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,而内置对象是JSP为我们提供的便利工具,无需显式实例化即可直接使用。本作业的主题是使用JSP内置对象`session`来实现一个简单的购物车功能...

    javaweb用户验证码登录session例子

    6. 服务器创建一个新的Session,将用户的登录状态(如用户ID)存储在Session中,并将Session ID返回给浏览器。 7. 浏览器保存Session ID,并在后续的所有请求中携带。 8. 服务器通过Session ID找到相应的Session数据...

    jsp实现用户登录javaweb

    在JavaWeb开发中,JSP(JavaServer Pages)和Servlet是两种重要的技术,它们常用于构建动态网页应用程序。本教程将深入讲解如何使用JSP和Servlet实现用户登录功能,这涵盖了HTTP请求处理、数据传递以及页面跳转等...

    JSP(JavaWeb必备)

    在JavaWeb开发中,JSP的主要特点包括: 1. **模板和脚本元素**:JSP页面可以包含HTML或XML模板,以及嵌入的Java代码片段(脚本元素)。这些脚本元素可以是声明(declarations)、脚本(scriptlets)、表达式...

    基于JSP的javaweb学生管理系统

    【基于JSP的JavaWeb学生管理系统】是一种使用JavaServer Pages(JSP)技术构建的Web应用程序,用于管理和处理学生信息。这种系统通常包括学生的基本信息管理、成绩管理、课程管理等多个模块,旨在提高教育机构对学生...

    javaweb课程设计,基于Servlet+Jsp的在线购物商城系统

    在本项目中,"javaweb课程设计"是围绕Servlet和JSP技术构建的一个在线购物商城系统。这个系统旨在让学生或开发者了解如何在实际场景中应用Java Web开发技术,实现一个功能完备的电子商务平台。以下是关于这个项目所...

    javaweb购物车jsp+sqlserver

    通过在Session中存储购物车对象,可以确保用户在浏览过程中,购物车内的商品信息不会丢失。 5. **Ajax异步通信** 为了提供更好的用户体验,购物车的更新通常采用Ajax技术,使得用户在不刷新整个页面的情况下,就能...

    JavaWeb_jsp分页技术实例

    在这个"JavaWeb_jsp分页技术实例"中,我们将深入探讨如何在JavaWeb应用中实现分页功能,特别是使用JSP(JavaServer Pages)进行开发。 分页通常涉及到两个主要部分:前端展示和后端处理。前端负责展示当前页的数据...

    JavaWeb(Servlet+request和response+EL表达式+JSP+Cookie和Session)

    JavaWebServlet JavaWeb 是基于 Java 语言的 Web 应用程序开发技术,Servlet 是 ...在 JavaWeb 应用程序中,Servlet、JSP、EL 表达式、Cookie 和 Session 是紧密相关的技术,共同组成了 JavaWeb 应用程序的核心组件。

Global site tag (gtag.js) - Google Analytics