SpringBoot中HttpSessionListener的简单使用

Posted 张文琪2022

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot中HttpSessionListener的简单使用相关的知识,希望对你有一定的参考价值。

session监听实现类:

import org.springframework.stereotype.Component;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
@Component
public class MySessionListener implements HttpSessionListener 
    @Override
    public void sessionCreated(HttpSessionEvent se) 
    	//设置session持续时间,单位为秒
        se.getSession().setMaxInactiveInterval(10);
        System.out.println("-----------Session已创建------------------");
    

    @Override
    public void sessionDestroyed(HttpSessionEvent se) 
        String name = (String)se.getSession().getAttribute("name");
        System.out.println("name= "+ name);
        System.out.println("-----------Session已销毁------------------");
    

controller调用:

    @RequestMapping("/sessionTest")
    @ResponseBody
    public void sessionTest(HttpServletRequest request)
        request.getSession().setAttribute("name","zwq");
        //销毁session
        request.getSession().invalidate();
    

注意点
1、request.getSession(),获取即创建session,会触发session监听实现类中的sessionCreated方法;
2、session过了有效时间或主动使用invalidate方法销毁,会触发session监听实现类中的sessionDestroyed方法;
3、使用监听器一定要确保可以被springboot扫描到并打包成bean,一般来说在监听器实现类前加 @Component注解并保证该类在程序扫描范围内即可。

以上是关于SpringBoot中HttpSessionListener的简单使用的主要内容,如果未能解决你的问题,请参考以下文章

springboot中怎么自定义thymeleaf标签

SpringBoot——SpringBoot中使用拦截器

springboot的es中sort怎么用

springboot中如何在切面中重写请求参数

springboot中SPI机制

Spring Boot 持续更新中...