判断一下session有没有直不就行了?
解决方案 »
- 用AOP拦截Service层时,如果取得当前的User对象?
- struts2国际化遇到的问题。。。请指教。。。。。急等。。
- 网上扒的 js 特效乱码 怎么解决???
- 跪求MyGWT TableItem 的样式的具体设置
- 高手指教一下,为什么鼠标指导那个地方不显示?
- jsp中数据的树状展现的比较好的写法
- servlet可以实现监听功能吗?可以把监听到的消息返回给客户端吗?
- JSP文件上载源代码,谁有?
- 怎么得到表单中提交的list表单项的所有元素
- 新手,初学,问个技巧问题。。。。。。。
- 我的jsp服务器是iis+TOMCAT+win2000pro 不知怎的每次用不了多久就显示出 网页无法显示 目前访问该 Web 站点的用户过多,我只是自已用怎么
- 如何实现当一个窗口获得焦点时,刷新该页面?请帮忙!
在valueBound(HttpSessionBindingEvent event) 创建session
valueUnbound(HttpSessionBindingEvent event) session销毁 方法里做你的操作如:
public class a implements HttpSessionBindingListener{
private int count = 0;.....valueBound(HttpSessionBindingEvent event){count++;}valueUnbound(HttpSessionBindingEvent event){count--;}
}
count 是你再线人数
valueBound(HttpSessionBindingEvent event)和valueUnbound(HttpSessionBindingEvent event)里不就行了
valueUnbound(HttpSessionBindingEvent event){
取得 session内信息;
}给你我的程序
import java.io.*;
import java.util.*;
import javax.servlet.http.*;
import 我的一个properties文件处理的类;//监听登录的整个过程
public class SessionListener implements HttpSessionBindingListener
{public String privateInfo=""; //生成监听器的初始化参数字符串
private String logString=""; //日志记录字符串
private int count=0; //登录人数计数器
private String logFile;
public String whoLog = "";
public SessionListener(String info,String who)
{this.privateInfo = info;
whoLog = who;
/*
try
{whoLog = new String(who.getBytes("ISO-8859-1"),"ISO8859_1");}
catch(Exception e)
{}
*/
initListener();
}
private void initListener()
{PropertyFile pFile = new PropertyFile();//properties文件处理类的对象
pFile.setPropFile("c:/webinfo/web.properties");//从properties文件里读定制的log文件的存放路径
logFile = pFile.getProp("logfilepath");
} public int getCount()
{return count;} public String getLogFilePath()
{return logFile;}
public void valueBound(HttpSessionBindingEvent event)
{count++;
if (privateInfo.equals("count"))
{return;}
try
{Calendar calendar=new GregorianCalendar();
System.out.println("LOGIN:"+privateInfo+" TIME:"+calendar.getTime()+" USER:"+whoLog);
logString="\nLOGIN:"+privateInfo+" TIME:"+calendar.getTime()+" USER:"+whoLog+"\n";
for(int i=1;i<1000;i++)
{File file=new File(logFile+i);
if(!(file.exists()))
file.createNewFile(); //如果文件不存在,创建此文件
if(file.length()>1048576) //如果文件大于1M,重新创建一个文件
{continue;}
FileOutputStream foo=new FileOutputStream(logFile+i,true);//以append方式打开创建文件
foo.write(logString.getBytes(),0,logString.length()+2); //写入日志字符串
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()+" USER:"+whoLog);
logString="\nLOGOUT:"+privateInfo+" TIME:"+calendar.getTime()+" USER:"+whoLog+"\n";
for(int i=1;i<1000;i++)
{File file=new File(logFile+i);
if(!(file.exists()))
{file.createNewFile();} //如果文件不存在,创建此文件
if(file.length()>1048576) //如果文件大于1M,重新创建一个文件
{continue;}
FileOutputStream foo=new FileOutputStream(logFile+i,true);//以append方式打开创建文件
foo.write(logString.getBytes(),0,logString.length()+2); //写入日志字符串
foo.close();
break;//退出
}
}
catch(FileNotFoundException e)
{}
catch(IOException e)
{}
} }