Filter
在Servlet中我们一般都会对request和response中的字符集编码进行配置,如果Servlet过多字符集编码发生变化时修改起码会很麻烦,这些通用的字符集编码配置等工作我们可以放到Filter中来实现。
创建filter
- 右键包名—>new ---->Filter
- 继承Filter接口
配置要拦截的资源
- 以指定资源匹配。例如"/index.jsp"
- 以目录匹配。例如"/servlet/*"
- 以后缀名匹配,例如"*.jsp"
- 通配符,拦截所有web资源。"/*"
创建成功后实现filter接口中的三个方法:
重写过滤器的doFilter(request,response,chain)方法。
另外两个init()、destroy()方法一般不需要重写。
import javax.servlet.*;
import java.io.IOException;
public class Charsetfilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletRequest.setCharacterEncoding("utf-8");
servletResponse.setCharacterEncoding("utf-8");
filterChain.doFilter(servletRequest,servletResponse);
}
@Override
public void destroy() {
}
}
Fliter的放行:
filterChain.doFilter(servletRequest,servletResponse);