Filter 接口中有三个重要的方法. (java 类要实现的接口)
init() 方法: 初始化参数, 在创建 Filter 时自动调用. 当我们需要设置初始化参数的时候, 可以写到该方法中.
doFilter() 方法: 拦截到要执行的请求时, doFilter 就会执行.
destroy() 方法: 在销毁 Filter 时自动调用.
web.xml 配置
encodingFilter
包点 EncodingFilter
- encoding
- UTF-8
- contentType
- text/html;charset=UTF-8
- encodingFilter
- *.ht
- encodingFilter
- /servlet/ValidJs
java 代码
- import java.io.IOException;
- import javax.servlet.Filter;
- import javax.servlet.FilterChain;
- import javax.servlet.FilterConfig;
- import javax.servlet.ServletException;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- import javax.servlet.http.HttpServletResponse;
- /**
- * 编码过滤器, 设置当前系统的编码.
- *
- * @author crd
- *
- */
- public class EncodingFilter implements Filter
- {
- private String encoding = "UTF-8";
- private String contentType = "text/html;charset=UTF-8";
- @Override
- public void destroy()
- {
- }
- @Override
- public void doFilter(ServletRequest request, ServletResponse httpresponse,
- FilterChain chain) throws IOException, ServletException
- {
- HttpServletResponse response=(HttpServletResponse)httpresponse;
- request.setCharacterEncoding(encoding);
- response.setCharacterEncoding(encoding);
- response.setContentType(contentType);
- response.setHeader("Cache-Control", "no-cache");
- response.setHeader("Pragma", "no-cache");
- response.setDateHeader("Expires", -1);
- chain.doFilter(request, response);
- }
- @Override
- public void init(FilterConfig config) throws ServletException
- {
- String _encoding = config.getInitParameter("encoding");
- String _contentType = config.getInitParameter("contentType");
- // String ext=config.getInitParameter("ext");
- if (_encoding != null)
- encoding = _encoding;
- if (_contentType != null)
- contentType = _contentType;
- }
- }
编码过滤器
来源: http://www.bubuko.com/infodetail-3016784.html