📄 sessionlistener.java
字号:
package chainsys.chat.business;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSession;
import javax.servlet.ServletContext;
/**
It is used by Chat Application for listening to session events.
* @author chainsys
*/
public class SessionListener implements HttpSessionAttributeListener
{
public void attributeAdded(HttpSessionBindingEvent hsbe)
{
//System.out.println("Attribute has been bound");
}
public void attributeReplaced(HttpSessionBindingEvent hsbe)
{
//System.out.println("Attribute has been replaced");
}
/** This is the method we are interested in. It deletes a user from this list of users when his session
expires.
*/
public void attributeRemoved(HttpSessionBindingEvent hsbe)
{
String name = hsbe.getName();
HttpSession session = hsbe.getSession();
if ("nickname".equalsIgnoreCase(name))
{
String nickname = (String)hsbe.getValue();
if (nickname != null)
{
ServletContext application = session.getServletContext();
if (application != null)
{
Object o = application.getAttribute("chatroomlist");
if (o != null)
{
ChatRoomList roomList = (ChatRoomList)o;
ChatRoom room = roomList.getRoomOfChatter(nickname);
if (room != null)
{
Object chatter = room.removeChatter(nickname);
if (chatter != null)
{
String n = ((Chatter)chatter).getName();
}
}
}
}
else
{
System.out.println("ServletContext is null");
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -