700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java如何统计系统浏览人数_java网站如何统计访问量和人数实例源码

java如何统计系统浏览人数_java网站如何统计访问量和人数实例源码

时间:2019-12-31 06:21:56

相关推荐

java如何统计系统浏览人数_java网站如何统计访问量和人数实例源码

java网站如何统计访问量和在线人数实例源码。简言之,如果不用第三方提供的接口

那最好的解决方案应该是当SESSION建立时sessionCreated(),在访问总数和当前在线人数上+1

当SESSION销毁时sessionDistroyed(),在线人数-1

核心方法是利用Listener监听的各种接口

我把代码(主要部分)贴在下面

此段代码我亲自使用过,没有问题

但因为继承了接口,有些未使用的方法也要补充进去,具体方式比如在MyEclipse中可以靠点错误,ADD UNIMPLEMENTED METHOD实现

package com.eaie.system;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.PrintWriter;

import .MalformedURLException;

import .URL;

import java.util.Enumeration;

import java.util.Set;

import javax.servlet.RequestDispatcher;

import javax.servlet.Servlet;

import javax.servlet.ServletContext;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletException;

import javax.servlet.ServletRequestEvent;

import javax.servlet.ServletRequestListener;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpSessionActivationListener;

import javax.servlet.http.HttpSessionEvent;

import javax.servlet.http.HttpSessionListener;

public class SessionListener implements HttpSessionActivationListener,

HttpSessionListener, ServletContext, ServletRequestListener {

ServletContext context;

int onLineUserNum = 0;

int visitNum = 0;

HttpServletRequest request;

public void sessionDidActivate(HttpSessionEvent session) {

log(“seesionDidActive(“+session.getSession().getId()+”)”);

}

public void sessionWillPassivate(HttpSessionEvent session) {

log(“seesionWillPassivate(“+session.getSession().getId()+”)”);

}

public void sessionCreated(HttpSessionEvent event) {

onLineUserNum++;

visitNum ++;

String ip = request.getRemoteAddr();

log(“sessionCreated(‘”+event.getSession().getId()+”‘),–>IP:”+ip);

context.setAttribute(“onLineUserNum”, new Integer(onLineUserNum));

context.setAttribute(“visitNum”, new Integer(visitNum));

}

public void sessionDestroyed(HttpSessionEvent event) {

if (onLineUserNum>0){

onLineUserNum–;

}

String ip = request.getRemoteAddr();

log(“sessionDestroyed(‘”+event.getSession().getId()+”‘),–>IP:”+ip);

context.setAttribute(“onLineUserNum”, new Integer(onLineUserNum));

}

public void contextDestroyed(ServletContextEvent sce){

log(“contextDestroyed–>ServletContext is destroyed”);

this.context = null;

}

public void contextInitialized(ServletContextEvent sce){

this.context = sce.getServletContext();

log(“contextDestroyed–>ServletContext is initialized”);

}

public int getUserOnline(){

return this.onLineUserNum;

}

public void log(String message) {

PrintWriter out = null;

try{

out = new PrintWriter(new FileOutputStream(“c:\\eaieLogger.txt”,true));

out.println(new java.util.Date().toLocaleString()+”::From SessionListener:”+message);

out.println(“Totle visit number:”+this.visitNum+” and current online num: “+onLineUserNum);

out.println(“=================================”);

out.close();

}catch(Exception e){

e.printStackTrace();

out.close();

}

}

public void requestInitialized(ServletRequestEvent event) {

request = (HttpServletRequest)event.getServletRequest();

}

//省略其他方法

}

这个程序需要在web.xml中配置:

com.eaie.system.SessionListener

需要注意的是LISTENR的位置,必须在的相关配置之后,在的相关配置之前

本文链接地址: java网站如何统计访问量和在线人数实例源码

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。