统计JAVA网站访问次数并获得访问者IP的方法
简言之,如果不用第三方提供的接口
那最好的解决方案应该是当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 java.net.MalformedURLException;
import java.net.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.set
相关文档:
关于ZK这个框架,国内使用的用户应该比较少,国内的资料也相当的少,但是在国外,这个东西已经很多人在使用了,以前也没怎么接触过,最近开始使用ZK来做开发,发现这东西在使用的时候,还蛮有意思的,所以准备记下使用日志,留给以后回顾和大家分享
首先需要知道ZK是一个什么东西,这个框架是我国台湾的朋友开发的,他是一个事件驱动(e ......
在java中 可以将某个对象赋值给另一个对象 只要该两个对象是属于同一个类即可 此时 这两个对象的所有成员将指向同一块内存
eg:
public class class1
{
&n ......
昨天看到留言,于是今天又把一些功能加进进去了
比如,
1,程序可以最小化到系统托盘区
2,程序可以批量保存所有截过的图片
3,修正了以前的一个小BUG,那就是输入保存图片的文件名时,如果没有输入后缀名,将保存正常,如果输入了后缀名,将会保存格式出错
打包文件请点击这里下载,dist文件夹里面的JAR文件是可以双击执行的
感 ......
创建一个类的实例时,
1.会为它以及它的所有父类的实例变量分配内存空间,如果分配空间成功,则所有实例变量都会初始化为默认值0、false、null
2.会递归调用父构造函数,但是暂不执行构造函数的语句;
3.对该父构造函数对应的类的实例变量赋值
4.执行父构造函数的其他语句
5.对于子类,执行2-4步骤 ......