初始化filter
//定义全局变量
String encode="utf-8";
String contenttype="text/html";
@Override
public void init(FilterConfig filterConfig) throws ServletException {
//filter初始化方法
System.out.println("过滤器初始化");
String encode = filterConfig.getInitParameter("encode");
String contenttype = filterConfig.getInitParameter("contenttype");
//判断初始化参数是否存在
if(encode!=null&&!encode.equals("")){
//把参数的值赋给全局变量
this.encode=encode;
}
if(contenttype!=null&&!contenttype.equals("")){
this.contenttype=contenttype;
}
}
重写dofiletr方法
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//dofilter方法
servletRequest.setCharacterEncoding(encode);
servletResponse.setCharacterEncoding(encode);
servletResponse.setContentType(contenttype);
//如果不写filterchain程序执行到这里就停下了
filterChain.doFilter(servletRequest, servletResponse);
}
销毁filter
@Override
public void destroy() {
//销毁
System.out.println("过滤器销毁。。。。。。。");
}
在web.xml文件中初始化filter参数
<filter>
<filter-name>encode</filter-name>
<filter-class>com.etime.servlet.Filters.EncodeFilter</filter-class>
<init-param>
<param-name>encode</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>contenttype</param-name>
<param-value>text/html</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encode</filter-name>
<url-pattern>/*</url-pattern>
//全局匹配
</filter-mapping>