监听器
/**
* @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>
分享到:
相关推荐
1. **数据包捕获**:Jpcap提供了一系列的函数,允许我们打开网络接口,设置过滤器(例如,只捕获IPv4数据包),并开始实时捕获数据包。 2. **数据包解析**:捕获的数据包可以被解析成其组成部分,包括源IP、目标IP...
【标题】"sniffer(JAVA)简易的网络嗅探器"是基于JAVA编程语言实现的一种基本的网络嗅探工具。网络嗅探器,通常被称为网络分析器或数据包捕获器,是一种软件工具,用于捕获和分析网络上的数据包,帮助用户了解网络...
2. **数据包捕获与解析**: 在Java程序中,我们需要创建一个数据包监听器,当有新的IP/TCP数据包到达时,该监听器会被调用。在这个监听器内部,我们可以使用提供的API来解析数据包,获取源IP、目的IP、TCP标志字段...
Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...
通过这些库,我们可以创建一个网络监听器,实时捕获经过特定网络接口的数据包,并对其进行解码和分析。 具体步骤大致如下: 1. 加载网络接口:获取系统的网络接口列表,选择需要监听的接口。 2. 开始监听:设置过滤...
实际应用中,你可以根据需求解析每个包的详细信息,如源IP、目标IP、端口号等,并进行更复杂的处理,如流量统计、异常检测等。 此外,JPCAP还支持数据包的过滤功能,可以使用BPF(Berkeley Packet Filter)语法定义...
3. **设置捕获参数**:可以设置过滤器来指定捕获特定类型的数据包,比如只捕获HTTP或者FTP流量。此外,还可以设置捕获的超时时间、数据包数量等。 4. **开始捕获**:调用`JpcapCaptor.openDevice()`打开选定的网络...
2. **设置过滤器**:你可以设置一个 BPF(Berkeley Packet Filter)表达式,只捕获满足特定条件的数据包,如只关注特定 IP 地址或协议。 3. **捕获数据包**:开始监听网络接口,当有数据包到达时,会触发回调函数,...
2. 配置初始化参数:在web.xml中添加JavaMelody的监听器和过滤器配置,设置监控的URL前缀等。 3. 初始化JavaMelody:在应用启动时调用`MonitoringFilter.init()`方法,启动监控。 4. 测试:访问配置的监控URL...
除了基本的抓包,我们还可以实现更高级的功能,比如统计网络流量、检测异常流量、识别潜在的安全威胁等。这需要对网络协议有深入的理解,并可能涉及复杂的数据分析和机器学习算法。 总的来说,Java网络抓包是一项...
3. **开启捕获**:创建`CaptureDevice`对象并设置捕获参数,例如过滤器(可能使用BPF(Berkeley Packet Filter)语法来只捕获特定类型的包),然后启动捕获。 4. **处理数据包**:定义一个数据包处理器,通常是一个...
- **设置过滤器**:通过过滤器筛选特定类型或来源的数据包,以便针对性分析。 - **捕获与发送数据包**:实时捕获网络流量,并可能需要模拟发送数据包进行测试。 - **统计流量**:根据源地址和目的地址统计IP包...
4. 分析统计:嗅探器可以提供各种统计信息,如连接次数、总数据量、最常使用的端口等,帮助理解网络流量模式。 5. 安全检测:嗅探器可用于检测网络中的潜在安全威胁,如未授权访问、恶意攻击等。 网络嗅探器的应用...
它们提供了一系列接口和类,允许开发者注册监听器,获取网络接口信息,以及解析和过滤抓取到的数据包。 接下来,ACCESS数据库在项目中的作用可能是存储和查询抓包结果。ACCESS是一款轻量级的关系型数据库管理系统,...
Jpcap提供了丰富的API,包括打开网络接口、设置捕获过滤器、解析数据包等,使得Java开发者也能方便地实现嗅探功能。 开发TCP/UDP嗅探器时,我们需要关注以下几个关键步骤: 1. **初始化网络接口**:选择需要监听的...
解析后的数据包信息可以用于协议分析、流量统计或异常检测。 4. **回放功能**:jNetPcap还具备数据包回放功能,允许开发者将捕获的包文件重新发送到网络,这对于测试和调试网络应用非常有用。 5. **API兼容性**:...
在Linux环境中部署WAR应用,通常涉及的关键步骤包括安装Java开发工具包(JDK)、安装Tomcat服务器以及配置网络服务。以下是对这些知识点的详细说明: 1. **安装JDK**: Java Development Kit (JDK) 是运行Java应用...
- **创建域日志过滤器**:可以根据需要过滤出特定的日志条目。 ### 分发应用 - **动态分发**:允许在运行时自动将应用程序分发到服务器。 - **启用与禁用自动分发**:可以灵活地控制应用程序的分发行为。 - **动态...
"jpcap参考资料.rtf"文件提供了关于Jpcap库的使用指南,包括如何打开网络接口,设置过滤器,以及处理捕获到的数据包。这有助于开发者更好地理解和使用这个库。 "计算机网络课程设计_要求_20121101.doc"和...
2. **数据包过滤**:jpcap支持BPF(Berkeley Packet Filter)过滤器,允许用户根据特定条件筛选捕获的数据包,如源/目标IP地址、端口号等,提高数据分析的效率。 3. **数据包分析**:jpcap可以解析捕获的数据包,...