
@Order注解控制执行顺序。Order手动设置。过滤器,拦截器拦截的是URL。AOP拦截的是类的元数据(包、类、方法名、参数等)。
过滤器并没有定义业务用于执行逻辑前、后等,仅仅是请求到达就执行。 拦截器有三个方法,相对于过滤器更加细致,有被拦截逻辑执行前、后等。 AOP针对具体的代码,能够实现更加复杂的业务逻辑。
三者功能类似,但各有优势,从过滤器--拦截器--》切面,拦截规则越来越细致。 执行顺序依次是过滤器、拦截器、切面。
拦截器可以用于实现各种功能,如身份验证、请求参数校验、权限控制等。 使用场景方面,
过滤器适用于对Web应用程序中所有请求和响应进行处理的情况,如字符编码转换、日志记录、安全控制等。
拦截器适用于对特定请求或响应进行处理的情况,如身份验证、请求参数校验、权限控制等。
过滤器的配置比较简单,直接实现Filter 接口即可,也可以通过@WebFilter注解实现对特定URL拦截,看到Filter 接口中定义了三个方法。