⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysessionlistener.java

📁 该代码是《JSP应用与开发实例》一书的配套光盘
💻 JAVA
字号:
package com.jspdev.ch8;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import javax.servlet.http.HttpSessionActivationListener;
import javax.servlet.http.HttpSessionBindingListener;
import java.io.PrintWriter;
import java.io.FileOutputStream;

public final class MySessionListener
    implements HttpSessionActivationListener ,HttpSessionBindingListener ,
	       HttpSessionAttributeListener, HttpSessionListener,ServletContextListener {
  
   ServletContext context;
   int users=0;   
   
   //HttpSessionActivationListener
   public void sessionDidActivate(HttpSessionEvent se) 
   {   	    
   	    logout("sessionDidActivate("+se.getSession().getId()+")");
   }
   
  
   public void sessionWillPassivate(HttpSessionEvent se) 
   {
   		logout("sessionWillPassivate("+se.getSession().getId()+")");
   }//HttpSessionActivationListener
   
   
   //HttpSessionBindingListener
   public void valueBound(HttpSessionBindingEvent event) 
   {
   	    logout("valueBound("+event.getSession().getId()+event.getValue()+")");
   }
   public void valueUnbound(HttpSessionBindingEvent event) 
   {
   		logout("valueUnbound("+event.getSession().getId()+event.getValue()+")");
   }
   
   //HttpSessionAttributeListener
    public void attributeAdded(HttpSessionBindingEvent event) {

	logout("attributeAdded('" + event.getSession().getId() + "', '" +
	    event.getName() + "', '" + event.getValue() + "')");

    }

    public void attributeRemoved(HttpSessionBindingEvent event) {

	logout("attributeRemoved('" + event.getSession().getId() + "', '" +
	    event.getName() + "', '" + event.getValue() + "')");

    }
    
    public void attributeReplaced(HttpSessionBindingEvent se) 
    {
    	logout("attributeReplaced('"+se.getSession().getId()+",'"+se.getName()+"','"+se.getValue()+"')");
    }//HttpSessionAttributeListener


     //HttpSessionListener
    public void sessionCreated(HttpSessionEvent event) {

	users++;
	logout("sessionCreated('" + event.getSession().getId() + "'),目前有"+users+"个用户");
	context.setAttribute("users",new Integer(users));
    }

   
    public void sessionDestroyed(HttpSessionEvent event) {

	users--;
	logout("sessionDestroyed('" + event.getSession().getId() + "'),目前有"+users+"个用户");
	context.setAttribute("users",new Integer(users));

    }//HttpSessionListener
    
    //ServletContextListener
    public void contextDestroyed(ServletContextEvent sce) {

	logout("contextDestroyed()-->ServletContext被销毁");
	   this.context = null;

    }

    public void contextInitialized(ServletContextEvent sce) {

	this.context = sce.getServletContext();
	logout("contextInitialized()-->ServletContext初始化了");

    }//ServletContextListener
    

    private void logout(String message) {	
	    
	    PrintWriter out=null;
	    try
	    {
	    	out=new PrintWriter(new FileOutputStream("c:\\session.txt",true));
	    	out.println(new java.util.Date().toLocaleString()+"::Form MySessionListener: " + message);
	    	out.close();
	    }
	    catch(Exception e)
	    {
	    	out.close();
	    	e.printStackTrace();
	    }
    }  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -