Eclipse中创建Filter

Eclipse 中不可以直接创建过滤器 这给我们的编码造成了困难,过滤器的作用最普遍的是过滤中文乱码。

现在向大家介绍我如何在Eclipse中建立 中文过滤器的。

首先大家先把Web项目建立好 例如 我的项目名为:FilterDemo

项目建立完成 现在开始建立 filter

点击 File(文件)-> new(新建) -> Class(类文件)

这时候会出现一个建立类文件的对话框

包路径 package:后面的文本框中填写 例如: com.company.filterDemo.biz.filter

类文件名 name:文本框中填写 例如 CharSetFilter

接口 interfaces:列表框旁边有一个 add的按钮 关键就在这里 点击 add 按钮 会出现一个新的对话框 让我们选择接口

Choose  interfaces (选择接口)
其下方 输入 filter 下面会列出所有与filter 相关的接口
这里我们选择 Filter - javax.servlet  然后点击OK  然后Finish完成 这时候我们的Filter的构造 如下:

package com.company.filterDemo.biz.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;


public class CharSetFilter implements Filter {
//释放
public void destroy() {
  // TODO Auto-generated method stub

}
//执行Filter
public void doFilter(ServletRequest arg0, ServletResponse arg1,
   FilterChain arg2) throws IOException, ServletException {
  // TODO Auto-generated method stub
  arg0.setCharacterEncoding("GBK");
  arg1.doFilter(request,response);
}

//初始化
public void init(FilterConfig config) throws ServletException {
  // TODO Auto-generated method stub

}
}

是不是发现以上代码 和我们在Jbuilder2006中自动生成的有一些区别呢。没关系我们改动一下 你看看有什么不一样。

package com.accp.car.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class CharSetFilter implements Filter {
//初始化
public void init(FilterConfig config) throws ServletException {
  // TODO Auto-generated method stub

}
//执行Filter
public void doFilter(ServletRequest request, ServletResponse response,
   FilterChain chain) throws IOException, ServletException {
  // TODO Auto-generated method stub
  request.setCharacterEncoding("GBK");
  chain.doFilter(request,response);
}

//释放
public void destroy() {
  // TODO Auto-generated method stub

}

}

好了 Filter的代码文件我们是建立好了 但是现在我们的这个代码还是不起作用的 关键是要在 WEB-INF\web.xml
中添加配置。

配置如下:

  <filter>
  <filter-name>CharSetFilter</filter-name>    //类名
  <filter-class>com.company.filterDemo.biz.filter.CharSetFilter</filter-class>//代码文件所在的包的完整路径
  </filter>


  <filter-mapping >
  <filter-name>CharSetFilter</filter-name>  //类名 这个名要跟上面的类名保持一致
  <url-pattern>/*</url-pattern>  //这里的路径/*代表过滤所有页面。
  </filter-mapping>


切忌 如果发现有时页面的乱码并没有正确转换的话 你一定要保证 filter配置信息在所有servlet配置的上面。
因为 web.xml的读取机制是从上到下读取的所以要保证 filter最先读取 才能启动中文过滤的作用。

我们的filter中文乱码过滤就完成了

建立filter的方法多种多种 这是我认为很方便的一种做法。 模板的做法比较繁琐 这里就不介绍了。

呵呵 有不足的地方希望大家指正。 谢谢大家。

posted on 2008-12-24 14:52 丁克设计 阅读(5162) 评论(5)  编辑  收藏 所属分类: Eclipse技术文档

评论

# re: Eclipse中创建Filter 2009-05-30 01:40 孙高

谢谢分享。  回复  更多评论   

# re: Eclipse中创建Filter 2009-06-02 18:58 33

000  回复  更多评论   

# re: Eclipse中创建Filter[未登录] 2009-11-27 15:25 yy

good  回复  更多评论   

# re: Eclipse中创建Filter 2012-08-13 19:58 吕合金

楼主辛苦了  回复  更多评论   

# re: Eclipse中创建Filter[未登录] 2014-09-17 12:07 ddd

让我们选择接口 我输入FILTER并没有弹出 许多接口啊?  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2014年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

留言簿(6)

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜