过滤器(Filter)
1.什么是过滤器
过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理,通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理
2.过滤器的语法格式
2.1.创建一个类实现Filter接口
public class CharSetFilter implements Filter{}
2.2.重写接口中的方法
public void destroy() { //销毁的方法}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
//过滤方法 主要是对request和response进行一些处理,
//然后交给下一个过滤器或Servlet处理
chain.doFilter(req, resp);
}
public void init(FilterConfig config) throws ServletException {
/*初始化方法 接收一个FilterConfig类型的参数 该参数是对Filter的一些配置*/
}
2.3.在web.xml文件中配置
<filter>
<filter-name>过滤器名称</filter-name>
<filter-class>过滤器所在的路径</filter-class>
</filter>
<filter-mapping>
<filter-name>过滤器名称</filter-name>
<url-pattern>需要过滤的资源</url-pattern>
</filter-mapping>
3.使用场景
1.如何防止用户未登录就执行后续操作
String name=(String)session.getAttribute("key");
if(name==null){
//跳转到登录页面
}
2.设置编码方式–统一设置编码
3.加密解密(密码的加密和解密)
4.非法文字筛选
5.下载资源的限制
过滤器的特点:在servlet之前和之后都会被执行