过滤器
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 }
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 5 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 6 <filter> 7 <filter-name>encoding</filter-name> 8 <filter-class>com.obtk.filter.EncodingFilter</filter-class> 9 <init-param> 10 <param-name>encoding</param-name> 11 <param-value>gb2312</param-value> 12 </init-param> 13 </filter> 14 <filter-mapping> 15 <filter-name>encoding</filter-name> 16 <url-pattern>/*</url-pattern> 17 </filter-mapping> 18 </web-app>