一、Filter二、Listener

一、Filter
Filter是 JavaWeb 三大组件(Servlet、Filter、Listener)之一,作用是将注解@WebFilter上对应的url的资源拦截后,进行功能增加,包括如权限控制、统一编码处理(对每一个Post请求设置为request.setCharacterEncoding("UTF-8");)、敏感字符处理等。
具体用法为:

编写过滤类implements Filter,加上注解@WebFilter(dispatcherTypes = {DispatcherType. REQUEST,DispatcherType.FORWARD}),重写doFilter,在doFilter中编写如下代码:
       放行前要干的事//System.out.println("请求的时候经过过滤器");

        chain.doFilter(request, response);

        放行后要干的事//System.out.println("响应的时候经过过滤器");

其中的DispatcherType即设置对请求和转发是否执行。
另外,Filter还有初始化方法init和destroy,即在服务器启动和关闭时各执行一次。

多个Filter时,最先执行放行前逻辑的过滤器会最后执行放行后逻辑,过滤器先后顺序受过滤器名字(字符串顺序)影响
二、Listener
Listener可以监听就是在application,session,request三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件,包含以下对象的不同动作:

一、Filter二、Listener_第1张图片
用法为:

 

编写监听器implements 上述表格中需要的监听器,加上@WebListener注解,就可以重写不同监听器的对应动作的方法,来达到对目标的动作监听

你可能感兴趣的:(servlet,java,服务器)