1、通过web.xml配置Filter
<filter> <filter-name>characterFilter</filter-name> //定义filter名字 <filter-class>filter.characterFilter</filter-class> //定义filter的类 <init-param> //定义初始化参数 使用初始化参数的好处在于:要修改参数值时,可直接通过更改xml文件来修改 <param-name>charset</param-name> //定义初始化参数的名字 <param-value>utf-8</param-value> //定义初始化参数的值 </init-param> </filter> <filter-mapping> //定义filter的映射 <filter-name>characterFilter</filter-name> //定义要映射的名字 <url-pattern>/*</url-pattern> //定义拦截器的范围 <filter-mapping>
2、通过一个java实现Filter接口来组成拦截器
public class characterFilter implements Filter { //继承Filter接口 private FilterConfig config; //用来接收初始化参数对象 public void destroy() { //拦截器被销毁时所调用的函数 } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException { //拦截器功能实现的主要函数,每次访问被拦截的jsp都会调用此函数 String charSet=config.getInitParameter("charset"); //通过初始化参数定义页面的字符集 request.setCharacterEncoding(charSet); chain.doFilter(request, response); //该函数作用是指向下个拦截器 } public void init(FilterConfig config) throws ServletException { this.config=config; //将xml的初始化参数封装在成员对象中 } }