java web-05-listtener
实现一个监听器的接口有很多:这是其中一种
HttpSessionListener
public class OnlineCountListener implements HttpSessionListener {
//创建session监听
public void sessionCreated(HttpSessionEvent se) {
ServletContext servletContext = se.getSession().getServletContext();
System.out.println(se.getSession().getId());//输出session的Id,判断有几个session
//Integer:整数
Integer onlineCount = (Integer) servletContext.getAttribute("OlineCount");
if (onlineCount == null){
onlineCount = new Integer(1);
}else {
int count = onlineCount.intValue();
onlineCount = new Integer(count+1);
}
servletContext.setAttribute("OlineCount",onlineCount);
}
//销毁session监听
public void sessionDestroyed(HttpSessionEvent se) {
ServletContext servletContext = se.getSession().getServletContext();
//invalidate:使无效
se.getSession().invalidate();
Integer onlineCount = (Integer) servletContext.getAttribute("OlineCount");
if (onlineCount == null){
onlineCount = new Integer(0);
}else {
int count = onlineCount.intValue();
onlineCount = new Integer(count-1);
}
servletContext.setAttribute("OlineCount",onlineCount);
}
}
<!--注册监听器-->
<listener>
<listener-class>com.feng.listener.OnlineCountListener</listener-class>
</listener>
<session-config>
<session-timeout>1</session-timeout>
</session-config>
例:
public class TestPanel {
public static void main(String[] args) {
Frame frame = new Frame("Hello World!");//建一个窗体
Panel panel = new Panel(null);
frame.setLayout(null);//设置窗体的布局
frame.setBounds(300,300,500,500);
frame.setBackground(new Color(0,0,200));//设置背景颜色
panel.setBounds(100,100,300,300);
panel.setBackground(new Color(0,200,0));//设置背景的颜色
frame.add(panel);
frame.setVisible(true);
//监听事件,监听关闭事件;addWindowListener:添加窗口事件
frame.addWindowListener(new WindowListener() {
public void windowOpened(WindowEvent e) {
System.out.println("打开");
}
public void windowClosing(WindowEvent e) {
System.out.println("关闭ing");
System.exit(0);
}
public void windowClosed(WindowEvent e) {
System.out.println("关闭ed");
}
public void windowActivated(WindowEvent e) {
System.out.println("激活");
}
public void windowDeactivated(WindowEvent e) {
System.out.println("未激活");
}
});
}
}

浙公网安备 33010602011771号