A. java问题:统计网站在线人数没有session行不行
一般来讲,统计在线人数不能用session,应该用application
B. java统计网站在线人数,浏览器被关闭时(非正常关闭)能够正确的统计在线人数
用session对象!每次打开一个浏览器session就会创建一个唯一的id 每五秒统计一下id个数即可!
浏览器关闭 不管是正常还是非正常,session对象都会消失!
C. 如何实现java 用户在线实时统计
您好,这样:
通过SessionListenr可以监听session的创建和销毁,所以首先要写一个类MySessionListener,实现javax.servlet.http.HttpSessionListener接口及其sessionCreated()、sessionDestroyed()方法:
import java.util.HashSet;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class MySessionListener implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent event) {
HttpSession session = event.getSession();
ServletContext application = session.getServletContext();
// 在application范围由一个HashSet集保存所有的session
HashSet sessions = (HashSet) application.getAttribute("sessions");
if (sessions == null) {
sessions = new HashSet();
application.setAttribute("sessions", sessions);
}
// 新创建的session均添加到HashSet集中
sessions.add(session);
// 可以在别处从application范围中取出sessions集合
// 然后使用sessions.size()获取当前活动的session数,即为“在线人数”
}
public void sessionDestroyed(HttpSessionEvent event) {
HttpSession session = event.getSession();
ServletContext application = session.getServletContext();
HashSet sessions = (HashSet) application.getAttribute("sessions");
// 销毁的session均从HashSet集中移除
sessions.remove(session);
}
}
然后再在web.xml中分别配置SessionListener和session超时时间(10分钟):
<listener>
<listener-class>全路径MySessionListener</listener-class>
</listener>
<session-config>
<session-timeout>10</session-timeout>
</session-config>
最后在Jsp页面代码使用以下代码就可以实现当前在线人数统计输出:
D. java 怎样统计系统当前在线人数
统计在线人数的方式不同(比如登录人数或者页面访问人数)具体的实现方式不同,但是记录统计人数的方法是一样的1。定义一个静态变量或者在application作用于放置一个变量存放在线人数,如果是登录人数,则在用户登录时+1,如果是页面访问人数就添加一个监听器listener进行监听(sessionId) 如果有用户访问页面就+1
E. 求一个java代码:浏览器被关闭时(非正常关闭)能够正确的统计在线人数
正确是做不到,只能是估计,需要你定义一个阀值,估计它的取值,然后与你统计的在线人数相乘,得到一个近似值即可!~
F. java怎么实统计在线人数,和访问量
简单的说个我的思路供你借鉴:
在线人数,我理解为当前应用的session数目,不过sevlert好像不提供获取全部session的方法,可以通过加一个sessionlistener来记录(创建就+1,销毁就-1)
访问量相对简单,你定义一个全局的计数器就好了,来一个(这个有很多种方法,比如:有一个新的session被创建)人你就+1
G. Java统计在线人数,用过滤器好还是拦截器
你好,要想知道哪个好,要说一下两者的区别,拦截器是struts的或者spring mvc框架封装的,过滤器是java ee自身的
过滤器是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑,比如过滤掉非法url。主要为了减轻服务器负载。减少压力
拦截器是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法。比如可以用拦截器做一些权限管理 或者log之类的事情。
两者作用是不同的。如果单纯的统计,建议还是使用过滤器比较好
希望可以解决你的问题
H. java统计浏览器访问量
利用session创建计数用于记录当前在线人数!离开时间只能依据session被杀死时的模糊时间,如果要获得更准确的时间可以把session的存活期弄断点,将用户访问记录存储到cookie里,我们只能依据用户多久没操作 session被干掉来判断用户可能离开了,因为期间用户不可能都对服务器发出退出请求,尽管我们都设有退出的操作模块!如果只是用于访问量的话就不需要考虑session被杀死吧!只管记录有多少游客登入进来就行了!
I. java 怎样统计系统当前在线人数
用户表里面加一个字段status
当用户上线以后,就把status设置为1
统计在线人数就是一条sql语句:
selectcount(*)from用户表wherestatus=1