统计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
相关文档:
一、Java基础知识
1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。
2.字符串的操作:
写一个方法,实现字符串的反转,如:输入abc,输出cba
写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc。
3.数据类型之间的转换
如何将数值型字符转换为数字(Intege ......
输入网页文件名,和资源列表文件名
输出资源列表文件供迅雷下载。
适用于批量下载图片。
由两个文件组成。
没有提供网页下载功能,因为我没有时间写,相关的代码以后再贴。
1
//
AnalizeIMG.java
2
3
//
主程序
4
5
import
java.io.BufferedReader;
6
import
......
问题描述:一个农夫养了一头牛,三年后,这头牛每年会生出1头牛,生出来的牛三年后,又可以每年生出一头牛……问农夫10年后有多少头牛?n年呢?(用JAVA实现)
问题解析:
1)在这个问题中,要注意每头牛生产的时间:
第一头牛三年后才会生出一头新的牛(注意是三年后,而不是第三 ......
现在已经开始学习java一个月左右的时间了。以前对java有一些基本的了解, 在前几个月的时间当中,学习了.net的技术,对面向对象的设计有了更深的一个认识,在一个偶然的工作机会上,结交了一个朋友。他问我想在哪一方向发展,其实我也不清楚,他说要自己定好一个位,然后这样照着计划走下去 ......
其技巧就是:定义一个简单接口,并在该接口中声明我们要调用的方法,一般可以应用在键盘鼠标事件跟踪。
下面举一个例子:
假定我们希望在某个事件发生时得到通知。我们可以定义一个接口:
/*
* 在某个事件发生时得到通知.
*/
public interface InterestingEvent {
public void interestingEvent() ......