`
zhujiang520
  • 浏览: 147849 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java(简单的网站流量统计)过滤器 监听器 配置

阅读更多
监听器
/** 
 * @author 作者: zhujiang 
 * @version 创建时间:2010-5-17 上午10:25:33 
 * 类说明 
 */
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.apache.log4j.Logger;

public class ApplicationListener implements ServletContextListener {
	private static final Logger logger = Logger.getLogger(ApplicationListener.class);
	public void contextDestroyed(ServletContextEvent arg0) {
		ServletContext sc = arg0.getServletContext();
		Integer count = (Integer) sc.getAttribute("AccessCount");
		try {
			PrintWriter out = new PrintWriter(new FileWriter("c:/count.txt"));// 将人数保存到文本文件
			System.out.println("count:" + count);
			logger.error("count:"+count);
			out.print(count);
			out.flush();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public void contextInitialized(ServletContextEvent arg0) {
		Integer count = 0;
		ServletContext sc = arg0.getServletContext();

		try {
			Scanner in = new Scanner(new FileReader("c:/count.txt"));// 读取已经产生的人数信息,然后进行累加
			count = in.nextInt();
			in.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		sc.setAttribute("AccessCount", count);
	}
}


//过滤器
/** 
 * @author 作者: zhujiang 
 * @version 创建时间:2010-5-17 上午10:29:45 
 * 类说明 
 */
import java.io.FileWriter;
import java.io.PrintWriter;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;

import com.duanqu.wap.action.booklt.BookltAction;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;

@SuppressWarnings("serial")
public class AccessInterceptor implements Interceptor {
	private static final Logger logger = Logger.getLogger(AccessInterceptor.class);
	private String id;

	public void destroy() {

	}

	public void init() {

	}

	@SuppressWarnings("unchecked")
	public String intercept(ActionInvocation ai) throws Exception {
		ServletContext sc = ServletActionContext.getServletContext();
		HttpServletRequest request = ServletActionContext.getRequest();
		HttpSession session = request.getSession();
		if (!session.getId().equals(id)) {
			Integer count = (Integer) sc.getAttribute("AccessCount");// 判断如果登录成功,统计数字自增
			sc.setAttribute("AccessCount", count + 1);
			PrintWriter out = new PrintWriter(new FileWriter("c:/count.txt"));// 将人数保存到文本文件
			logger.error("AccessCount:"+count);
			id = session.getId();
			logger.error("id:"+id);
			System.out.println("count:" + count);
			logger.error("count:"+count);
			out.print(count);
			out.flush();
			out.close();
		}
		String result = ai.invoke();
		return result;
	}

}



struts配置过滤器
<interceptor name="accInter"
class="com.duanqu.common.AccessInterceptor" />
配置于Action配置中
<interceptor-ref name="accInter">
<param name="includeMethods">*</param>
        </interceptor-ref>
<interceptor-ref name ="defaultStack" />

web.xml 监听
<listener>
  <listener-class>
   com.duanqu.common.ApplicationListener
  </listener-class>
</listener>
分享到:
评论

相关推荐

    ipv4分组流量统计

    1. **数据包捕获**:Jpcap提供了一系列的函数,允许我们打开网络接口,设置过滤器(例如,只捕获IPv4数据包),并开始实时捕获数据包。 2. **数据包解析**:捕获的数据包可以被解析成其组成部分,包括源IP、目标IP...

    sniffer(JAVA)简易的网络嗅探器

    【标题】"sniffer(JAVA)简易的网络嗅探器"是基于JAVA编程语言实现的一种基本的网络嗅探工具。网络嗅探器,通常被称为网络分析器或数据包捕获器,是一种软件工具,用于捕获和分析网络上的数据包,帮助用户了解网络...

    用Java实现对IP/TCP协议数据包的拦截和分析

    2. **数据包捕获与解析**: 在Java程序中,我们需要创建一个数据包监听器,当有新的IP/TCP数据包到达时,该监听器会被调用。在这个监听器内部,我们可以使用提供的API来解析数据包,获取源IP、目的IP、TCP标志字段...

    JAVA上百实例源码以及开源项目源代码

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    java的简单抓包程序

    通过这些库,我们可以创建一个网络监听器,实时捕获经过特定网络接口的数据包,并对其进行解码和分析。 具体步骤大致如下: 1. 加载网络接口:获取系统的网络接口列表,选择需要监听的接口。 2. 开始监听:设置过滤...

    JAVA写的网络抓包分析程序

    实际应用中,你可以根据需求解析每个包的详细信息,如源IP、目标IP、端口号等,并进行更复杂的处理,如流量统计、异常检测等。 此外,JPCAP还支持数据包的过滤功能,可以使用BPF(Berkeley Packet Filter)语法定义...

    Java jpcap抓包

    3. **设置捕获参数**:可以设置过滤器来指定捕获特定类型的数据包,比如只捕获HTTP或者FTP流量。此外,还可以设置捕获的超时时间、数据包数量等。 4. **开始捕获**:调用`JpcapCaptor.openDevice()`打开选定的网络...

    java实现ip数据包的分析

    2. **设置过滤器**:你可以设置一个 BPF(Berkeley Packet Filter)表达式,只捕获满足特定条件的数据包,如只关注特定 IP 地址或协议。 3. **捕获数据包**:开始监听网络接口,当有数据包到达时,会触发回调函数,...

    JavaMelody系统监控工具 v1.9.8.zip

    2. 配置初始化参数:在web.xml中添加JavaMelody的监听器和过滤器配置,设置监控的URL前缀等。 3. 初始化JavaMelody:在应用启动时调用`MonitoringFilter.init()`方法,启动监控。 4. 测试:访问配置的监控URL...

    Java网络抓包.zip

    除了基本的抓包,我们还可以实现更高级的功能,比如统计网络流量、检测异常流量、识别潜在的安全威胁等。这需要对网络协议有深入的理解,并可能涉及复杂的数据分析和机器学习算法。 总的来说,Java网络抓包是一项...

    java 局域网数据包嗅探

    3. **开启捕获**:创建`CaptureDevice`对象并设置捕获参数,例如过滤器(可能使用BPF(Berkeley Packet Filter)语法来只捕获特定类型的包),然后启动捕获。 4. **处理数据包**:定义一个数据包处理器,通常是一个...

    IP包流量分析程序的设计与实现

    - **设置过滤器**:通过过滤器筛选特定类型或来源的数据包,以便针对性分析。 - **捕获与发送数据包**:实时捕获网络流量,并可能需要模拟发送数据包进行测试。 - **统计流量**:根据源地址和目的地址统计IP包...

    简单的网络嗅探器

    4. 分析统计:嗅探器可以提供各种统计信息,如连接次数、总数据量、最常使用的端口等,帮助理解网络流量模式。 5. 安全检测:嗅探器可用于检测网络中的潜在安全威胁,如未授权访问、恶意攻击等。 网络嗅探器的应用...

    JAVA网络抓包程序及毕业论文

    它们提供了一系列接口和类,允许开发者注册监听器,获取网络接口信息,以及解析和过滤抓取到的数据包。 接下来,ACCESS数据库在项目中的作用可能是存储和查询抓包结果。ACCESS是一款轻量级的关系型数据库管理系统,...

    TCP/UDP嗅探器

    Jpcap提供了丰富的API,包括打开网络接口、设置捕获过滤器、解析数据包等,使得Java开发者也能方便地实现嗅探功能。 开发TCP/UDP嗅探器时,我们需要关注以下几个关键步骤: 1. **初始化网络接口**:选择需要监听的...

    网络数据包捕获函数库 jNetPcap

    解析后的数据包信息可以用于协议分析、流量统计或异常检测。 4. **回放功能**:jNetPcap还具备数据包回放功能,允许开发者将捕获的包文件重新发送到网络,这对于测试和调试网络应用非常有用。 5. **API兼容性**:...

    linux布署war环境处理(csdn)————程序.pdf

    在Linux环境中部署WAR应用,通常涉及的关键步骤包括安装Java开发工具包(JDK)、安装Tomcat服务器以及配置网络服务。以下是对这些知识点的详细说明: 1. **安装JDK**: Java Development Kit (JDK) 是运行Java应用...

    Weblogic管理员手册

    - **创建域日志过滤器**:可以根据需要过滤出特定的日志条目。 ### 分发应用 - **动态分发**:允许在运行时自动将应用程序分发到服务器。 - **启用与禁用自动分发**:可以灵活地控制应用程序的分发行为。 - **动态...

    网络报文抓取

    "jpcap参考资料.rtf"文件提供了关于Jpcap库的使用指南,包括如何打开网络接口,设置过滤器,以及处理捕获到的数据包。这有助于开发者更好地理解和使用这个库。 "计算机网络课程设计_要求_20121101.doc"和...

    jpcap-0.01.16-win32.zip

    2. **数据包过滤**:jpcap支持BPF(Berkeley Packet Filter)过滤器,允许用户根据特定条件筛选捕获的数据包,如源/目标IP地址、端口号等,提高数据分析的效率。 3. **数据包分析**:jpcap可以解析捕获的数据包,...

Global site tag (gtag.js) - Google Analytics