一、Filter过滤器
1、定义
Filter过滤器是javaweb的三大组件只要,三大组件:Servlet程序、Listener监听器、Filter过滤器
是javaEE的规范(接口)
作用:拦截请求,过滤响应
拦截请求常见的应用场景有:
①权限检查
②日记操作
③事务管理
2、Filter的初体验
<%
Object user = session.getAttribute("user");
//如果等于null,说明还没有登录
if(user == null){
request.getRequestDispatcher("/login.jsp").forward(request,response);
return;
}
%>
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
HttpSession session = httpServletRequest.getSession();
Object user = session.getAttribute("user");
//如果等于null,说明还没有登录
if(user == null){
servletRequest.getRequestDispatcher("/login.jsp").forward(servletRequest,servletResponse);
return;
}else {
//让程序继续往下访问用户的目标资源
filterChain.doFilter(servletRequest,servletResponse);
}
}
Filter过滤器的使用步骤:
①编写一个类趋势线Filter接口
②实现过滤方法doFilter()
③到web.xml中去配置Filter的拦截路径
3、Filter的生命周期
其包含几个方法:
①构造器方法
②init初始化方法
①,②步,在web工程启动时执行(Filter已经创建)
③doFilter过滤方法
第③步,每次拦截到请求,就会执行
④destory销毁
第④步,停止web工程时,就会执行(停止 web工程,也会销毁Filter过滤器)
4、FilterConfig类
是Filter过滤器的配置文件类
Tomcat每次创建Filter时,也会同时创建一个FilterConfig类,这里包含了Filter配置文件的配置信息
FilterConfig类的作用是获取Filter过滤器的配置内容:
①获取Filter的名称filter-name的内容
②获取在filter中配置的init-param初始化参数
③获取ServletContext对象
5、FilterChain过滤链
FilterChain.doFilter()方法的作用:
①执行下一个Filter过滤器(如果有Filter)