在我们做项目时,总会遇到一些乱码问题 ,为了解决中文乱码的问题 我们通常会在Servlet控制器中增加这么一句话 :
request.setCharacterEncoding("utf-8"); 使得我们在加载项目的时候不至于会感到由于该死的外国人设计的程序语言 总有那么多弊端,会让我们的国语造成乱码问题。 哈哈 玩笑了 !!!
想想,要是在一个大项目中 有很多个Servlet 我们是不是在每一个Servlet中都要去增加这段代码呢?这样就造成了不必要的冗余,我们为什么不用Servlet提供给我们的很好的资源呢 这就是过滤器 过滤器的功能很广泛 首先介绍下 第一个过滤器 如下:
过滤器一(解决中文乱码):
1.新建一个过滤器类 如:WebFilter.java
让WebFilter继承Filter接口
2.实现Filter接口的三个方法 并写入解决中文乱码的关键代码:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding("utf-8"); chain.doFilter(request, response); } public void init(FilterConfig filterConfig) throws ServletException { }
3.编写好过滤器类后 开始 配置web.xml文件 如同配置Servlet一样 非常简单 在<web-app></web-app>中加入如下代码即可:
<filter> <filter-name>WebFilter</filter-name> <filter-class>com.Jeelon.filter.WebFilter</filter-class> </filter> <filter-mapping> <filter-name>WebFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
注意:<filter-name>WebFilter</filter-name>在<filter></filter>和<filter-mapping></filter-mapping>中是一样的 WebFilter是随意起的名字 至于com.Jeelon.filter.WebFilter 是实现接口Filter的过滤器类的所在路劲 ,/*指过滤所有请求的对象!
这样一个解决中文乱码的过滤器就这样简单的完工啦 简单吧 (当然我只是考虑过滤所有请求的情况,如果其他的情况还得增加代码)
下面接着看下一个过滤器: