刚接触权限功能编写的小伙伴,有不少可能不理解一般的过滤器和拦截器有什么区别,这里小编就为大家讲解一下。
拦截器(Interceptor)
拦截器,用于在AOP中某个方法或字段被访问之前进行拦截,然后在它的前面或后面加入某些操作。是AOP的一种实现策略。
通常在面向切面编程中应用的一般就是拦截器,即在我们的service或一个方法之前调用一个方法,或在方法之后调用一个方法。这是基于JAVA反射机制。拦截器并不是一定在web.xml中的,如struts就是在struts.xml中配置。
过滤器(Filter)
在Servlet中,实现了javax.servlet.Filter接口的服务器端程序就是过滤器,它的主要用途是设置字符集、控制转向、控制权限、做一些业务逻辑判断等。
过滤器工作原理:只需要配置好在web.xml文件中要拦截的客户端请求,它都会帮你拦截到请求,这时我们就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时,我们还可以进行逻辑判断,即用户是否登陆、有没有此页面访问权限等工作。这些是随我们的web应用启动而启动的,只会初始化一次,此后就可以拦截相关请求,只有当我们的web应用停止或重新开始部署的时候才销毁。
两者执行流程
过滤前-拦截前-Action处理-拦截后-过滤后
两者区别
以上就是本篇文章的所有内容,这都是很简单的java基础知识,但俗话都说了,基础永远是最重要的,所以还是不能够轻视。
推荐阅读: