天天看点

Filter与Listener概述使用步骤应用

文章目录

  • 概述
  • 使用步骤
  • 应用

概述

过滤器Filter对web资源进行拦截,做一些处理再交给下一个过滤器或者servlet进行处理,通常用于拦截request,偶尔也用于拦截response;而监听器Listener是监听某个域对象的状态变化的组件,域对象主要为request,session,servletContext,监听事件源对象的变化都会触发监听器,比如session存储的某属性的变化,session的创建与销毁

使用步骤

Filter的使用步骤:

  1. 实现Filter接口
  1. 重写Filter接口里的方法
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的一些配置*/
}
           
  1. 在web.xml里进行配置
<filter>
<filter-name>过滤器名称</filter-name>
<filter-class>过滤器所在的路径</filter-class>
</filter>
<filter-mapping>
<filter-name>过滤器名称</filter-name>
<url-pattern>需要过滤的资源</url-pattern>
</filter-mapping>
           

Listener的使用步骤:

  1. 实现HttpSessionListener、HttpSessionAttributeListener等接口
  2. 重写接口里的方法
  3. 在web.xml里进行配置
<listener>
<listener-class>监听器所在的路径</listener-class>
</listener>
           

应用

Filter的应用,比如禁止用户在未登录的情况下访问某些资源,或者通过地址栏输入url绕过预设好的网页内容等违规操作;Listener的应用,主要可以用于简化代码量,比如网页上需要记录用户的点赞数,同时还要在数据库里更改相应的值,如果不使用监听器整个流程会十分繁琐,需要多次调用dao层,使用监听器可以将一切监听事件源对象里的值发生的改变统一写在数据库里,提高程序员的开发效率

继续阅读