1.过滤器的实现
实现过滤器需要Filter接口,并且在web.xml中声明filter以及配置过滤器规则,Demo如下
2.拦截器的实现
实现拦截器需要实现HandlerInterceptor接口,并在springmvc配置文件中进行配置,具体实现如下
3.应用场景
3.1、日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。
3.2、权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接返回到登录页面;
3.3、性能监控:有时候系统在某段时间莫名其妙的慢,可以通过拦截器在进入处理器之前记录开始时间,在处理完后记录结束时间,从而得到该请求的处理时间(如果有反向代理,如apache可以自动记录);
3.4、通用行为:读取cookie得到用户信息并将用户对象放入请求,从而方便后续流程使用,还有如提取Locale、Theme信息等,只要是多个处理器都需要的即可使用拦截器实现。
Tip:过滤器不能获取IOC容器中bean,所以需要根据业务具体分析