问题描述
监听器:
@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你好";
}
}