首页 > 其他分享 >11_Session域监听器

11_Session域监听器

时间:2023-03-08 19:33:44浏览次数:35  
标签:11 session javax Session 监听器 import servlet public

 Session域共有四个监听器接口,分别是

HttpSessionListener
HttpSessionAttributeListener
HttpSessionBindingListener
HttpSessionActivationListener

接下来我们就认识一些每个接口和接口中每个方法的用处

监听器代码

HttpSessionListener
HttpSessionAttributeListener

package com.msb.listener;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
/**
 * @Author: Ma HaiYang
 * @Description: MircoMessage:Mark_7001
 */
@WebListener
public class MySessionListener implements HttpSessionListener , HttpSessionAttributeListener {
    @Override
    public void sessionCreated(HttpSessionEvent se) {
        System.out.println("任何一个Session对象创建");
    }
    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        System.out.println("任何一个Session对象的销毁");
    }
    @Override
    public void attributeAdded(HttpSessionBindingEvent se) {
        System.out.println("任何一个Session对象中添加了数据");
    }
    @Override
    public void attributeRemoved(HttpSessionBindingEvent se) {
        System.out.println("任何一个Session对象中移除了数据");
    }
    @Override
    public void attributeReplaced(HttpSessionBindingEvent se) {
        System.out.println("任何一个Session对象中修改了数据");
    }
}

 

HttpSessionBindingListener

package com.msb.listener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
/**
 * @Author: Ma HaiYang
 * @Description: MircoMessage:Mark_7001
 */
/*
* 可以监听具体的某个session对象的事件的
*
* HttpSessionListener 只要在web.xml中配置或者通过@WebListener注解就可以注册监听所有的Session对象
* HttpSessionBindingListener 必须要通过setAttribute方法和某个session对象绑定之后,监听单独的某个Session对象
* */
public class MySessionBindingListener implements HttpSessionBindingListener {
    // 绑定方法
    /*
    session.setAttribute("mySessionBindingListener",new MySessionBindingListener())
     */
    @Override
    public void valueBound(HttpSessionBindingEvent event) {
        System.out.println("监听器和某个session对象绑定了");
    }
    // 解除绑定方法
    /*
    * 当发生如下情况,会触发该方法的运行
    * 1 session.invalidate(); 让session不可用
    * 2 session到达最大不活动时间,session对象回收 ;
    * 3 session.removeAttribute("mySessionBindingListener");手动解除绑定
    * */
    @Override
    public void valueUnbound(HttpSessionBindingEvent event) {
    }
}

 


HttpSessionActivationListener
 

package com.msb.listener;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionActivationListener;
import javax.servlet.http.HttpSessionEvent;
/**
 * @Author: Ma HaiYang
 * @Description: MircoMessage:Mark_7001
 */

public class MySessionActivationListener implements HttpSessionActivationListener {
    @Override
    public void sessionWillPassivate(HttpSessionEvent se) {
        System.out.println("session即将钝化");
    }
    @Override
    public void sessionDidActivate(HttpSessionEvent se) {
        System.out.println("session活化完毕");
    }
}

 


标签:11,session,javax,Session,监听器,import,servlet,public
From: https://www.cnblogs.com/2324hh/p/17195855.html

相关文章

  • C++ JSON库json11的使用方法
    提纲1、下载并集成到自己的项目2、基本用法1下载并集成到自己的项目json11是一个轻量级的C++11库,提供JSON的序列化和反序列化功能。首先用gitclonehttps://gith......
  • 链表指针指迷了我(UVA 11988 STL deque)
    BrokenKeyboard(a.k.a.BeijuText)You'retypingalongtextwithabrokenkeyboard.Wellit'snotsobadlybroken.Theonlyproblemwiththekeyboardisthats......
  • 11. 进阶面向对象 - 3
    11.进阶面向对象-3super方法引入上一节课程我们知道,如果父类中的方法在派生的子类中不能满足其需求的话,可以在子类中通过重写解决这个问题但是很多情况下,父类中的......
  • Filter过滤和Listener监听器
    过滤器Filter简介Filter也称之为过滤器,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp,Servlet,静态图片文件或静态html文件等进行拦截,从而实现一些......
  • Filter过滤和Listener监听器
    过滤器Filter简介Filter也称之为过滤器,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp,Servlet,静态图片文件或静态html文件等进行拦截,从而实现一些......
  • win11 右键菜单 关闭折叠 默认展开
    1.打开注册表win+R执行regedit打开注册表   2.找到CLSID目录HKEY_CURRENT_USER\Software\Classes\CLSID右键单击CLSID新建项:{86ca1aa0-34aa-4e8b-a509-50c905......
  • Oracle问题:ORA-01109解决办法
    ORA-01109:数据库未打开01109.00000-"databasenotopen"*Cause:Acommand查看数据库监听:启动启动数据库达到open状态后面发现连接的那个库没有到opened状态selectc......
  • Token存放在cookie、localStorage/sessionStorage的区别
    首先解释下TokenToken其实就是访问资源的凭证;Token——普遍情况下是用户通过用户名和密码登录成功之后,服务器将登录凭证做数字签名,加密之后得到的字符串。 用户登陆......
  • Windows 11提示“无法枚举容器中的对象。”
    *为什么会出现这一错误提示?*在Windows系统当中,对文件或文件夹的权限进行设置可以有效地保护隐私内容。登录管理员账户可以对权限进行更改,并且有权决定是否将内容共享给......
  • Python常见面试题011. 如何在Python中动态创建类?
    011.如何在Python中动态创建类?说在前面答案是type你印象中的type是用来查看对象的类型的li=[]type(li)#得到list对自定义的类是这样的classPerson:......