javawebsession监听

什么是java侦听器

1、监听器也叫Listener,是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时,就激发sessionCreated(HttpSessionEvent se)方法,这样

就可以给在线人数加1。

2、常用的监听接口有以下几个:

1)ServletContextAttributeListener监听对ServletContext属性的操作,比如增加、删除、修改属性。

2)、ServletContextListener监听ServletContext。当创建ServletContext时,激发contextInitialized(ServletContextEvent sce)方法;当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法。

HttpSessionListener监听HttpSession的操作。当创建一个Session时,激发session Created(HttpSessionEvent se)方法;当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se)方法。

4)HttpSessionAttributeListener监听HttpSession中的属性的操作。当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se) 方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法;当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se) 方法。

3、参考样例example:随服务器启动

<web-app>

listener

listener-classcom.tb.listener.CountStartListener/listener-class

/listener

package com.tb.listener;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

import javax.servlet.http.HttpServlet;

import com.tb.timertask.DoCountTask;

public class CountStartListener extends HttpServlet implements ServletContextListener

{

private static final long serialVersionUID = 1824920962239905170L;

public CountStartListener()

{

// TODO Auto-generated constructor stub

}

public void contextDestroyed(ServletContextEvent arg0)

{

// TODO Auto-generated method stub

}

public void contextInitialized(ServletContextEvent arg0)

{

DoCountTask.dotask();

javawebsession监听

java web.xml设置session过期时间为15分钟,超时却不会过期

你可以试试这么做

web.xml

listener

listener-class

com.listener.SessionListener

/listener-class

/listener

session-config

session-timeout1/session-timeout

/session-config

java

public class SessionListener implements HttpSessionListener{

public void sessionCreated(HttpSessionEvent event) {

HttpSession ses = event.getSession();

String id=ses.getId()+ses.getCreationTime();

SummerConstant.UserMap.put(id, Boolean.TRUE); //添加用户

}

public void sessionDestroyed(HttpSessionEvent event) {

HttpSession ses = event.getSession();

String id=ses.getId()+ses.getCreationTime();

synchronized (this) {

SummerConstant.USERNUM–; //用户数减一

SummerConstant.UserMap.remove(id); //从用户组中移除掉,用户组为一个map

}

}

}

java如何获取web项目中的所有session?

你可以自己实现一个 HttpSessionListener ,然后在 web.xml 中启用这个侦听器,就可以在 session 创建和销毁期间加入自己的代码

java如何统计session访问次数

1,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-timeout10session-timeout

session-config

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

2,SessionListener

通过SessionListenr可以监听session的创建和销毁,步骤:

1.写一个类MySessionListener,实现javax.servlet.http.HttpSessionListener接口及其sessionCreated()、sessionDestroyed()方法

2.在web.xml中配置SessionListener:

listener

listener-classMySessionListener类全名listener-class

listener

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

java web中,在session失效之前向数据库插入一条数据,应该怎么做?如何监听session失效?

要么就是 插入数据之后关闭session,要么就是使用spring声明式事务处理,也就是方法中不直接关闭session,spring会帮你关掉,这个时候你就可以插入了。别的我就不知道了

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月25日 18:23:28
下一篇 2024年3月25日 18:30:37

相关推荐

  • javawebsession共享

    tomcat使用memcache做session共享但是session经常会变化 1、session的isValid变成false了,意味着session在第一次切负载的时候就已经失效了!响应头依然有Set-Cookie,表示session的确失效了。此时基本上确定问题是出在redisson-tomcat了。 2、1)必须在同一种中间件之间完成(比如tomc…

    2024年3月22日
    4500

发表回复

登录后才能评论



关注微信