注册HttpSessionListener失效的原因及解决方案
作者:征途黯然.
这篇文章主要介绍了注册HttpSessionListener失效的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
问题描述
监听器
@WebListener public class MyHttpSessionListener implements HttpSessionListener { /** * session创建 */ @Override public void sessionCreated(HttpSessionEvent e) { HttpSession session=e.getSession(); System.out.println("session创建===ID===="+session.getId()); } /** * session销毁 */ @Override public void sessionDestroyed(HttpSessionEvent e) { HttpSession session=e.getSession(); System.out.println("销毁的sessionID===="+session.getId()); } }
启动类上已经加了注解@ServletComponentScan
访问接口
@RestController public class HelloController { @RequestMapping("/hello") public String handle01(){ return "nihao你好"; } }
这样写之后,发现第一次访问时,控制台并不会打印:
System.out.println("session创建===ID===="+session.getId());
原因
在访问接口时,形参要带上HttpSession session
.
如下:
@RestController public class HelloController { @RequestMapping("/hello") public String handle01(HttpSession session){ return "nihao你好"; } }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。