web工程,检测文件的变化

1.首先需要一个servlet.jar包

2.web.xml配置

<listener>
<listener-class>com.icss.MainController.FileUD</listener-class>//你的类路径
</listener>

3.具体代码

package com.icss.MainController;

import java.io.File;
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Paths;
import java.nio.file.StandardWatchEventKinds;
import java.nio.file.WatchEvent;
import java.nio.file.WatchKey;
import java.nio.file.WatchService;

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

public class FileUD implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent arg0) {

}
@Override
public void contextInitialized(ServletContextEvent arg0) {
String nodepath = this.getClass().getClassLoader().getResource("/FUD").getPath().substring(1);  
System.out.println(nodepath);
WatchService ws = null;
try {
ws = FileSystems.getDefault().newWatchService();
Paths.get(nodepath).register(ws, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE,
StandardWatchEventKinds.ENTRY_MODIFY);
} catch (IOException e) {
e.printStackTrace();
}

while (true) {
WatchKey key = null;
try {
key = ws.take();
} catch (InterruptedException e) {
e.printStackTrace();
}
for (WatchEvent<?> event : key.pollEvents()) {
System.out.println(event.context() + "发生了" + event.kind() + "事件");
}
if (!key.reset()) {
break;
}
}
}
}

时间: 2024-08-22 02:28:15

web工程,检测文件的变化的相关文章

java web工程发布以及解决tomcat闪退

1.tomcat闪退 a.环境变量错误 startup.bat最后假如PAUSE进入调试状态,双击startup.bat,可以看到错误,根据错误提示设置相应的环境变量,JAVA_HOME等. b.eclispe设置问题,当eclispe server locations选项为第一项时,tomcat无法独立运行,由于本人学术不精,只定位出问题所在,还望大神帮答问题所在原因. 2.eclipse发布web工程 a.将server locations设置为可配状态 右键server,选择Add and

利用Inotify和Rsync将web工程文件自动同步到多台应用服务器

背景:需要搭建一套跟线上一模一样的环境,用来预发布,这是其中的web分发的一个小模块的实现过程. 1 工具以及环境简介 1.1,Inotify工具 Inotify,它是一个内核用于通知用户空间程序文件系统变化的机制.众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够更好地管理设备,给用户提供更好的服务,如hotplug.udev 和 ino

eclipse中web工程新建jsp文件报错:The superclass &quot;javax.servlet.http.HttpServlet&quot; was not found on the Java Build Path

web工程中新建jsp文件提示:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 解决方案: 1.右击web工程->属性或Build Path->Java Build Path->Libraries-> Add Libray...->Server Runtime ->JBoss 7.1 Runtime   2.切换到Java Bui

关于Java Web工程中web.xml文件

提及Java Web工程中web.xml文件无人不知,无人不识,呵呵呵:系统首页.servlet.filter.listener和设置session过期时限,张口就来,可是你见过该文件中的error-page标签吗?下面直接以例子的形式说明error-page标签的使用: 一个servlet文件: package com.ghj.packageofservlet; import java.io.IOException; import javax.servlet.ServletException;

Webpack 热部署检测不到文件的变化

最近在用webpack开发,突然发现热部署检测不到文件的变化,相关webpack的代码并没有发生改变,而且同事们的webpack都是正常的,不能热部署严重影响我的开发效率. 网上查了一下原来 Webpack 的热部署功能是使用 inotify 来监视文件变化,其中 fs.inotify.max_user_watches 表示同一用户同时可以添加的watch数目(watch一般是针对目录,决定了同时同一用户可以监控的目录数量. 查看系统当前max_user_watches的值 $ cat /pro

Eclipse 创建web工程后没有web.xml文件

问题: 今天换了台机器,重新安装了JDK, Eclipse. 创建了一个web工程,奇怪的发现创建好的工程没有web.xml文件,再试了几次依然是同样的结果,奇怪,web.xml文件哪里去了,怎么破? 解决方法: 不是大问题,没有web.xml 是因为在创建工程的时候没有选择web.xml所致,在创建工程时不要选择finish直接完成,建议选择next,在第三步勾选Generate web.xml development descriptor.

Java封装JDBC数据库增、删、改、查操作成JAR文件,以供Web工程调用,适用于多种数据库

废话不多说,直接上源代码,最后有使用方法,当然,也可以作为普通公用类使用,只是封装成JAR更方便使用. [java] view plain copy package db.util; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.sql.CallableStatement; impor

大数据技术之_18_大数据离线平台_02_Nginx+Mysql+数据收集+Web 工程 JS/JAVA SDK 讲解+Flume 故障后-如何手动上传 Nginx 日志文件至 HDFS 上

十一.Nginx11.1.介绍11.2.常见其他 Web 服务器11.3.版本11.4.Nginx 安装11.5.目录结构11.6.操作命令十二.Mysql12.1.介绍12.2.关系型数据库(SQL)种类12.3.特征12.4.术语12.4.与非关系型数据库比较(Not Only SQL)12.4.1.种类12.4.2.特征12.4.3.总结十三.数据收集13.1.收集方式13.2.数据的事件类型13.2.1.Launch 事件13.2.2.PageView 事件13.3.Nginx 日志收集

[WEB]WEB工程

结构 java的web工程结构如下: --WEB-INF | +--web.xml | +--classes | +--lib 其中web.xml用来初始化配置信息,classes存放工程中的java代码编译成的class文件,lib中存放引用到jar包.下面来看web.xml的配置. Filter fileter的定义如下: public interface Filter{ public void init(FilterConfig filterConfig) throws ServletEx