『壹』 java中关于过滤文件的问题
importjava.io.*;
importjava.util.Arrays;
importjava.util.List;
{
privatefinalList<String>suffixes=Arrays.<String>asList(".txt",".doc",".jpg");
@Overridepublicbooleanaccept(Filepathname){
if(pathname.isDirectory()){
returntrue;
}
Stringname=pathname.getName().toLowerCase();
intindex=name.lastIndexOf('.');
Stringsuffix=(index>-1)?name.substring(index):"";
returnsuffixes.contains(suffix);
}
publicstaticvoidmp(Filefile){
if(file.isDirectory()){
File[]files=file.listFiles(newFilterImp());
if(files==null)return;
for(Filef:files){
mp(f);
}
}
else
System.out.println(file.getPath());
}
publicstaticvoidmain(String[]args){
File[]roots=File.listRoots();
System.out.println(Arrays.toString(roots));
for(Fileroot:roots){
mp(root);
}
}
}
递归列出硬盘里的txt doc jpg文件。(有读取权限的)
『贰』 java 中的过滤器filter 都有什么作用
过滤器顾名思来义就是进行过滤的源,可以实现代码的定向执行和预处理。
通俗点说法filter相当于加油站,request是条路,response是条路,目的地是servlet,这个加油站设在什么地方对什么数据操作可以由你来控制。
备注:过滤器可以再请求和响应之前做一部分预处理,有效的过滤掉不需要的内容,而且过滤器可以被复用,节省了大量的复用代码,提高了java的代码执行效率
『叁』 java中的过滤器怎样配置它的范围
配置web.xml文件的时候,控制
<filter-mapping>
<filter-name>CharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这个中的<url-pattern>/*</url-pattern> 也就是/*就可以控制过滤的范围
『肆』 java过滤器的1、request过滤器
这种过滤器的工作方式比较简单,大家也经常遇到,如下图所示:
以下是web.xml文件配置方式:
<filter>
<filter-name>myFilter</filter-name>
<filter-class>xx.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>myFilter</filter-name>
<servlet-name>目标资源一</servlet-name>
</filter-mapping>
下面我们更改一下web.xml文件的配置,如下方式:
<filter>
<filter-name>myFilter</filter-name>
<filter-class>xx.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>myFilter</filter-name>
<servlet-name>目标资源一</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>myFilter</filter-name>
<servlet-name>目标资源二</servlet-name>
</filter-mapping>
也就是说此过滤器对目标资源一和目标资源二都进行过滤,然后当目标资源一被访问的时候我们将请求转发给目标资源二,那么这个时候过滤器是怎么工作的呢?如下图所示:
我们可以看到,当我们访问目标资源一时过滤器截取了请求,然后再转发给目标资源一,然后再转发给目标资源二,从图中我们可以看到过滤器没有截取转发到目标资源二的请求,但是我们已经在web.xml文件中配置了该过滤器对目标资源二的过滤,为什么又没有起到过滤作用呢?
答案就在于,目标资源一是客户端直接访问,而目标资源二是被转发过来的,这时过滤器就不能过滤目标资源二。如果你直接访问目标资源二,你会发现该过滤器起到了作用?
我们上面的web.xml文件配置与以下方式等价:
<filter>myFilter</filter>
<filter-name>myFilter</filter-name>
<filter-class>xx.MyFilter</filte-class>
</filter>
<filter-mapping>
<filter-name>myFilter</filter-name>
<servlet-name>目标资源一</servlet-name>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>myFilter</filter-name>
<servlet-name>目标资源二</servlet-name>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
这种方式的配置,说明只有直接访问该目标资源时该过滤器才会起作用,对转发到该目标资源的请求将忽略不处理。
那如果我想对转发到目标资源二的请求进行过滤,那怎么办呢?答案见,下一种过滤器,forward过滤器。
『伍』 filter的使用 java 过滤器的几种使用方法
过滤器来
过滤器是处于客户端自与服务器资源文件之间的一道过滤网,在访问资源文件之前,通过一系列的过滤器对请求进行修改、判断等,把不符合规则的请求在中途拦截或修改。也可以对响应进行过滤,拦截或修改响应。
过滤器一般用于登录权限验证、资源访问权限控制、敏感词汇过滤、字符编码转换等等操作,便于代码重用,不必每个servlet中还要进行相应的操作。
『陆』 Java中FileFilter过滤文件的问题
long time = new Date().getTime(); //当前时间
File[] files = new File("c:/aa").listFiles(); //aa为目录
List<File> list = new ArrayList<File>();
for(File file : files){
long m = file.lastModified(); //文件的修改时间
long n = 30*24*3600;
//假设一个月30天,30天以内
if((time-m) < n){
//你要干什么在版这写。。。
list.add(file);
}
}
//能加权点分么。。。
本来不想说什么,楼下的,光天化日下别人的代码是不对滴,侵犯别人的知识权哦,也要搞得委婉点嘛~
『柒』 Java Web 中的过滤器如何使用
你你在配置过来滤器的自 时候
配置web.xml
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.SetCharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
最后的<url-pattern>/*</url-pattern> 就是过滤的路径
比如你在文件夹下吧不过滤的放在根目录,过滤的放在一个filter的文件夹下,那么就配<url-pattern>/filter/*</url-pattern> 这样根目录的所有文件都不过滤,名字我随便起的,你可以根据你自己的写,或者这个*也可以用匹配符,比如<url-pattern>/*.jsp</url-pattern>
再或者<url-pattern>/java*</url-pattern> 这样只有以java开头的才过滤,其他的不过滤
你可以根据实际设置
『捌』 如何用Java来进行文件切割和简单的内容过滤
java中有一个FilenameFilter的接口,能够过滤得到指定类型的文件或者目录,可以版实现文件过滤器,如下代码:权 accept(File file,String path)方法public class DirFilter implements FilenameFilter{private String type;public DirFilter(Strin