当前位置:编程学习 > JAVA >>

JAVA SERVLET 关于监听的项目

题目:登录系统生成监听日志,怎么实现???我在网上找到一个代码不知道这个是不是实现的,有谁能帮我解答???
package com.neusoft.trainjsp;

//举例说明: 

//实现一个监听器: 

// SessionListener.java 

import java.io.*;

import java.util.*;

import javax.servlet.http.*;

//监听登录的整个过程 

public class SessionListener implements HttpSessionBindingListener

{

    public String privateInfo = ""; //生成监听器的初始化参数字符串 

    private String logString = ""; //日志记录字符串 

    private int count = 0; //登录人数计数器 

    public SessionListener(String info)
    {

        this.privateInfo = info;

    }

    public int getCount()
    {

        return count;

    }

    public void valueBound(HttpSessionBindingEvent event)

    {

        count++;

        if (privateInfo.equals("count"))

        {

            return;

        }

        try
        {

            Calendar calendar = new GregorianCalendar();

            System.out.println("LOGIN:" + privateInfo + " TIME:" + calendar.getTime());

            logString = "\nLOGIN:" + privateInfo + " TIME:" + calendar.getTime() + "\n";

            for (int i = 1; i < 1000; i++)
            {

                File file = new File("yeeyoo.log" + i);

                if (!(file.exists()))

                    file.createNewFile(); //如果文件不存在,创建此文件 

                if (file.length() > 1048576) //如果文件大于1M,重新创建一个文件 

                    continue;

                FileOutputStream foo = new FileOutputStream("yeeyoo.log" + i, true);

                //以append方式打开创建文件 

                foo.write(logString.getBytes(), 0, logString.length()); //写入日志字符串 

                foo.close();

                break;//退出 

            }

        }
        catch (FileNotFoundException e)
        {
        }

        catch (IOException e)
        {
        }

    }

    public void valueUnbound(HttpSessionBindingEvent event)
    {

        count--;

        if (privateInfo.equals("count"))
        {
            return;
        }

        try
        {

            Calendar calendar = new GregorianCalendar();

            System.out.println("LOGOUT:" + privateInfo + " TIME:" + calendar.getTime());

            logString = "\nLOGOUT:" + privateInfo + " TIME:" + calendar.getTime() + "\n";

            for (int i = 1; i < 1000; i++)
            {

                File file = new File("yeeyoo.log" + i);

                if (!(file.exists()))

                    file.createNewFile(); //如果文件不存在,创建此文件 

                if (file.length() > 1048576) //如果文件大于1M,重新创建一个文件 

                    continue;

                FileOutputStream foo = new FileOutputStream("yeeyoo.log" + i, true);

                //以append方式打开创建文件 

                foo.write(logString.getBytes(), 0, logString.length()); //写入日志字符串 

                foo.close();

                break;//退出 

            }

        }
        catch (FileNotFoundException e)
        {

        }

        catch (IOException e)
        {

        }

    }
}
--------------------编程问答-------------------- 这个应该是可以的。
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,