A. 麻烦大家帮忙实现一个文件过滤器~(in java)
public class TextFilter extends FileFilter{
public boolean accept(File f){
String n=f.getName();
return n.endsWith(".bmp") || n.endsWith(".jpg") || n.endsWith (".gif");
}
}
B. java项目中如何使图片在网页打开时不被过滤,怎么操作啊
在适用过滤的时候,一般把图片放在web-inf 文件外面,以保证能访问到,
其实图片在外面不涉及到安全问题
如过一定要把文件放在web-inf里面,那就需要使用获取路径跳转的方法
C. java web删除照片后怎么样过滤照片列表
您好,
过滤器(Filter)
作用,在客户端向服务器发送消息时,如果有过滤器那么请求就要先经过过滤器,
它的作用是可以对客户端的信息进行一系列的操作,从而达到了过滤的目的
a)要实现过滤器必须要实现一个借口(javax.servlet.filter)
如:public class CheckInfo implements filter{}
重写接口中的方法从而达到过滤器的目的!
1)public void init(FilterConfig config){
[这个方法里面是在过滤器初始化的时候进行调用]
}
2)public void doFilter(ServletRequest req, ServletResponse rep,
FilterChain chain){
[这个方法就是开始过滤的主要方法了]
[
在这个方法里最好是要写入这两样东西(把类型转换一下):
1.HttpServletRequest request=(HttpServletRequest)req;
2.HttpServletResponse response=(HttpServletResponse)rep;
同时也可以对编码进行处理:
request.setCharacterEncoding="utf-8";
response.setCharacterEncoding="utf-8";
3.最后不要忘了过滤过后要跳转哦
chain.doFilter(request,response);
注意:当这里不是chain.doFilter()跳转时,
那么跳转的目的页面最好是写绝对路径,这里
有个很好的方法:request.getContextPath()
这个方法返回项目名(前面已经包含了"/"),所以
我们这样写:response.sendRedirect(request.getContextPath()+"/lovingshu.jsp")
]
}
3)public void destroy(){
[销毁时]
}
当过滤器的类写完后不能忘记在web.xml中进行配置,步骤如下:
<!--注意这个要写到servlet之前哦-->
<filter>
<filter-name>myFilter</filter-name>
<filter-class>[包名.类名]</filter-class>
</filter>
<filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>
[
注意:这个路径的写法十分有技巧,前面必须要有一个"/"
"/*"表示过滤所有页面,
"/pages/"表示过滤Web_Root目录下的pages目录下的页面
]
</url-pattern>
</filter-mapping>
D. 在JAVA中filter有什么作用
Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源。
例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。例如对Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。
它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理。使用Filter的完整流程:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。
(4)java图片文件过滤扩展阅读
Filter的生命周期
和我们编写的Servlet程序一样,Filter的创建和销毁由WEB服务器负责。 web 应用程序启动时,web 服务器将创建Filter 的实例对象,并调用其init方法,读取web.xml配置,完成对象的初始化功能,从而为后续的用户请求作好拦截的准备工作
filter对象只会创建一次,init方法也只会执行一次。开发人员通过init方法的参数,可获得代表当前filter配置信息的FilterConfig对象。
这个方法完成实际的过滤操作。当客户请求访问与过滤器关联的URL的时候,Servlet过滤器将先执行doFilter方法。FilterChain参数用于访问后续过滤器。
Filter对象创建后会驻留在内存,当web应用移除或服务器停止时才销毁。在Web容器卸载 Filter 对象之前被调用。该方法在Filter的生命周期中仅执行一次。在这个方法中,可以释放过滤器使用的资源。
E. java 文件过滤器怎么实现。
import java.io.File;
import java.io.FilenameFilter;
/**
* 文件过滤器的简单实现
*
* @author ajaxfan
* @date 2010-04-17
*/
public class FileNameFilterDemo {
public static void main(String[] args) {
list("d:/");
}
/**
* 列出特定路径下的txt文件
*
* @param directoryName
* 路径名
*/
private static void list(String directoryName) {
File dir = new File(directoryName);
// 确定该路径指向一个目录
if (dir.exists() && dir.isDirectory()) {
// 列出所有结尾为txt的文件
File[] files = dir.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith("txt");
}
});
System.out.println(java.util.Arrays.toString(files));
}
}
}
F. java中如何获取特定目录下的图片
ClassLoader/Class的getResource/getResourceAsStream 是从CLASSPATH中获取资源。
可以在eclipse的项目下新建一个resources目录,把images文件夹放到这个目录下,然后把resources加到Build Path里。
G. java中文件浏览对话框中怎么过滤文件类型
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"JPG & GIF Images", "jpg", "gif");
chooser.setFileFilter(filter);
int returnVal = chooser.showOpenDialog(parent);
if(returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: " +
chooser.getSelectedFile().getName());
}
JFileChooser就可以实现文件选择,但是只显示指定的文件类型的过滤类FileNameExtensionFilter只是JDK1.6版本里的,JDK1.4及其以版下是没有的,如权果想在JDK1.4里实现过滤,可以去1.6版本里找到该源码,自己编译使用
H. java项目中如何使图片在网页打开时不被过滤,怎么操作啊
在适用过滤的时候,一般把图片放在
web-inf
文件外面,以保证能访问到,
其实图片在外面不涉及到安全问题
如过一定要把文件放在web-inf里面,那就需要使用获取路径跳转的方法
I. java 怎样实现对非法图片的过滤
getimagesize($_FILES['upload_field']['tmp_name']);
如果能获取到图片的尺寸,则是合法图片。
一般的话,图片还要有一个压缩过程,这个过程你可以把原图片的的所有像素点全提出来,移动到另一个resource,最后再set quality。
这个压缩过程也可以实现图片的合法化。
J. 如何实现java.awt.image.BufferedImage的逐点过滤,保存成内存图片输出
try {
BufferedImage top = ImageIO.read(new File("img/顶色.png"));
BufferedImage bot = ImageIO.read(new File("img/底色.png"));
BufferedImage result = new BufferedImage(top.getWidth(),top.getHeight(),BufferedImage.TYPE_INT_ARGB);
for(int height = 0; height<bot.getHeight(); height++){
for(int width = 0; width<bot.getWidth(); width++){
result.setRGB(width, height, top.getRGB(width, height)|bot.getRGB(width, height));
}
}
ImageIO.write(result, "png", new File("img/result.png"));//write()函数将result对象中的内容保存到result.png图片中
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
目录结构