import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import com.travelsky.tibetair.service.vo.UserVo;
/**
* 测试耍的。哈哈哈,监控session的变化
* @author hjc
* @version 2011-4-8
*/
public class SessionListener implements HttpSessionListener,
HttpSessionAttributeListener {
public void attributeAdded(HttpSessionBindingEvent arg0) {
System.out.println("【监听到】HttpSession对象中新增一名为" + arg0.getName()
+ "的属性,其属性值为" + arg0.getValue());
if (arg0.getValue() instanceof UserVo) {
UserVo new_name = (UserVo) arg0.getValue();
System.err.println("现在的用户是:"+new_name.getUser().getUserName());
}
}
public void attributeRemoved(HttpSessionBindingEvent arg0) {
System.out.println("【监听到】HttpSession对象中一名为" + arg0.getName()
+ "的属性被删除!");
if (arg0.getValue() instanceof UserVo) {
UserVo new_name = (UserVo) arg0.getValue();
System.err.println("现在的用户是:"+new_name.getUser().getUserName());
}
}
public void attributeReplaced(HttpSessionBindingEvent arg0) {
System.out.println("【监听到】HttpSession对象中一名为" + arg0.getName()
+ "的属性被修改!新的 值是"+arg0.getValue());
if (arg0.getValue() instanceof UserVo) {
UserVo new_name = (UserVo) arg0.getValue();
System.err.println("现在的用户是:"+new_name.getUser().getUserName());
}
}
public void sessionCreated(HttpSessionEvent arg0) {
System.out.println("【监听到】新用户" + arg0.getSession().getId() + "上线!");
}
public void sessionDestroyed(HttpSessionEvent arg0) {
System.out.println("【监听到】新用户" + arg0.getSession().getId() + "下线!");
}
}
分享到:
相关推荐
在这个过程中,`SessionListener`、持久化`Session`和`Springmvc拦截器`是关键组件,让我们逐一深入探讨。 ### SessionListener `SessionListener`是Java Servlet API中的一个接口,用于监听`HttpSession`事件。...
这个资源是针对session容器的,在具有多个session的session容器里需要进行注册,所以就有了这个代码。不过写的还是很粗糙的。
SessionListener用于监听Session对象的创建和销毁,监听器类需要实现javax.servlet..SessionListener接口或者javax.servlet..SessionActivationListener接口,或者两个都实现。例如: ```java public class ...
然后,我们需要创建一个实现了`HttpSessionListener`接口的Java类,如`SessionListener`。在这个类中,`sessionCreated()`方法会在Session创建时被调用,而`sessionDestroyed()`方法会在Session销毁(即过期)时被...
1. 实现监听器接口的Java源代码文件:这些文件通常以".java"为扩展名,比如`SessionListener.java`,其中包含了实现监听器接口的方法。 2. 配置文件:可能包含了一个名为`web.xml`的文件,这是部署描述符,用来注册...
监控器需要的jar,需在web.xml中配置 <filter-name>monitoring ... <listener-class>net.bull.javamelody.SessionListener</listener-class> 通过web地址:http:xxxx/项目名/monitoring 可以进入到监控页面
public class SessionListener implements HttpSessionListener { public SessionListener() { } public void sessionCreated(HttpSessionEvent event) { // 处理Session创建逻辑 } public void ...
2. **RTP Events**:JMF通过监听器接口(如SessionListener、SendStreamListener和ReceiveStreamListener)来处理RTP事件,如参与者加入、数据流状态变化等。例如: - **SessionListener**:用于监控会话状态变化...
- `ActiveReceiveStreamEvent`:当RTP(实时传输协议)数据包或RTCP(实时传输控制协议)数据包在停止后仍到达时,会触发此类事件,通知`SessionListener`。 - `ActiveSendStreamEvent`:同样地,这类事件通知`...
public class SessionListener implements HttpSessionListener { public void sessionCreated(HttpSessionEvent event) { // Session创建时执行的代码,例如添加用户到在线用户列表 HttpSession ses = event....
在本例中,Session监听类名为SessionListener,实现了HttpSessionListener接口。该类中定义了一个静态的HashMap对象sessionMap,用于存储用户ID和对应的Session对象。 在SessionListener类中,实现了两个重要的方法...
public class SessionListener implements HttpSessionListener { @Override public void sessionCreated(HttpSessionEvent se) { System.out.println("新Session创建:" + se.getSession().getId()); } @...
public class SessionListener implements HttpSessionListener { @Override public void sessionCreated(HttpSessionEvent se) { System.out.println("新会话创建:" + se.getSession().getId()); // 在这里...
在"ServletListenerExample"这个DEMO中,可能包含了一个名为`SessionListener`的类,它实现了`HttpSessionListener`接口,并且在`sessionCreated`和`sessionDestroyed`方法中分别记录了会话的创建和销毁事件。...
例如,ServletContextListener可以监听Web应用的启动和关闭事件,SessionListener可以监控用户会话的创建、销毁等。通过监听器,开发者可以在特定事件发生时执行自定义逻辑,如数据缓存更新、资源清理等。此外,还有...
6. **会话事件监听**:Shiro允许添加`SessionListener`来监听Session的创建、销毁、过期等事件。你可以自定义`SessionListener`来处理这些事件,例如在Session过期时发送通知。 7. **最后,将配置应用于Web应用**:...
`SessionListener`类需要实现`javax.servlet.http.HttpSessionListener`接口。 4. **会话超时设置** 可以在`web.xml`中设置默认的会话超时时间: ```xml <session-timeout>30 ``` 这表示如果用户30分钟内...
编写`SessionListener`类,实现`HttpSessionBindingListener`和`HttpSessionAttributeListener`接口,以便在Session创建、修改和移除时与`Redis`交互。 最后,确保所有配置正确无误后,重启`Nginx`和`Tomcat`服务器...
若需强制踢出已登录用户,我们可以监听`SessionListener`并在检测到新登录时清除旧会话。 ```java public class LogoutSessionListener implements SessionListener { @Override public void sessionCreated...