本文主要是介绍Strtus2 session 监听器 监听用户在线状态,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.session监听器 有两种方式:一种是实现HttpSessionListener另一中是实现HttpSessionBindingListener ,下面的代码是第一种实现方式
public class SessionListener implements HttpSessionListener,ServletContextListener {
private UserDaoImpl userDaoImpl = null;public void sessionCreated(HttpSessionEvent event) {
}
public void sessionDestroyed(HttpSessionEvent event) {
User user = (User) event.getSession().getAttribute("user");
if(null!=user){
user.setInvisible("0");//更改用户在线状态
userDaoImpl.update(user);//用户退出
}}
@Override
public void contextDestroyed(ServletContextEvent arg0) {
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
System.err.println("启动session监听器。。。。。。。。。。。");
ApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(arg0.getServletContext());
userDaoImpl=(UserDaoImpl) ac.getBean("userDaoImpl");
}
}
在session销毁时更改用户在线状态
2.web.xml中需要的设置
<listener>
<listener-class>com.demo.listener. SessionListener</listener-class>
</listener>
<session-config>
<session-timeout>10</session-timeout>//session的有效时间,此处为10分钟,如果时间设置太长统计偏差就越大
</session-config>
这篇关于Strtus2 session 监听器 监听用户在线状态的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!