1 package com.obtk.filter;
2
3 import java.io.IOException;
4
5 import javax.servlet.Filter;
6 import javax.servlet.FilterChain;
7 import javax.servlet.FilterConfig;
8 import javax.servlet.ServletException;
9 import javax.servlet.ServletRequest;
10 import javax.servlet.ServletResponse;
11 import javax.servlet.http.HttpServletRequest;
12
13 /**
14 * @统一编码过滤器
15 * */
16 public class EncodingFilter implements Filter {
17
18 protected FilterConfig filterConfig;
19 private String targetEncoding = "utf-8"; // 默认的编码为utf-8F
20
21 /**
22 *@初始化过滤器,和一般的Servlet一样,它也可以获得初始参数。
23 */
24 public void init(FilterConfig config) throws ServletException {
25 this.filterConfig = config;
26 // 获取FilterConfig中的参数
27 this.targetEncoding = config.getInitParameter("encoding");
28 }
29
30 /**
31 *进行过滤处理,这个方法最重要,所有过滤处理的代码都在此实现。
32 */
33 public void doFilter(ServletRequest srequest, ServletResponse sresponse,
34 FilterChain chain) throws IOException, ServletException {
35 System.err.println("使用下来的方法对请求的进行编码:encoding = " + targetEncoding);
36 // 把父类转换为子类
37 HttpServletRequest request = (HttpServletRequest) srequest;
38 // 设置编码集
39 request.setCharacterEncoding(targetEncoding);
40 // 把处理权发送到下一个
41 chain.doFilter(srequest, sresponse);
42
43 }
44
45 /**
46 * @销毁过滤器
47 * */
48 public void destroy() {
49 this.filterConfig = null;
50 }
51 }