郁闷,两天了,还不行!! 找不到getCounterInfo()方法,错误说的很清楚啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 需要将class Counter到入到你的jsp文件中 没动过代码居然,好了。但是有发现一个问题package test;import java.util.Date;import java.util.Map;import java.util.HashMap;import javax.servlet.http.*;import javax.servlet.ServletContext;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;public class UserCounter implements HttpSessionListener { private static int counter=0; private static int activecounter=0; private String userName; public void sessionCreated(HttpSessionEvent event){ counter++; activecounter++; HttpSession session =event.getSession();//企图在这里到到登页面的设置的SESSION的属性,不对吗? userName=(String)session.getAttribute("user"); long time =session.getCreationTime(); ServletContext ctx =session.getServletContext(); Map map =(Map)ctx.getAttribute("user"); if(map==null) { map=new HashMap(); ctx.setAttribute("user",map); } map.put(userName,userName); System.out.println(userName+" entered"); System.out.println(session.getId()+" session was created "+new Date(time)); } public void sessionDestroyed(HttpSessionEvent event) { activecounter--; HttpSession session =event.getSession(); ServletContext ctx =session.getServletContext(); Map map =(Map)ctx.getAttribute("user"); map.remove(userName); System.out.println("a session was destoryed"); } public static String getCounterInfo() { return "Number of session : "+counter+ "Number of activesession : "+activecounter; }}/////////////登录页面enter.jsp <%@ page import="test.UserCounter"%> <% session.setAttribute("user","secondman"); %> <%=UserCounter.getCounterInfo()%> <%=session.getAttribute("user")%> <a href="User.jsp">go</a> /////////////User.jsp <% int userCount = 0; java.util.Map map = (java.util.Map)application.getAttribute ("user"); if (map == null) userCount = 0; else userCount = map.size (); %> <b>在线用户名</b> <%=map.keySet()%> <b>在线用户数</b> <%=userCount%> ////////////////////////////////// 为什么在线用户表总是NULL呢 import java.sql.*;import java.io.*;import java.util.*;import java.util.Date;import java.util.Map;import java.util.HashMap;import javax.servlet.http.*;import javax.servlet.ServletContext;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;public class UserCounterp implements HttpSessionListener,HttpSessionAttributeListener { private static int counter=0; private static int activecounter=0; private String userName;public void sessionCreated(HttpSessionEvent event){ counter++; activecounter++; } public void sessionDestroyed(HttpSessionEvent event) { activecounter--; HttpSession session =event.getSession(); ServletContext ctx =session.getServletContext(); Map map =(Map)ctx.getAttribute("users"); map.remove(userName); System.out.println("a session was destoryed"); } public void attributeAdded(HttpSessionBindingEvent event) { HttpSession session =event.getSession(); userName=(String)session.getAttribute("username"); id=(String)session.getAttribute("id"); if(userName!=null) { long time =session.getCreationTime(); ServletContext ctx =session.getServletContext(); Map map =(Map)ctx.getAttribute("users"); if(map==null) { map=new HashMap(); ctx.setAttribute("users",map); } user.setName(userName); user.setTime(new Date(time)); map.put(userName,user); writeLog(userName); System.out.println(userName+" entered"); System.out.println(session.getId()+" session was created "+new Date(time)); } } } public void attributeRemoved(HttpSessionBindingEvent event) {} public void attributeReplaced(HttpSessionBindingEvent event) {} public static String getCounterInfo() { return "Number of session : "+counter+ "Number of activesession : "+activecounter; } private void writeLog(String userName) { try { Calendar calendar=new GregorianCalendar(); System.out.println("LOGIN:"+userName+" TIME:"+calendar.getTime()); String logString="\nLOGIN:"+userName+" 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) {} }}大约这样可以了,实在不行,就用前面帖子的方法。 SpringMVC参数传递的问题 关于多线程和socket的问题,请大家帮忙,疯了。 google map earth 开发 路线 hibernate 更新多条数据问题 高分请教javamail邮件问题? firefox IE 显示的问题 神奇的照片 java 2个下拉框关联问题 请教高人 java开发web应用的最佳解决方案 MyEclipse项目在浏览器中打不开 统计在线用户信息的问题 是事件出发器设置的问题吗?
package test;import java.util.Date;
import java.util.Map;
import java.util.HashMap;
import javax.servlet.http.*;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;public class UserCounter implements HttpSessionListener {
private static int counter=0;
private static int activecounter=0;
private String userName; public void sessionCreated(HttpSessionEvent event){
counter++;
activecounter++;
HttpSession session =event.getSession();
//企图在这里到到登页面的设置的SESSION的属性,不对吗?
userName=(String)session.getAttribute("user");
long time =session.getCreationTime();
ServletContext ctx =session.getServletContext();
Map map =(Map)ctx.getAttribute("user");
if(map==null) {
map=new HashMap();
ctx.setAttribute("user",map);
}
map.put(userName,userName);
System.out.println(userName+" entered");
System.out.println(session.getId()+" session was created "+new Date(time));
} public void sessionDestroyed(HttpSessionEvent event) {
activecounter--;
HttpSession session =event.getSession();
ServletContext ctx =session.getServletContext();
Map map =(Map)ctx.getAttribute("user");
map.remove(userName);
System.out.println("a session was destoryed");
} public static String getCounterInfo() {
return "Number of session : "+counter+
"Number of activesession : "+activecounter;
}
}
/////////////登录页面enter.jsp <%@ page import="test.UserCounter"%>
<%
session.setAttribute("user","secondman");
%>
<%=UserCounter.getCounterInfo()%>
<%=session.getAttribute("user")%>
<a href="User.jsp">go</a> /////////////User.jsp
<%
int userCount = 0;
java.util.Map map = (java.util.Map)application.getAttribute ("user");
if (map == null) userCount = 0;
else userCount = map.size ();
%>
<b>在线用户名</b>
<%=map.keySet()%>
<b>在线用户数</b>
<%=userCount%>
//////////////////////////////////
为什么在线用户表总是NULL呢
import java.sql.*;
import java.io.*;
import java.util.*;
import java.util.Date;
import java.util.Map;
import java.util.HashMap;
import javax.servlet.http.*;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;public class UserCounterp implements HttpSessionListener,HttpSessionAttributeListener {
private static int counter=0;
private static int activecounter=0;
private String userName;
public void sessionCreated(HttpSessionEvent event){
counter++;
activecounter++;
} public void sessionDestroyed(HttpSessionEvent event) {
activecounter--;
HttpSession session =event.getSession();
ServletContext ctx =session.getServletContext();
Map map =(Map)ctx.getAttribute("users");
map.remove(userName); System.out.println("a session was destoryed");
} public void attributeAdded(HttpSessionBindingEvent event) {
HttpSession session =event.getSession();
userName=(String)session.getAttribute("username");
id=(String)session.getAttribute("id");
if(userName!=null) {
long time =session.getCreationTime();
ServletContext ctx =session.getServletContext();
Map map =(Map)ctx.getAttribute("users");
if(map==null) {
map=new HashMap();
ctx.setAttribute("users",map);
}
user.setName(userName);
user.setTime(new Date(time));
map.put(userName,user);
writeLog(userName);
System.out.println(userName+" entered");
System.out.println(session.getId()+" session was created "+new Date(time));
}
}
} public void attributeRemoved(HttpSessionBindingEvent event) {} public void attributeReplaced(HttpSessionBindingEvent event) {} public static String getCounterInfo() {
return "Number of session : "+counter+
"Number of activesession : "+activecounter;
} private void writeLog(String userName) {
try {
Calendar calendar=new GregorianCalendar();
System.out.println("LOGIN:"+userName+" TIME:"+calendar.getTime());
String logString="\nLOGIN:"+userName+" 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) {}
}
}大约这样可以了,实在不行,就用前面帖子的方法。