一、过滤器的作用、用途、工作原理
作用、工作原理:对于一个Web应用来说,过滤器是一个处于服务器端的Web组件,它可以截取客户端和服务器之间的请求与响应信息,并对这些信息进行过滤。当Web容器接受到一个对资源的请求时,它将判断是否有过滤器与这个资源相关联。如果有,那么容器将把请求交给过滤器进行处理,然后再将请求发送给目标资源。当目标资源对请求作出响应时候,容器同样会将响应先转发给过滤器,再过滤器中,你可以对响应的内容进行转换,然后再将响应发送到客户端。
常见的过滤器用途主要包括:对用户请求进行统一认证、对用户的访问请求进行记录和审核、对用户发送的数据进行过滤或替换、转换图象格式、对响应内容进行压缩以减少传输量、对请求或响应进行加解密处理、触发资源访问事件、对XML的输出应用XSLT等。
和过滤器相关的接口主要有:Filter、FilterConfig、FilterChain
二、监听器的作用、用途、工作原理
作用、工作原理:JavaWeb开发中的监听器就是application、session、request三个对象的创建、销毁或者往期中添加修改删除属性时自动执行代码的功能组件
1、ServletContextListener:用于监听ServletContext 对象的创建和销毁事件。
2、ServletContextAttributeListener:监听对象中的属性的增加,删除和替换的事件
3、HttpSessionListener:用于监听HttpSession对象的创建和销毁
4、HttpSessionAttributeListener:监听对象中的属性的增加,删除和替换的事件
5、ServletRequestListener:用于监听ServletRequest对象的创建和销毁
6、ServletRequestAttributeListener:监听对象中的属性的增加,删除和替换的事件
常见的监听器用途主要包括:
统计在线人数,利用HttpSessionListener、加载初始化信息,利用ServletContextListener、统计网站访问量、实现访问监控
三、基于注解
从Servlet 3开始,可以不用在web.xml中部署Servlet(小服务)、Filter(过滤器)、Listener(监听器)等Web组件,Servlet 3提供了基于注解的部署方式,可以分别使用@WebServlet、@WebFilter、@WebListener三个部署小服务、过滤器、监听器。