- 浏览: 664616 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (173)
- ajax (4)
- ant (4)
- css (14)
- eclipse (1)
- exe4j (0)
- hibernate (7)
- html (29)
- http (2)
- install4j (0)
- java (35)
- javascript (31)
- jdbc (1)
- jquery (2)
- jsp (15)
- linux命令 (8)
- ooad (2)
- properties (3)
- servlet (1)
- spring (3)
- struts (6)
- swing (4)
- thread (2)
- version_control (1)
- webservice (4)
- xml (4)
- 数据库 (19)
- 正则表达式 (5)
- 其他 (16)
- 面试题 (1)
- 框架 (9)
- maven (1)
- util (29)
- 设计模式 (1)
最新评论
-
herodie4444:
看起来好像不难。
Java Struts2创建Excel文件并实现文件下载 -
心轨翼:
Java遍历Set集合方法 -
魔鬼的献祭:
...
java的web开发分页工具类 -
Nmxszxsl:
能发一个没有被墙的代码到我的邮箱吗?万分感谢。54365156 ...
Google翻译post提交无长度限制的在线翻译例子 -
782763595:
...
jar包混淆器介绍
实现Servlet的接口过滤器接口Filter实现对用户访问页面的监控
JavaBean类:
import java.io.IOException; import java.util.Date; import java.util.Map; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.context.ApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import com.csair.amp.web.webinf.common.model.LoginInfo; import com.csair.amp.web.webinf.utils.ReadPropertiesUtils; import com.csair.smms.effmonitor.dto.MonitorLog; import com.csair.smms.effmonitor.service.MonitorService; /** * 效能监控过滤器类 * * @author ahomeeye * * 2012-7-15 下午9:20:49 */ public class EffMonitorFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; HttpSession session = req.getSession(); String orginPath = req.getRequestURL().toString(); int index = orginPath.indexOf("/", 8); String reqPath = orginPath.substring(index); LoginInfo u = (LoginInfo) session.getAttribute("user"); if (u != null) { // 获取monitorService实现bean,此处无法使用spring的自动封装功能,monitorService ApplicationContext ac = WebApplicationContextUtils .getWebApplicationContext(session.getServletContext()); MonitorService monitorService = (MonitorService) ac .getBean("monitorService"); //ReadPropertiesUtils请参考http://ahomeeye.iteye.com/admin/blogs/1533760 Map<String, String> urlMap = ReadPropertiesUtils .getPropMap("effmonitor.properties"); if (urlMap.containsKey(reqPath)) { // 在监控的url包含有 MonitorLog m = new MonitorLog(); m.setUsername(u.getUsername()); m.setLogtime(new Date()); m.setFunction(urlMap.get(reqPath)); m.setClassName(reqPath); m.setMethodName(urlMap.get(reqPath)); monitorService.insertMonitorLog(m);// 保存效能监控日志 } } chain.doFilter(req, res); } @Override public void init(FilterConfig arg0) throws ServletException { } @Override public void destroy() { } }
JavaBean类:
package com.csair.smms.effmonitor.dto; import java.io.Serializable; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.SequenceGenerator; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; /** * 监控日志实体 * * @author ahomeeye * * 2012-7-11 下午7:22:49 */ @Entity @Table(name = "MONITOR_LOG") public class MonitorLog implements Serializable { private static final long serialVersionUID = 7707875472196483005L; private int id;// 编号 private String username;// 用户名 private Date logtime;// 使用时间 private String function;// 使用功能 private String className;// 类名 private String methodName;// 方法名 public MonitorLog() { super(); } public MonitorLog(int id, String username, Date logtime, String function, String className, String methodName) { super(); this.id = id; this.username = username; this.logtime = logtime; this.function = function; this.className = className; this.methodName = methodName; } @Id @SequenceGenerator(name = "monitor", sequenceName = "seq_monitorlog", allocationSize = 1) @GeneratedValue(strategy = GenerationType.AUTO, generator = "monitor") @Column(name = "LOG_ID") public int getId() { return id; } public void setId(int id) { this.id = id; } @Column(name = "USERNAME", length = 20) public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } @Column(name = "LOG_TIME") @Temporal(TemporalType.TIMESTAMP) public Date getLogtime() { return logtime; } public void setLogtime(Date logtime) { this.logtime = logtime; } @Column(name = "FUNCTION", length = 20) public String getFunction() { return function; } public void setFunction(String function) { this.function = function; } @Column(name = "CLASS_NAME", length = 100) public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } @Column(name = "METHOD_NAME", length = 30) public String getMethodName() { return methodName; } public void setMethodName(String methodName) { this.methodName = methodName; } @Override public String toString() { return "MonitorLog [id=" + id + ", username=" + username + ", logtime=" + logtime + ", function=" + function + ", className=" + className + ", methodName=" + methodName + "]"; } }
发表评论
-
java读取.properties配置文件的几种方法
2017-09-22 09:38 672读取.properties配置文件在实际的开发中使用的很多,总 ... -
java前后台字符串编码转换
2016-12-15 15:52 801此文为应用中遇到字符串编码转换问题网上找资料解决问题记录笔记, ... -
JavaScript replace字符串替换函数的用法
2016-10-19 15:21 876replace 语法 stringObj.replace(rg ... -
JS前端DES加密参数
2016-07-08 14:27 11731DES加密为可解密的机制,这里使用DES进行加密方便后台解密还 ... -
JS Date函数整理
2015-01-30 10:43 1070JS Date 对象用于处理日期和时间。 创建 Date 对象 ... -
Java Struts2创建Excel文件并实现文件下载
2015-01-16 17:42 1889在做管理系统的时候,经常会用到文件的下载,特别是Excel报表 ... -
js中setInterval与setTimeout用法
2014-11-19 17:09 1032下面详述js中的延时任务与周期任务的实现。 1.setTim ... -
java枚举类型(转)
2012-12-24 18:34 4973public class TestEnum { ... -
转 js中数据类型判断(转)
2012-11-05 11:07 1140转载自: http://www.cnblogs.com/yjh ... -
日期比较例子
2012-10-16 15:30 1214/** * 时间日期比较处理例子 * @autho ... -
包含日期和时间的选择器(转)
2012-09-27 16:11 1096转载自: http://www.cnblogs.com/swe ... -
基于hibernate的数据持久化处理简单实现类
2012-09-26 20:03 1779package com.forveross.plane.s ... -
jsp通用分页实现脚本
2012-09-26 17:12 1702工具脚本使用时只需替换url的问号前半部分即可。 此页面需要j ... -
Java过滤html标签
2012-09-21 09:54 1809方法一: String oldStr="< ... -
Web项目设置页面不缓存
2012-08-04 19:55 2872htm网页 <meta http-equiv=&qu ... -
Java文件保存与删除工具类
2012-07-26 15:46 4354import java.io.File; import ... -
linux修改系统时间(RHEL)
2012-07-20 16:53 953一般使用“date -s”命令来修改系统时间 比如将系统时间 ... -
使用AOP实现监控日志并保存
2012-07-13 20:42 6007最近项目中要做个效能监控的功能,经过考虑,觉得选择spring ... -
POI兼容读取Excel2003和Excel2007
2012-06-29 16:00 9453import java.io.File; import ... -
eclipse自动弹出提示的设置
2012-06-27 11:39 2139一、只弹出简单的单词提示(如输入system.的时候自动弹出o ...
相关推荐
在我们的案例中,我们将使用Filter来统计每次请求的数量,从而实现访问量的统计。 要创建一个Filter,我们需要继承`javax.servlet.Filter`接口并实现其`doFilter()`方法。在这个方法里,我们可以添加统计代码,例如...
- 在Windows中,通过编写文件系统过滤驱动(File System Filter Driver)可以实现文件读写的监控。这类驱动可以插入到I/O请求管道(IRP)中,拦截并处理文件操作。 - 文件系统过滤驱动可以监听Create、Read、Write...
在本实例中,我们将深入探讨Servlet过滤器(Filter)的使用和实现,以及它在实际应用中的重要性。 一、Servlet过滤器简介 Servlet过滤器遵循Java Servlet规范,通过实现`javax.servlet.Filter`接口来创建自定义过滤...
在Windows操作系统中,可以利用Windows文件系统过滤驱动(File System Filter Driver)或者注册文件系统通知(ReadDirectoryChangesW)来监控文件活动。这些工具会监听系统中所有进程的文件操作请求,并记录相关信息...
在标题提到的"filter过滤器的简单使用.rar"压缩包中,很显然包含了一个关于如何在Maven项目和Spring Boot项目中使用Filter的示例。下面将详细介绍Filter的基本概念、工作原理以及如何在两种项目环境中应用。 **...
访问配置了Filter的URL,观察Filter是否按照预期工作。 视频演示和`说明.txt`文件将更直观地展示上述步骤,包括在MyEclipse中创建新Filter项目、编写Filter类、配置web.xml以及如何运行和测试Filter。观看视频或...
这个技术被广泛用于实现各种功能,比如权限控制、日志记录、数据过滤、GZIP压缩等。本资料包可能包含了关于Java Filter的详细使用方法和生命...通过深入学习和实践,你将能够利用Filter实现各种高效且灵活的解决方案。
如果Filter选择不继续处理,可以直接修改响应并返回给客户端,或者使用`RequestDispatcher`或`HttpServletResponse`的方法进行转发或重定向。 **Filter的应用场景** - **安全控制**:例如进行用户登录检查,只有...
如`Path`(要监视的目录路径)、`Filter`(要监视的特定文件类型)和`NotifyFilters`(要监听的事件类型,如创建、删除、重命名、大小更改等),我们可以创建一个基本的文件监控系统。当这些事件发生时,`...
10. 安全性:监控系统可能涉及到敏感数据,因此必须遵循安全最佳实践,限制访问权限,防止恶意攻击,并遵守数据隐私法规。 综上所述,构建一个C#系统监控软件是一项涉及事件处理、文件系统交互、性能优化、错误处理...
例如,我们可以通过Filter实现权限控制、日志记录、数据转换、GZIP压缩等多种功能。以下是对Filter生命周期和核心方法的详细解释: 1. **生命周期**:Filter的生命周期由容器(如Tomcat)管理,包括初始化、过滤和...
再者,Druid的Web监控还包含了过滤器(Filter)功能,例如DruidStatFilter可以监控每个Servlet请求的耗时,帮助开发者找出性能瓶颈。此外,Druid还支持SQL解析和日志打印,可以记录所有的SQL语句及其执行时间,这...
Filter在Java Web中的主要作用包括:数据校验、安全控制、字符编码转换、性能监控等。它的工作基于Servlet规范中的Filter链,每个Filter可以按需设置拦截规则,并将请求传递给下一个Filter或直接转发到目标Servlet。...
在本篇博客“java自学===Filter类的应用,网站数量统计”中,作者可能探讨了如何使用Filter来实现网站访问量的统计功能。 首先,Filter类位于javax.servlet包中,它是Servlet API的一部分,主要用于增强Web应用程序...
通过设置属性如`Path`(监控的文件夹路径)、`Filter`(过滤特定类型的文件)和`NotifyFilters`(监控的事件类型),可以实现自定义的文件夹监控。例如,你可以编写C#或VB.NET代码,将结果写入日志文件或触发其他...
**JSP(JavaServer Pages)**是一种...通过合理配置和使用Filter,我们可以实现更灵活、更高效的Web应用程序。在学习和实践过程中,结合源码分析和开发工具,能更深入地理解其工作机制,从而更好地应用于实际项目中。
例如,你可以配置一个Filter来缓存最近访问的文件,从而提高读取性能。Filter的实现是插件化的,允许用户根据自己的业务需求编写自定义Filter。 在使用SeaweedFS时,了解并正确配置Master、Colume和Filter的参数至...
9. 安全性:在监控文件系统时,应遵守操作系统权限规则,避免访问敏感文件或超出程序应有的权限范围。 综上所述,开发一个C#系统监控软件,可以监控全盘文件及其子文件夹,不仅需要掌握C#编程基础,还需要理解.NET...
在"ISAPI Filter 限制 IIS 多线程访问"这个主题中,主要关注的是ISAPI过滤器如何可能影响IIS的并发处理能力。IIS作为一款高性能的Web服务器,其多线程模型允许同时处理多个客户端请求,以提高服务效率。但当ISAPI...